Hoy vamos a hablar de la codificación. En concreto, voy a contestar a la pregunta: ¿qué es la codificación? También vamos a hablar un poco de lo que pasa cuando escribimos código.
Antes de que sigas leyendo, haz clic derecho en la ventana de tu navegador y selecciona la opcion «Ver codigo fuente de la pagina».

Así verás el código de la página web. Es decir, mirando detrás de la cortina, verás el lenguaje que le dice a tu ordenador cómo hacer que la página web se vea asi.

La primera vez que vi el código en una ventana del navegador fue revelador. ¡Ahí estaba la verdadera voz de internet! No entendía mucho, pero encontré fragmentos de palabras y frases que me sonaban. Reconocí algunos nombres de fuentes y podía más o menos entender los tamaños en píxeles. El resto lo desconocía. Pensé que ese era el idioma que hablaba mi ordenador.
Si quieres aprender a escribir código, vale la pena analizar la mecánica de la codificación. Saber exactamente qué pasa cuando escribes código, qué significa decir que alguien está codificando, cuál es la diferencia entre codificar y programar, en qué lenguajes podrías escribir código, y cómo empezar a codificar. Todo esto te ayudará a ser un mejor programador.
Codificación informática para principiantes
Hay mucha exageración sobre la codificación, así que vamos a empezar aclarando lo que la codificación no es. Antes he dicho que la primera vez que vi el código fuente de una página web, pensé que estaba viendo el idioma que hablaba mi ordenador. Esta es una forma muy común de explicar qué es el codigo, pero no es exactamente cierta.
Tu ordenador no entiende los matices del idioma. De hecho, los únicos términos que entiende bien son «Sí» y «No».
Imagina que estás construyendo un puente con un grupo de ingenieros. Tú estás en una orilla y ellos en la otra, y os tenéis que comunicar para terminar el proyecto. El problema es que tu teléfono ha muerto y tu radio sólo funciona en un sentido. Lo único que tienes para comunicarte con ellos es una linterna. Un destello para sí, dos para no. Vais a tardar bastante, pero al final vais a poder construir el puente.
Así es como se comunica un ordenador con las personas. El idioma que habla el ordenador es un código binario, un lenguaje matemático de unos y ceros. Como la luz de la linterna, solo hay dos opciones. El ordenador entiende «encendido» y «apagado», y nada más. Así que a menos que estés escribiendo cadenas de unos y ceros en tu editor de texto (y no es el caso), en realidad no estás escribiendo el código en el idioma del ordenador.
Entonces, si el código que escribes no está en el idioma del ordenador, ¿qué es lo que estás haciendo?
El código del ordenador es un lenguaje
Piensa en escribir código en estos términos. Tú no hablas el lenguaje binario, y el ordenador no llega a entender los idiomas humanos. Ya que para decirle al ordenador qué quieres que haga, tienes que proyectar un intérprete que pueda actuar de intermediario. Esta es la función del código. El código es una forma de escritura que no es binaria, que es fácil de aprender por los seres humanos, pero que también un ordenador puede entender.
En la mayoría de programas en los que probablemente vayas a trabajar, el código que escribes está en realidad a un paso del código binario que el ordenador va a procesar. Vas a escribir en un código que viene del lenguaje humano. Los programas integrados en tu ordenador después van a traducir lo que has escrito en el código binario. Es como si tuvieras que hablar con alguien que sólo habla mandarín, tú sólo hablas inglés y el único traductor que has encontrado sólo habla mandarín y francés. Necesitarías otro traductor para traducir del inglés al francés así que el primer traductor pueda traducir del francés al mandarín, esperando que el sentido no se pierda en el proceso.
Lo que me impresiona de todo esto es que de alguna forma funciona. Tenemos programas que traducen programas para una maquina que solo habla binario. Es un proceso increíblemente complicado, sin embargo, aquí estoy escribiendo palabras humanas en mi ordenador que sólo entiende el código binario.
Hay mucho más, desde luego, pero esto es lo esencial que hay que saber antes de empezar una conversación con un ordenador a través del código.
Codificación y programación: ¿cuál es la diferencia?
Cuando era pequeño, mi padre y todas las personas que trabajaban con él eran programadores. Esto llevó a que pensara por mucho tiempo que los que escriben código para los ordenadores son programadores.
Últimamente parece que la terminología ha cambiado. De repente, los que escriben para los ordenadores son codificadores. Este cambio me llevó a preguntarme si hay alguna diferencia entre lo que hacen los programadores y lo que hacen los codificadores.
Muchos dicen que en realidad no hay diferencia entre un programador y un codificador. Es más que nada una diferencia de terminología. En todo caso, en mi humilde opinión, decir que eres un codificador es un poco más general que decir que eres un programador, ya que a menudo asocio la palabra programador con los cursos de programación (e informática) en la universidad. Mientras que siento la codificación como algo que todos podemos hacer.
Jonah Bitautas, el product designer de Cartas contra la humanidad, hace una observación interesante argumentando que hay una diferencia real y se basa en una cuestión de escala. Esencialmente, un codificador es alguien que escribe el lenguaje para los ordenadores. Un programador es alguien que supervisa la escritura de un programa, es decir, un proyecto entero.
Al fin y al cabo, no hay una definición formal de codificador o programador. Así que está bien usar estos términos de forma intercambiable: puedes decir «soy un codificador» o «soy un programador», y nadie te va a criticar por eso. Menos en Hacker News, la página web de noticias del mundo de la programación, donde se juntan codificadores expertos (y tercos). Obviamente, podrían decir algo. Tú ignóralos y sigue adelante.

