Qué lenguaje de programación aprender primero
Clase 5 de 50 • Curso de Programación Básica 2014
Siendo sincero, tengo que decir que en la universidad odiaba las materias relacionadas con programar. Creía que los programadores sólo complicaban más las cosas en lugar de arreglarlas. Después descubrí que mi problema no era con la programación en sí; este radicaba en la obligación de usar un solo lenguaje y nada más.
“Programar es lo más cercano a tener superpoderes” - Drew Houston, Dropbox
Pero he de aceptar que los tiempos cambiaron. Actualmente, la oferta de lenguajes de programación es abundante e interesante. Y en este artículo trataré de hacerte ver qué opciones se adecuan más a tus necesidades; puedes estar seguro de que no sólo será una. ## No existe el mejor lenguaje de programación y eso es bueno
Si quieres adentrarte en el mundo de la programación, debes estar consciente de que no hay lenguaje de programación definitivo. Cada uno de ellos pasa por etapas de mejoras y actualizaciones, que lo hacen mejor o peor en cada iteración. Esta situación debe sonarte familiar, a menos que seas de los que prefiere los lenguajes interpretados, como Javascript. Pero si eres como yo, y prefieres los lenguajes combinados, no te será ajeno trabajar con 2 versiones al tiempo. Y esto sólo quiere decir que siempre encontrarás innovación en cada uno de ellos. Es más, si dejan de tener soporte de este tipo, tal vez consideraría cambiar de profesión. Otro punto importante a considerar, tiene que ver con las limitaciones de uso de los lenguajes. Mientras unos serán altamente portables en cualquier sistema operativo, otros son difíciles de lograr bajo otras condiciones. Por ejemplo, una aplicación basada en .net correrá perfectamente sobre un ambiente Windows; mientras que hacer una aplicación de iOS usando Swift es impensable en otro lugar que no sea Mac OS.
¿Qué tan importante es lo anterior?
Podrás verlo reflejado en lo siguiente:
Python
Es un lenguaje de alto nivel que, a mi parecer, es de los más intuitivos e ideal para empezar a programar. Guido van Rossum tuvo la idea de crear un lenguaje tan limpio y sencillo para que hasta un niño tuviera una curva de aprendizaje intuitiva. Viene por defecto en Linux y Mac y con opción de correrlo en Windows.
Java
De segundo está Java. Sí, aquel lenguaje que amas u odias por ser estrictamente tipado y ser el corazón de mucho software corporativo. Sin embargo, muchos de los estándares y buenas prácticas de programación orientada a objetos nacieron de Java. Y es el encargado de traernos aplicaciones a Android. Aquí es donde te quiero compartir algo: No te limites por el lenguaje. Si quieres hacer Android pero odias Java, te estás perdiendo de la posibilidad de llevar tu idea en forma de aplicación a todo el mundo. Inténtalo, ver correr tu proyecto en la vida real vale mucho la pena.
Ruby
Tenemos después a Ruby. He de confesar que no he tenido un acercamiento fuerte a este lenguaje; pero he visto muchas cosas interesantes en web gracias a Ruby on Rails.
C++
La popularidad de este lenguaje no le hace justicia a su importancia. Es difícil de aprender, pero sin él muchos de los lenguajes actuales no existirían. Es el más fuerte de todos y, si algún día llegas a comprenderlo en su totalidad, entender los otros lenguajes será pan comido.
JavaScript
El tan versátil JavaScript, que no sólo vive en los navegadores y nos permite crear todo el flujo de interacción de nuestros websites; sino que se puede usar en cualquier capa de un proyecto: Front-end, Backend, Bases de Datos, Internet of Things, etc. Este alcance hace de Javascript un lenguaje lindo para iniciar a programar.Sin embargo, a veces lo permisivo puede ser contraproducente. Esto sólo tiene que ver con que cada quien tenga su propio estilo a la hora de atacar un problema. Es decir, entre tanta resoluciones, se puede causar un ambiente algo caótico. No obstante, propuestas como el nuevo estándar ECMAScript6 hacen que esto se vuelva menos frecuente. Incluso, si quieres que tu gato aprenda Javascript, hay un recurso para ello aquí.
Como ves, hay lenguajes de historias y sabores. Creo que en ningún otro medio tenemos la facultad de elegir entre tantas posibilidades. Si el lenguaje que te gusta no es tendencia, es porque quizá hay otro que se le parezca pero con más opciones y comunidad más fuerte.Replantear está bien, pero aún hay más factores que nos ayudan a elegir un lenguaje de programación para especializarnos.
Conoce a la comunidad, el ciclo de vida de un lenguaje depende de ello.
Todo lenguaje de programación va de la mano de una comunidad que apoya y “evangeliza” las herramientas del mismo. Mientras un grupo es más grande, es más probable encontrarse con aquel feedback que necesitas para complementar tu proyecto.
Si el lenguaje que te agrada tiene una comunidad difícil, lo mismo será su mantenimiento o innovación.Existen casos donde la misma comunidad mantiene el código y crea las herramientas para las mismas. El caso más sonado últimamente es el de io.js con node.js. Al ver un lento avance del lado de node.js, la comunidad decidió mantener el proyecto mediante una “rama” diferente y ha derivado en algo más que interesante.Una parte importante de una comunidad son los meetups que se realizan en torno a estas. Seguro encuentras alguna para asistir y debatir sobre aquel lenguaje que te gusta y ¿por qué no?, crear una colaboración en conjunto.
Estas comunidades no siempre son presenciales y se forman en foros o páginas como Github o StackOverflow. Entre más gente involucrada, más posibilidades de creación de herramientas, soluciones e iteración de las mismas. Concéntrate en proyectos que ames, haz que las cosas pasenLo mejor para elegir un lenguaje enfocado a lo que te gusta: si quieres hacer aplicaciones para iPhone enfócate en aprender Swift o Objective-C; si quieres Android aprende Java; si quieres Web aprende Javascript e intenta bajo los diferentes frameworks. A mi me gusta GO y en México recién inician comunidades que trabajan bajo dicho lenguaje y seguro me harán saber las posibilidades del mismo.Todos los lenguajes tienen su propia sintaxis y complicaciones.
Todos tienen su objetivo e identidad. Sé constante y enfócate en aquel que te dará las herramientas suficientes para aquello que quieres lograr. Apóyate de las comunidades y no dudes experimentar con cada una de ellas. Cuando encuentres el lenguaje ideal, practica y sé constante. Sé que, muchas veces, queremos dominar todo; pero la especialización es importante y es parte de lograr equipos increíbles.Sin más, me gustaría saber de ti: ¿Qué lenguaje es el que usas más? ¿Cuál es tu favorito? ¿Ambos son el mismo?