Programar para la Web

aprender a programar

Existen una cantidad enorme de lenguajes de programación algunos muy conocidos como Java, C, Javascript o PHP y otros no tanto como Scala, D, Dart y otros que cada día van apareciendo con más o menos futuro. Atrás van quedando Pascal, Cobol, Fortran. Puede que elijas un lenguaje que en unos años se haya quedado obsoleto. Pero no te preocupes: realmente vas a aprendes a programar, el lenguaje es el vehículo. Si aprendes a conducir con una marca de coche, luego serás capaz de conducir cualquiera. Si quieres ver una lsita más o menos oficial de los lenguajes actualmente en uso puedes acudir a la web de tiobe

Pues lo primero es que si quiero comenzar a programar la primera pregunta es obvia: ¿Qué lenguaje escojo? Puedes aprender solo, por supuesto, pero vas a necesitar ayuda: necesitarás encontrar ejemplos, manuales, casos prácticos... Por lo tanto elige un lenguaje muy conocido y utilizado. Hay más gente que los conoce y que por tanto puede ayudarte a aprenderlo. Además los lenguajes nuevos suelen ser derivados de los primeros.

Bueno, ya has reducido las opciones ¿y ahora?, porque aún hay mucho donde elegir. Ya es más fácil, si quieres subir una montaña lo primero de todo es ver el camino que mejor se adapte a mi equipo, mi experiencia, mis posibilidades en suma. Pero cualquier montaña se sube igual: el inicio es dar un paso.

Pues aquí se habla de los  conocimientos que posees actualmente. Esto es decisivo. Aunque los programas solucionan problemas concretos y muy prácticos en ocasiones, la programación es algo bastante abstracto y difícil de comprender al principio. Conceptos como variable o simples asignaciones o eso de estructuras del lenguaje, no son temas fáciles de asimilar ... insisto al principio.

Es preciso facilitar en lo posible la entrada a este mundillo, hacerla lo más suave posible y de acuerdo con tus capacidades, si no es fácil que te pierdas y te rindas pronto. Por ejemplo: lenguajes como C y similares suelen ser abstractos, dan lugar a códigos difíciles de leer y entender, requieren de un proceso complejo para ver los resultados, son lentos a la hora de desarrollar. Un lenguaje como Javascript por el contrario, es ligero, poco exigente y rápido en cuanto al desarrollo y a ver resultados.

Si se te dan bien las ciencias como matemáticas o física, es decir, si eres capaz de relacionar conceptos abstractos con situaciones reales o entre sí usando expresiones, leyes, generalizaciones, y eres capaz de extrapolar con poco esfuerzo, y si además ya eres un informático al menos a nivel usuario, entonces yo comenzaría con Java (que no es Javascript, es Java).

En Java los primeros pasos pueden ser algo lentos por la novedad, pero los conceptos iniciales de programación te serán fáciles y los objetos y clases (el punto fuerte de cualquier lenguaje actual) no serán un problema. Eso si: necesitas un entorno de programación para desarrollar los programas, al menos al principio.

Si aprendes Java tu siguiente paso puede ser perfectamente C, un lenguaje muy asentado en el que se desarrollan buena parte de las aplicaciones que usas día a día, comenzando por tu sistema operativo. Baste decir que lleva en primera línea desde los años 70 del siglo pasado, ¡casi cincuenta años! Una leyenda viva.

Pero si no tienes una mente demasiado científica, las abstraciones no son lo tuyo y/o te gusta más el aspecto aplicado de la ciencia, en mi opinión es mejor comenzar con algo que sea práctico y que de respuestas inmediatas, o sea, que nos permite hacer cosas prácticas desde el principio. Nuestro cerebro funciona de esa manera: le gusta tener recompensas rápidas, es la base de las adicciones. Es decir que escribir código y ver resultados sea lo más inmediato posible, y si además no se necesitan entornos de trabajo extra mejor aún. En esa linea yo apuesto por Javascript.

Si, Javascript puro básico, (el denominado VainillaJS dicen los ingleses) sin heramientas añadidas. Claro, que para verlo en acción es necesario aprender, o al menos comprender, el lenguaje de las páginas web, HTML. ¡Eureka! esa es la clave: Primero te inicias en un lenguaje nuevo que no es exactamente un lenguaje de programación (realmente HTML es un lenguaje descriptivo, no es un lenguaje de programación, no busque un HTML Compiler ni interpreter) pero sienta sus bases, el proceso en el que tu mandas, das órdenes a algo que ejecuta lo que tu le dices, precisamente esta es la base de la programación. Es una primera aproximación que sirve para romper el hielo con la trastienda de la informática. No tienes que hacerte un experto.

Por otro lado según dicen aprender dos lenguajes al mismo tiempo facilita el aprendizaje, nuestro cerebro es más eficiente en esas condiciones. Al mismo tiempo puedes empezar a escrbir tus primeras líneas de código y a comprender lo que es programar. Ni HTML ni Javascript necesitan entornos de trabajo complejos: basta un editor de texto básico, como el notepad de windows o el vim de linux, y un navegador para ver el resultado. Con Javascript aplicado al HTML conceptos algo abstractos y no fáciles de comprender como variables y asignaciones se aprenden de forma natural, casi sin darte cuenta. La lógica usada en la programación se puede ver de manera inmediata y muy práctica. La depuración para encontrar errores o ver como funcionan los programas es algo muy fácil, bastan las herramienta que ofrecen los propios navegadores web.

Una vez hayas aprendido a programar con Javascript (sin necesidad de ser un maestro) podrás meterte en algo más grande, yo recomendaría Java nuevamente. Los primeros pasos serán un paseo y en nada te verás manejando ficheros, objetos, clases y lo que quieras.

Otra opción después de Javascript es Python, un lenguaje que está extendiéndose a gran velocidad.

A partir de este punto serás capaz de dfenderte con cualquier lenguaje de programación de los que actualmente se utilizan en los entorno informáticos. Igualmente estarás en condiciones de adentrarte en otro tipo de lenguajes más punteros o mas técnicos.

A partir de aquí entra un factor que no he mencionado antes: ¿para qué aprendes a programar? Si vas a moverte en entornos web profundizarás en Javascript, PHP, por supuesto SQL para bases de datos. Si vas a desarrollar software te tocará perfeccionar conocimientos en Java, entrar en C y si te acercas al hardware el lenguaje máquina, ensambladores... Ahi vas a descubrir un mundo muy dinámico, en el que siempre estarás aprendiendo.

Ni que decir tiene que esta es una opinión de algien con algo de experiencia en la enseñanza y que disfruta con ello. Vas a encontrar mil y una opiniones. Pero al final debes decidir tu y sobre todo no darte por vencido al principio. Busca el camino más fácil para poder avanzar y entrenarte en este mundillo, no quieres dsieñar la mejor aplicación del mundo después de dos días de aprendizaje.

Buena suerte.

Por una cuestión práctica:
elije un lenguaje muy conocido.
Tendrás más recursos disponibles.

Si lo tuyo es más la ciencia aplicada o
prefieres resultado rápidos y directos para la web Javascript

¿Se te dan bien las matemáticas o la física?
Pues puedes empezar con Java por aquello de la abstracción