¿Qué es la codificación?

Hoy vamos a hablar de codificación. Específicamente, responderé a la pregunta:  ¿Qué demonios está codificando?  También cubriremos un poco de lo que sucede cuando codificamos.

Sin embargo, antes de seguir leyendo, quiero que haga clic con el botón derecho en la ventana de su navegador y elija la opción “Ver código fuente de la página”.

Cuando lo hace, obtiene una vista del código de la página web. Lo que quiere decir que, al mirar detrás de la cortina, ahora ha visto el lenguaje que le dice a su computadora cómo hacer que esta página web se vea tan bien como lo hace.

La primera vez que miré el código en una ventana del navegador fue reveladora para mí. ¡Aquí estaba Internet en la propia voz de Internet! No entendí la mayor parte, pero pude distinguir fragmentos de palabras y frases que me resultaban familiares. Reconocí algunos nombres de fuentes y entendí más o menos los tamaños de píxeles. El resto me era ajeno. Aquí estaba el idioma que hablaba mi computadora, o eso pensé.

Si está planeando aprender a codificar, vale la pena pensar en la mecánica de la codificación. Saber qué está sucediendo exactamente cuando codifica, qué significa cuando decimos que alguien está codificando, cuál es la diferencia entre codificar y programar, en qué lenguajes puede terminar codificando y cómo comenzar a codificar, lo ayudará a ser un mejor descifrador.

Codificación informática para principiantes

Hay mucha publicidad en torno a la codificación, así que comencemos por aclarar qué no es la codificación. Mencioné anteriormente que cuando vi por primera vez el código fuente de una página web, pensé que estaba mirando el idioma que hablaba mi computadora. Esta es una forma común de explicar qué es el código, pero no es exactamente cierto.

Tu computadora no comprende los matices del lenguaje. De hecho, los únicos términos que su computadora entiende muy bien son “Sí” o “No”.

Imagínese que está construyendo un puente con un grupo de ingenieros. Estás de un lado, ellos están del otro y necesitas comunicarte para terminar el proyecto. El problema es que su teléfono ha muerto y su radio solo funciona de una manera. Todo lo que tienes para comunicarte con ellos es una linterna. Un destello para sí, dos para no. Tomará un tiempo pero, eventualmente, se construirá el puente.

Así es como una computadora se comunica con las personas. El lenguaje que habla la computadora es el código binario, un lenguaje matemático de unos y ceros. Al igual que la linterna, solo hay dos opciones. La computadora entiende “encendido” y “apagado”, y nada más. Entonces, a menos que esté escribiendo cadenas de unos y ceros en su editor de texto (que no es así), en realidad no está escribiendo código en el idioma de la computadora.

Pero si el código no está escrito en el lenguaje de la computadora, ¿qué estás haciendo?

El código de computadora es un idioma

Piense en escribir código como este. No habla binario y la máquina no puede ni siquiera acercarse a la comprensión de los lenguajes humanos. Entonces, para que usted le diga a la computadora lo que debe hacer, debe diseñar un traductor que pueda actuar como intermediario. Este es el propósito del código. El código es una forma de escritura que no es binaria, que es fácil de aprender e interpretar para los humanos, pero que la computadora aún puede entender.

Para la mayoría de los python programas en los que es probable que trabajes, el código que escribes es en realidad un paso eliminado del código binario que procesará la computadora. Escribirás en un código que se extraiga del lenguaje humano. Los programas integrados en su computadora luego traducen lo que ha escrito en binario. Es como si necesitaras hablar con alguien que en mandarín, solo sabes inglés, y el único traductor que puedes encontrar habla solo mandarín y francés. Necesitaría otro traductor para traducir del inglés al francés y luego el primer traductor puede traducir del francés al mandarín, con suerte sin tener que perderse en el proceso.

Lo que me sorprende de todo esto es que de alguna manera funciona. Tenemos programas que traducen programas para una máquina que solo habla binario. Este es un proceso increíblemente complicado, sin embargo, aquí estoy escribiendo palabras humanas en mi computadora binaria.

Hay mucho más, por supuesto, pero estas son las cosas esenciales que debe saber antes de iniciar una conversación con su computadora a través del código.

Codificación frente a programación: ¿Cuál es la diferencia?

Cuando era pequeño, mi papá y todas las personas con las que trabajaba eran programadores de computadoras. Esto enmarcó cómo entendí a las personas que escribieron código para computadoras durante mucho tiempo: eran programadores.

Más recientemente, parecía que había un cambio en la terminología o en la industria. De repente, las personas que escribían para computadoras eran programadores. Este cambio me ha llevado a preguntarme si existe alguna diferencia entre lo que hacen los programadores y lo que hacen los codificadores.

Muchos dicen que realmente no hay ninguna diferencia entre un codificador y un programador. Es una diferencia de terminología más que de actividad. En todo caso, en mi humilde opinión, diciendo que es un  codificador  es ligeramente más general que dice que usted es un  programador . Dado que para mí la palabra programador a menudo se asocia con cursos de programación de computadoras (y ciencias de la computación) en una universidad. Mientras que la codificación se siente como algo que todos pueden hacer.

