Quiero aprender a programar. ¿Por dónde me pongo?

12 julio, 2018

¡Excelente pregunta!

Antes de entrar en materia… ¡Felicidades! La curiosidad por aprender a programar es, quizá, la curiosidad del siglo XXI. Hoy en día cuesta decir que un conocimiento es imprescindible, pero entender qué es programar está muy, pero que muy cerca de serlo. Cada día suceden infinidad de cosas que nos afectan —por muy poco conectados que estemos— que pasan por un algoritmo (¡o muchos!) que toma unos datos, los procesa de una determinada forma y acaba dando un resultado que nos atañe muy directamente. Ya sea tu declaración de la renta, pedir hora en el médico, que te asignen colegio para tus hijos… prácticamente todo pasa en algún momento por un programa informático. Y si quieres entender cómo se programa… difícilmente lo vas a conseguir de verdad sin haber programado al menos un poco. Así pues, insistimos, felicidades por haber tomado una excelente decisión. ¡Aprender a programar!

En segundo lugar, una advertencia. ¿Sabéis esos cursos milagrosos que aseguran enseñaros inglés en treinta días? Aprender a programar es, en parte, aprender un idioma (y mucho más que eso: es aprender a enseñar a una máquina a hacer cosas extraordinarias). Muy poca gente va a aprender un idioma —informático o no— en treinta días. Existe un pequeño riesgo, además, de que no aprendáis a programar (pequeño, insisto). Aun así, esforzarse e intentarlo de verdad va a tener como resultado, en el peor de los casos, el entender mucho mejor cómo funciona el universo en que nos movemos. Pero os vais a tener que poner de verdad. Si alguien os asegura que a programar se puede aprender sin esfuerzo, desconfiad. Añado, además, que es un aprendizaje que con cierta frecuencia nos va a frustrar: si no has querido tirar nunca el ordenador por la ventana… es que no has aprendido a programar. Si buscáis algo que aprender sin riesgo de frustración, la programación no es el camino. Eso sí: a cambio, pocas cosas hay más satisfactorias que escribir tu primer programa. O el segundo. O…

Dicho lo cuál… por dónde comenzar. Repitamos: excelente pregunta. Hay muchas, muchísimas opciones, tanto de metodologías como de lenguajes.

Qué lenguaje elegir

La lista de lenguajes de programación es enorme. Hay una lista en Wikipedia que enumera hasta 58 lenguajes de programación… que comienzan por la letra A (contar cuántos lenguajes de programación hay en esa página es, por cierto, un excelente ejemplo de ejercicio de programación ;-)). Hasta la lista de lenguajes de programación educativos (esto es, diseñados para enseñar a programar) es enorme. Si conocéis a alguien que hace años que sabe programar, seguro que le podéis sacar alguna anécdota sobre los vetustos BASIC o Pascal, por ejemplo. Probad, ya veréis.

Hoy en día, el lenguaje educativo por excelencia es Scratch. Y, si tenéis niños, muy probablemente sea la mejor opción para que se inicien en este mundillo (algo sabemos del tema ;-)), gracias a su entorno de programación amigable y las posibilidades que ofrece para crear juegos con relativamente poco esfuerzo. Puestos a criticarlo por alguna cosa, ese mismo entorno hace que, a partir de un cierto nivel de sofisticación, deje de ser una opción viable (aunque hay pequeñas maravillas —y no tan pequeñas— por ahí hechas en Scratch). Y el entorno que lo hace tan atractivo para muchos niños y niñas a veces tira para atrás a los mayores…

Otro lenguaje muy en boga para aprender a programar es Python, un lenguaje de programación diseñado, entre otras cosas, con el objetivo de ser fácilmente legible, y a cuyo alrededor se ha creado una enorme y potente comunidad que ha desarrollado una gran cantidad de recursos tanto para expandir sus funcionalidades como para facilitar su aprendizaje. (Nos permitiremos recordar, además, que Python es el lenguaje que recomendamos para hacer ciencia de datos).

Una opción quizás menos conocida pero extremadamente interesante es Processing, un lenguaje pensado para las comunidades del arte electrónico, el new media y el diseño visual. Para satisfacer a esas comunidades se pensó con una sintaxis simple y la capacidad de generar resultados visuales sofisticados con relativamente poco esfuerzo. La combinación de ambos factores lo convierte en un excelente lenguaje para dar nuestros primeros pasos.

Pero, si nos lo permitís, os vamos a presentar una alternativa quizás menos popular pero, en seguida veréis por qué, muy interesante: JavaScript. JavaScript es un lenguaje de programación creado a finales de 1995, cuando los desarrolladores de Netscape Navigator (el antiguo navegador de cuyas cenizas nació el actual Firefox) tuvieron la necesidad de añadirle un lenguaje de programación a su navegador. En apenas diez días (literalmente) Brendan Eich creó un primer prototipo. Y hoy, más de dos décadas después, ese lenguaje (después de muchísimas evoluciones) es el que sigue reinando en la web, implementado en todos los navegadores (¿Facebook? ¿GMail? ¿Twitter? Sí, grandes cantidades de JavaScript). Incluso cuando no estáis usando un navegador, es difícil que estéis usando un ordenador (aunque este tenga la forma de un smartphone) y estéis muy lejos de algo que funciona gracias a JavaScript: la aplicación de Spotify, por poner un ejemplo, funciona gracias a miles de líneas de código JavaScript (y bastante C++ también, todo sea dicho). ¿Habéis usado alguna vez la aplicación de escritorio de WhatsApp? Pues sí, también está hecha en JavaScript. Y nos podríamos pasar así un buen rato.

