Es común encontrarse con equipos "Java", ".Net" o "Cobol", los cuales trabajan solo y para un entorno. Está claro que si te sientes cómodo programando en Java, te dará algo de respeto meterte a programar en .Net, o lo mismo el jefe no quiere que pierdas tu tiempo programando en Java, si ya lo haces bien en .Net.
"Es una pérdida de tiempo y el cliente quiere el proyecto para ayer".
Como programador, valoro mucho el poder trabajar en diferentes entornos de desarrollo, por varios motivos:
- A veces trabajar sobre una tecnología demasiado tiempo (en mi caso, Android) me ofusca sobremanera. Hacer alguna Historia de Usuario en Python me relaja y ayuda a recuperarme un poco de la ofuscación.
- Sacarme de la comodidad habitual de un entorno muy conocido puede ayudar a la motivación, a pensar nuevas estrategias y nuevas formas de desarrollar. Llevando esta analogía al mundo friki... ¿Es lo mismo jugar con los Marines Espaciales que con los Eldar en el Warhammer 40.000? Seguro que no, cada uno tiene sus estrategias, sus ventajas e inconvenientes.
- Aprender nuevas tecnologías. ¿Hay algo más hermoso para un developer?
- "Hala, venga, trabajad en Python,"
- "¡Pero si no tengo ni idea!"
Esto pasa, si no tienes ni idea de un lenguaje, como decía antes, te da algo de respeto cambiarte. Es posible que la primera vez no seas 100% productivo (siéntete afortunado si lo eres un 20%) y no hagas las cosas bien del todo, pero lo mismo la segunda ya lo haces mejor y a la tercera vez que te cambias ya lo dominas mucho más. Es recomendable que las primeras veces haya algún "experto" en la materia que pueda guiarte por esos momentos de incertidumbre y confusión.
"¿Qué carajo es jQuery?"
¿Merece la pena bajar un poco la productividad por que haya más gente que sepa un poco de todo? Si tienes en tu equipo a un hacker en Cobol y solo él sabe del proyecto... ¿Qué probabilidad hay de que se vaya todo al carajo si a este hacker se lo lleva un autobús por delante? Bueno, quien dice un autobús.... dice que se va de vacaciones y se jode algo del proyecto... o algo más dramático (pero no tanto como lo del bus), que se vaya a otra empresa. Reducir ese factor de riesgo es positivo para la empresa (para una empresa que se preocupe de sus proyectos, la calidad de los mismos y la salud mental de los developers).
"No estoy programando en Python, sino que estoy programando en Python como si fuera Java"
Esto pasa... Cuando no conoces un lenguaje, sueles agarrarte a lo que conoces, si conoces Java tenderás a desarrollar código Python como si fuese Java... Luego, cuando vayas cogiendo más experiencia, conociendo la API y la sintaxis te darás cuenta de la diferencia, del cambio de chip y de crear código Python en sintonía con Python (luego corres el riesgo de volver a Java y escribir código Java como si fuera Python....).
A pesar de las pequeñas incomodidades (que en el fondo deberían ser alicientes para romperse la cabeza), recomiendo cambiar de entorno de vez en cuando y siempre y cuando la empresa te lo permita, claro.
De hecho, estoy bastante cansado de Android... me voy a poner a hacer algo en Python.
PD. Donde pone "Python" en este artículo, cambiar por el lenguaje que os gustaría aprender/practicar. He personalizado el post a mi caso, podría haber puesto ".NET"... pero entonces no habría sido yo el que hubiese escrito el artículo. :P