Jonah Bitautas, el diseñador de productos detrás de Cards Against Humanity, hace un punto interesante cuando argumenta que hay una diferencia real y que está arraigada en cuestiones de escala. Básicamente, un codificador es alguien que escribe lenguaje para computadoras. Un programador es alguien que supervisa la redacción de un programa completo, es decir, el valor de codificación de un proyecto completo.

Al final del día, no existe una definición formal de codificador o programador. Por lo tanto, está completamente bien usar estos términos indistintamente: puede decir “Soy un codificador” o “Soy un programador”, y nadie lo juzgará por ello. A menos que sea durante la rara ocasión en Hacker News, el sitio web de noticias de programación donde los codificadores experimentados (y obstinados) pasan el rato. Seguro, podrían decir algo. Solo cepíllalo y sigue adelante.

Tipos de lenguajes de codificación

Hay docenas de lenguajes de codificación. Algunos idiomas son polivalentes (o polivalentes), pero la mayoría cumplen una función específica. CSS, por ejemplo, funciona principalmente para hacer que las cosas se vean bonitas. JavaScript, un lenguaje relativamente antiguo, existe para hacer que las páginas web sean más funcionales. Hay lenguajes especializados que son geniales si necesitas algo súper específico, pero todo lo que realmente necesitas para comenzar son algunos comunes.

HTML

Cuando le pedí que abriera el código fuente de esta página web, lo llevó a líneas de código escritas en HTML. HTML, abreviatura de Hypertext Markup Language, es la base de Internet. Le dice a las páginas web qué se debe mostrar y dónde y cómo encajarán dentro de una hoja de estilo determinada. También le dice a su navegador dónde buscar contenido como imágenes y videos que quizás desee incluir en su proyecto, así como dónde encontrar la hoja de estilo con la que está trabajando.

Una cosa a tener en cuenta: HTML técnicamente no es un “lenguaje de programación” porque no usa expresiones basadas en lógica como, digamos, Python. HTML es un lenguaje de marcado, pero al igual que el debate de codificador versus programador versus desarrollador, es poco probable que se le culpe por llamarlo un lenguaje de programación, especialmente si es nuevo.

CSS

CSS es la hoja de estilo. Si abre un archivo CSS, verá muchas referencias a familias de fuentes, colores y estilos de formato de fuente (como negrita, subrayado o cursiva). Cuando su navegador carga una página, el HTML le dice “Haga que esta parte de la página parezca un encabezado. ¿OK?” También dice “Aquí es donde buscar para comprender cómo debería verse un encabezado”. Este siempre será un archivo CSS.

Javascript

Javascript es el lenguaje que aporta interactividad a una página web. Cuando hace clic en un botón en un sitio web, por ejemplo, es JavaScript lo que hace que parezca que está haciendo clic en el botón. Los controles de los reproductores de vídeo en la web y las animaciones también suelen ser JavaScript.

Ruby contra Python

De hecho, ya tenemos una publicación de baller sobre las diferencias entre Ruby y Python, pero la versión corta es que estos dos lenguajes de programación se usan a menudo para desarrollar aplicaciones web.

Es decir, crean programas que permiten que las páginas web hagan cosas con un alto nivel de interactividad. Si desea, por ejemplo, crear un bot para crear un sistema de pago automático para sus clientes, probablemente use uno de estos. Son excelentes programas con los que aprender a trabajar porque son extraordinariamente versátiles y hay mucho código existente en la web para que empieces a jugar con esto.

¿Cómo aprender a codificar?

Hay una serie de paralelismos entre aprender a codificar y aprender a hablar un nuevo idioma (humano). La similitud más frustrante es que, al igual que con el aprendizaje de cualquier idioma, ¡tienes que dedicar tiempo a practicar!

Algunas personas que son programadores naturales, claro, así como hay personas que pueden hablar italiano después de escuchar un par de óperas. Sin embargo, para la gran mayoría de nosotros, aprender a codificar es un proceso de prueba y error. La codificación es una habilidad. Lleva tiempo y ayuda tener orientación.  

Afortunadamente, ¡hay muchos cursos en línea asequibles para aprender a codificar! Si es nuevo en la codificación y no sabe por dónde empezar, sugiero Programación para no programadores. Este curso le dará el vocabulario y la perspectiva necesarios para entender el mundo de la codificación.

Si está listo para sumergirse directamente en el aprendizaje de código, aprenda Python. Es lo que están haciendo todos los chicos geniales en estos días. Python es un gran lenguaje que puede utilizar para crear casi cualquier sitio web o aplicación que desee crear. ¿No lo cree? Google, Uber, Netflix y muchas más son solo algunas de las empresas que utilizan Python.

¿Tienes poco dinero en efectivo? Hay docenas de sitios web donde puede aprender a codificar de forma gratuita. Así que ahora no tienes excusas.