¿Cuáles son las ventajas de JavaScript?

-En primer lugar, desde luego, su universalidad: difícilmente vais a encontrar un ordenador (o smartphone, o tablet) que no ejecute JavaScript. Si tiene un navegador, tiene JavaScript (y si no la tiene, casi seguro que también).

-En segundo lugar, que no necesitáis absolutamente nada para empezar a programar en JavaScript: en vuestro ordenador ya tenéis un editor de texto (si estáis en Windows, se llama «Bloc de notas»; en Mac disponéis, por ejemplo, de TextEdit) con el que comenzar a escribir y vuestro navegador favorito para ejecutar código (los navegadores, además, cada vez ofrecen mejores developer tools que nos asisten a la hora de analizar, depurar y mejorar nuestro código). Prácticamente todo el resto de lenguajes necesita que os bajéis e instaléis al menos un pequeño entorno de desarrollo sin el que no podréis trabajar. Y si queréis entornos más sofisticados sin la necesidad de instalar nada, tenéis una variedad de sitios web, como Codepen, por ejemplo, que os ofrecen mejores herramientas y todo el código de ejemplo que podáis necesitar.

-En tercer lugar, que existen multitud de recursos educativos en abierto con los que podéis comenzar. Nuestros favoritos son los tutoriales de Mozilla (la fundación que desarrolla Firefox, entre otras muchas cosas) y un libro de texto disponible de forma gratuita en la web, Eloquent JavaScript.

-Finalmente (por no alargarnos más), a pesar de lo que quizá hayáis oído por ahí, porque JavaScript (y su primo cercano, TypeScript) es hoy en día un lenguaje de programación moderno que dispone de todas las funcionalidades que vais a necesitar, primero, para aprender a programar y, después, para desarrollar la aplicación que se os pase por la cabeza.

Pero, en cualquier caso, lo importante es empezar por algún sitio. Y, de todas formas, si os acaba picando el gusanillo, lo más probable es que acabéis aprendiendo a programar en muchos lenguajes. Y, como con los idiomas, el segundo es mucho más fácil de aprender que el primero :-).

Y cómo lo hago

Afortunadamente, casi todos los caminos llevan a Roma (como decíamos antes, eso sí, el camino es largo y requiere de esfuerzo).

Podéis, desde luego, optar por la vía de la autoformación. Hace dos párrafos hablábamos de los tutoriales de Mozilla o de Eloquent JavaScript. Son excelentes recursos que os animamos a consultar y que os van a llevar muy, pero que muy lejos, si les dedicáis el tiempo y el trabajo necesarios. Hay por el mundo una enorme cantidad de profesionales que han comenzado a programar solos (nosotros preferimos decir que apoyándose en hombros de gigantes, eso sí) y han seguido aprendiendo por su cuenta gracias a la gran comunidad de desarrolladores y el conocimiento que genera.

La mayoría de vosotros, eso sí, va a querer algo más de acompañamiento cuando os encontréis con los dolores de cabeza que casi inevitablemente os encontraréis por el camino. Una opción de moda actualmente es la de buscar un MOOC de programación, en JavaScript o, como decíamos antes, en cualquier otro lenguaje. Un MOOC buen diseñado (no todos lo están, desafortunadamente) y apoyado en buenos materiales de aprendizaje os va a dar un extra de acompañamiento que seguramente os sea muy útil y puede ser una gran opción.

Y, naturalmente, queda la opción de cursos más convencionales, ya sea en línea o presenciales, de los que, por poco que busquéis, encontraréis una miríada. Como siempre en estos casos, lo mejor es documentarse bien, explorar las opciones que ofrece el mercado. Desde los estudios de Informática, Multimedia y Telecomunicación de la UOC hemos creado nuestra alternativa de introducción a la programación en JavaScript, respaldada por nuestros más de veinte años de experiencia en la enseñanza de la informática en línea. Creemos que es una excelente opción, diseñada para daros el máximo acompañamiento y flexibilidad y poniendo todo el acento en el trabajo continuo en la resolución de problemas y la elaboración de pequeños proyectos que os permitan avanzar con seguridad en el objetivo de aprender a programar.

Sea en nuestras aulas o en cualquier lugar, os deseamos todo el éxito del mundo en la aventura. ¡Adelante!


Carlos Casado es licenciado en informática (UPC), máster en software libre (UOC), director del máster de Aplicaciones Multimedia y profesor responsable del curso Introducción a la programación en JavaScript.

César Córcoles es licenciado en matemáticas (UAB) y director del máster de Desarrollo de sitios y aplicaciones web.


PS ¡¿En serio JavaScript?! Es posible que alguno de vosotros haya oído hablar mal de JavaScript. Y es cierto que es un lenguaje que, durante sus primeros años de existencia, se ganó una cierta mala fama (teniendo en cuenta que se diseñó en diez días, difícil habría sido que no fuera así). A pesar de ello, en los últimos años, con el advenimiento del estándar ECMAScript, JavaScript (y, como comentábamos antes, TypeScript) se ha convertido en un lenguaje de programación de primera categoría. Si alguien lo critica, indagad un poco cuándo actualizó por última vez sus conocimientos sobre JavaScript (y, naturalmente, elegid con total libertad por dónde avanzar, que la cantidad de buenas opciones es enorme).

(Visited 182 times, 1 visits today)
Autor / Autora
Cesar Pablo Corcoles Briongos
Comentarios
Emilio Santos Vilariño13 julio, 2018 a las 8:42 pm

Es una buena introducción sobre el aprendizaje de programación. Me ha gustado el planteamiento de iniciación.

Responder
Deja un comentario