Tipos de lenguajes de codificación
Hay docenas de lenguajes de codificación. Algunos sirven para todo (o tienen varios usos), pero la mayoría tiene una función específica. CSS, por ejemplo, sirve principalmente para hacer que las cosas sean bonitas. Javascript, un lenguaje relativamente antiguo, hace que las páginas web sean más funcionales. Hay lenguajes especializados que son perfectos si necesitas algo muy específico, pero lo que realmente necesitas para empezar son algunos de los más usados.
HTML
Cuando te pedí que abrieras el código fuente de la página, has visto líneas de código escritas en HTML. HTML, acrónimo de Hypertext Markup Language (lenguaje de marcas de hipertexto), funciona como los huesos de Internet. Dice a las páginas web qué hay que mostrar, dónde y cómo tiene que adaptarse a una hoja de estilo determinada. También le dice al navegador dónde tiene que buscar contenido como las imágenes y vídeos que quieres incluir en tu proyecto, así como dónde puede encontrar la hoja de estilo sobre la que estás trabajando.
Una cosa a tener en cuenta: técnicamente HTML no es un lenguaje de programación porque no utiliza expresiones basadas en la lógica como, por ejemplo, Python. HTML es un lenguaje de marcado, pero al igual que el debate sobre la codificación, la programación y el desarrollo, nadie te criticará por llamarlo lenguaje de programación, sobretodo si estás empezando a aprender.
CSS
CSS es la hoja de estilos. Si abres un archivo CSS, verás muchas referencias a familias de fuentes, colores y estilos de formato (negrita, subrayado y cursiva). Cuando tu navegador carga una pagina, el codigo HTML le dice: «haz que esta parte se vea como un título. ¿Vale?» También dice: «Aquí es donde hay que mirar para saber cómo tiene que ser un título». Este siempre será un archivo CSS.
Javascript
Javascript es el lenguaje que hace que una página web sea interactiva. Cuando haces clic en un botón de una página web, por ejemplo, es Javascript él que hace que parezca que lo estás pulsando de verdad. También los controles de los reproductores de vídeo y las animaciones suelen ser Javascript.
Ruby vs. Python
En realidad ya tenemos un post sobre la diferencia entre Ruby y Python, pero la versión corta es que estos dos lenguajes de programación se suelen utilizar para desarrollar aplicaciones web.
Es decir, crean programas que permiten a las páginas web funcionar con un alto nivel de interactividad. Por ejemplo, si quieres crear un bot para hacer un sistema de pago automático para tus clientes, es probable que uses uno de ellos. Son programas muy buenos para aprender a trabajar porque son extremadamente versátiles y en la web hay mucho código existente para que puedas empezar a probarlos.

¿Cómo aprender a escribir código?
Aquí tienes unas cuantas similitudes entre aprender a escribir código y aprender a hablar un nuevo idioma (humano). La más frustrante es que, como con el aprendizaje de cualquier idioma, ¡tienes que pasar bastante tiempo practicando!
Algunos escriben código de forma muy natural, es verdad, así como hay personas capaces de hablar italiano después de escuchar un par de óperas. Para la gran mayoría, sin embargo, aprender a escribir código es un proceso de prueba y error. La codificación es una habilidad. Necesita tiempo, y es útil tener un guia.
Afortunadamente, ¡hay muchos cursos online asequibles para aprender a programar! Si eres nuevo en la programación y no sabes dónde empezar, te aconsejo Programación para no programadores. Este curso te dará el léxico y la perspectiva necesaria para dar sentido al mundo de la programación.
Si estás preparado para sumergirte en el aprendizaje del código, Aprende Python. Es lo que toda la gente guay hace estos días. Python es un buen lenguaje que puedes utilizar para construir casi cualquier página web o aplicación que quieras. ¿No te lo crees? Google, Uber y Netflix son algunas de las muchas empresas que utilizan Python.
¿Presupuesto ajustado? Hay docenas de páginas web donde puedes aprender a escribir código gratis. Así que ya no tienes excusas.