No te quiero mentir, el título de este artículo es engañoso. Si te has planteado aprender un nuevo lenguaje de programación, pero no sabes cuál escoger, este texto no te va a solucionar la duda. Sin embargo, puede que sí saques algo positivo y te convenza de que, en realidad, no importa lo que elijas. Y que, por tanto, no te puedes equivocar.
Los desarrolladores somos inquietos, y bastante consumistas de aprender cosas nuevas, y muchas veces nos influye el hype, aprender la moda. En cualquier caso, aprender está bien, nos enriquece y es positivo. De hecho, en el libro The Pragmatic Programmer recomiendan aprender al menos un nuevo lenguaje de programación cada año.
Es habitual que en nuestro proceso de aprendizaje continuo, tengamos una lista tan extensa de nuevos lenguajes pendientes de mirar y trastear que nos provoque cierta parálisis y no sepamos cuál elegir.
Según mi punto de vista, no importa el siguiente lenguaje que elijas para aprender.
Los lenguajes son herramientas
Si te dedicas al desarrollo de software y te preguntan “¿Cuál es tu trabajo? ¿A cambio de qué te pagan?”, probablemente respondas que te pagan por programar. Pero no es así.
Pongamos el caso de un repartidor de pizzas. A esta persona le pagan por hacer llegar las pizzas a los domicilios, y para conseguirlo, conduce un ciclomotor. Su jefe no le paga por conducir el ciclomotor, sino por entregar las pizzas a tiempo y en el lugar correcto.
En el caso de los programadores pasa lo mismo. El objetivo de nuestro trabajo es aportar valor al negocio (entregar las pizzas), no programar en sí mismo (conducir el ciclomotor).
Tu trabajo, por tanto, es pensar en cómo solucionar los problemas del negocio de la manera más óptima y adecuada, y los lenguajes de programación y frameworks son vehículos para llegar a esas soluciones. A veces está bien montar una compleja arquitectura de microservicios con un front-end hecho en React, pero otras veces basta con configurar un documento de Excel y no es necesario ni tirar una sola línea de código.
Teniendo esto en cuenta, si en el proceso de elección para aprender un nuevo lenguaje, tu objetivo profesional último es poder definirte como un “Programador Javascript” o “Analista Java”, puede que en realidad estés exponiendo que tienes una limitación, más que una característica. Si no, que les pregunten a los que eran “ActionScript Developer” o “Programador VB6”.
Por tanto, a nivel profesional, quizá no sea tan relevante como crees el saber un lenguaje u otro, siempre que conozcas bien los cimientos, que son muy similares en todos los lenguajes desde hace décadas, y por tanto es poco probable que cambien en un período corto de tiempo.
Fortalece las bases
Más allá de las diferencias en sintaxis, los lenguajes de programación tienen todos las mismas bases. Una vez aprendes uno, es relativamente sencillo aprender otro.
Siguiendo el símil del repartidor de pizzas, conviene antes de nada aprender a conducir bien, conocer el callejero, aprenderse las normas de circulación, etc, antes de preocuparse de qué modelo de ciclomotor elegir.
Así que, antes de elegir un nuevo lenguaje que aprender, asegúrate de conocer bien las bases. Es una inversión de tiempo mucho más rentable aprender buenas prácticas, testing, técnicas de refactoring, etc.
Por ejemplo, si te desenvuelves en programación orientada a objetos, puede que aporte más en tu carrera aprender los principios SOLID o los principales patrones de diseño. Si te llama la programación funcional, quizá sea conveniente saber bien que es una expresión lambda o una mónada.
Obviamente no solo hay que aprender conocimiento base, pero si que debe ser el pilar central de tus conocimientos, y es la mejor inversión a largo plazo.
Aprende practicando
El cerebro es para tener ideas, no para almacenarlas. No te ofusques en memorizar la documentación del lenguaje, quédate con los aspectos clave del mismo.
La mejor manera de hacer esto es practicar. A veces no está justificado emplear ese nuevo lenguaje en tu trabajo diario, pero siempre puedes empezar un pet project o hacer algunas katas.
Conclusión
Programar es divertido si te gusta, así que en realidad, no te vas a equivocar si decides dedicarle tu tiempo a Kotlin, Python, Go, Scala, Elixir... Si te aseguras de que tienes unos cimientos sólidos, cambiar de uno a otro no debería costarte mucho.
Si un lenguaje es realmente importante, perdurará y siempre tendrás tiempo para aprenderlo, así que elige aquel con el que creas que vas a disfrutar más; pruébalo, y nada te impide volver a cambiar si te apetece.
Nota: Este texto fue publicado originalmente en el blog de Kirei Studio.