Hoy vamos a hablar de la codificación. En concreto, voy a responder a la pregunta: ¿Qué es la codificación? También cubriremos un poco de lo que sucede cuando codificamos.
Pero antes de que sigas leyendo, quiero que hagas clic con el botón derecho del ratón en la ventana de tu navegador y elijas la opción «Ver fuente de la página».
Cuando haces eso, obtienes una vista del código de la página web. Es decir, al mirar detrás de la cortina, has visto el lenguaje que le dice a tu ordenador cómo hacer que esta página web tenga el aspecto que tiene.
La primera vez que realmente miré el código en una ventana del navegador fue revelador para mí. ¡Aquí estaba internet en la propia voz de internet! No entendía casi nada, pero podía distinguir fragmentos de palabras y frases que me resultaban familiares. Reconocía algunos nombres de fuentes y entendía más o menos el tamaño de los píxeles. El resto me resultaba extraño. Este era el lenguaje que hablaba mi ordenador, o eso creía.
Si estás planeando aprender a codificar, merece la pena pensar en la mecánica de la codificación. Saber qué ocurre exactamente cuando codificas, qué significa cuando decimos que alguien está codificando, cuál es la diferencia entre codificar y programar, en qué lenguajes puedes acabar codificando y cómo empezar a codificar, te ayudará a ser un mejor codificador.
Codificación informática para principiantes
Hay mucho revuelo en torno a la codificación, así que empecemos por aclarar qué no es la codificación. Ya he mencionado que cuando vi por primera vez el código fuente de una página web, pensé que estaba viendo el lenguaje que hablaba mi ordenador. Esta es una forma común de explicar lo que es el código, pero no es exactamente cierto.
Tu ordenador no entiende los matices del lenguaje. De hecho, los únicos términos que tu ordenador entiende muy bien son «Sí» o «No».
Imagina que estás construyendo un puente con un grupo de ingenieros. Tú estás en un lado, ellos en el otro, y necesitáis comunicaros para terminar el proyecto. El problema es que tu teléfono ha muerto y tu radio sólo funciona en un sentido. Todo lo que tienes para comunicarte con ellos es una linterna. Un flash para el sí, dos para el no. Tardará un tiempo pero, finalmente, el puente estará construido.
Así es como un ordenador se comunica con la gente. El lenguaje que habla el ordenador es el código binario, un lenguaje matemático de unos y ceros. Al igual que la linterna, sólo hay dos opciones. El ordenador entiende «encendido» y «apagado», y nada más. Así que, a menos que esté escribiendo cadenas de unos y ceros en su editor de texto (que no lo está haciendo), no está escribiendo realmente código en el lenguaje del ordenador.
Pero si el código no está escrito en el lenguaje del ordenador, ¿qué está haciendo?
El código del ordenador es un lenguaje
Piense en escribir código de esta manera. Tú no hablas binario, y la máquina no puede acercarse a entender los lenguajes humanos. Así que, para decirle al ordenador lo que tiene que hacer, necesitas 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 el ordenador aún puede entender.
Para la mayoría de los programas en los que es probable que trabajes, el código que escribes está realmente un paso más allá del código binario que el ordenador procesará. Usted escribirá en un código que tira del lenguaje humano. Los programas integrados en tu ordenador traducen entonces lo que has escrito a binario. Es como si necesitaras hablar con alguien que en mandarín, sólo sabes inglés, y el único traductor que pudieras encontrar sólo hablara mandarín y francés. Necesitarías otro traductor que tradujera del inglés al francés y entonces el primer traductor podría traducir del francés al mandarín, con suerte sin que el significado se perdiera en el proceso.
Lo que más o menos me sorprende de todo esto es que de alguna manera funciona. Tenemos programas que traducen programas para una máquina que sólo habla binario. Se trata de un proceso increíblemente complicado y, sin embargo, aquí estoy escribiendo palabras humanas en mi ordenador que habla en binario.
Hay mucho más, por supuesto, pero estas son las cosas esenciales que hay que saber antes de iniciar una conversación con tu ordenador a través del código.
Codificación vs. Programación: ¿Cuál es la diferencia?
Cuando crecí, mi padre y toda la gente con la que trabajaba eran programadores informáticos. Esto enmarcó cómo entendí a las personas que escribían código para los ordenadores 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 los ordenadores eran codificadores. Este cambio me ha llevado a preguntarme si hay 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 terminológica más que de actividad. Si acaso, en mi humilde opinión, decir que eres un coder es algo más general que decir que eres un programador. Ya que para mí la palabra programador se asocia a menudo con los cursos de programación de ordenadores (e informática) en una universidad. Mientras que codificar se siente como algo que todo el mundo puede 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 está arraigada en cuestiones de escala. Básicamente, un programador es alguien que escribe un lenguaje para los ordenadores. Un programador es alguien que supervisa la escritura de todo un programa, es decir, la codificación de todo un proyecto.
A fin de cuentas, no hay una definición formal de un codificador o un programador. Y, por tanto, no hay ningún problema en utilizar estos términos indistintamente: puedes decir «soy un codificador» o «soy un programador», y nadie te juzgará por ello. A no ser que se trate de una rara ocasión en Hacker News, el sitio web de noticias sobre programación en el que se reúnen los codificadores más experimentados (y opinadores). Claro, puede que digan algo. Simplemente, pasa por encima y sigue adelante.
Tipos de lenguajes de codificación
Hay docenas de lenguajes de codificación. Unos pocos lenguajes son polivalentes (o multiusos), pero la mayoría cumplen una función específica. El 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 empezar son algunos comunes.
HTML
Cuando te pedí que abrieras el código fuente de esta página web, te llevó a líneas de código escritas en HTML. Abreviatura de Hypertext Markup Language (Lenguaje de Marcado de Hipertexto), el HTML es la base de Internet. Indica a las páginas web lo que debe mostrarse y dónde y cómo deben encajar en una determinada hoja de estilo. También le dice a su navegador dónde buscar contenido como imágenes y vídeos que puede querer incluir en su proyecto, así como dónde encontrar la hoja de estilo en la que está trabajando.
Una cosa a tener en cuenta: HTML técnicamente no es un «lenguaje de programación» porque no utiliza expresiones basadas en la lógica como lo hace, por ejemplo, Python. HTML es un lenguaje de marcado – pero al igual que el debate de codificador vs. programador vs. desarrollador – es poco probable que se te culpe por llamarlo un lenguaje de programación, especialmente si eres nuevo.
CSS
CSS es la hoja de estilos. Si abres un archivo CSS, verás un montón de referencias a familias de fuentes, colores y estilos de formato de fuente (como negrita, subrayado o cursiva). Cuando tu navegador carga una página, el HTML le dice «Haz que esta parte de la página parezca un encabezado. ¿DE ACUERDO?» También le dice «Aquí es donde hay que mirar para entender cómo debe ser un encabezado». Esto siempre será un archivo CSS.
Javascript
Javascript es el lenguaje que aporta interactividad a una página web. Cuando haces clic en un botón en un sitio web, por ejemplo, es JavaScript el que hace que el botón parezca que estás haciendo clic. Los controles de los reproductores de vídeo en la web y las animaciones también suelen ser Javascript.
Ruby vs. Python
En realidad ya tenemos un post más peliagudo sobre las diferencias entre Ruby y Python, pero la versión corta es que estos dos lenguajes de programación se utilizan a menudo para desarrollar aplicaciones web.
Es decir, crean programas que permiten a las páginas web hacer cosas con un alto nivel de interactividad. Si quieres, por ejemplo, construir un bot para crear un sistema de pago automático para tus clientes, probablemente utilizarás uno de ellos. Son programas estupendos para 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, ¡hay que dedicar tiempo a practicar!
Hay personas que son codificadores naturales, claro, igual que hay gente que puede 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 a tener una guía.
Por suerte, ¡hay muchos cursos online asequibles para aprender a codificar! Si eres nuevo en la codificación y no sabes por dónde empezar, te sugiero Programming For Non-Programmers. Este curso te dará el vocabulario y la perspectiva necesarios para dar sentido al mundo de la codificación.
Si estás listo para sumergirte directamente en el aprendizaje de la codificación, aprende Python. Es lo que todos los chicos guays están haciendo hoy en día. Python es un gran lenguaje que puedes usar para construir casi cualquier sitio web o aplicación que quieras hacer. ¿No lo crees? Google, Uber, Netflix, y muchas más son sólo algunas de las empresas que utilizan Python.
¿Poco dinero? Hay decenas de sitios web donde puedes aprender a codificar gratis. Así que ahora no tienes excusas.