7 Cosas que nadie te dice sobre ser programador
A medida que pasa el tiempo el mundo de la programación se va haciendo más y más conocido debido a su accesibilidad para todo tipo de personas y el hecho de que no hace falta estudiar años antes de poder ejercer la profesión. Todo esto se suma al infinito número de cursos, blogs, canales de youtube y demás medios para promover el aprendizaje de la programación que existen desde hace años, una librería extensa de conocimiento que hace que aprender la profesión sea extremadamente accesible para cualquier con una computadora y conexión a internet. Este blog incluido promueve el aprendizaje de la profesión y los tips y consejos que doy acá pueden facilitarte mucho la vida para iniciarte en este mundo e incluso para cuando ya tengas un tiempo ejerciendo la profesión. Pero algo de lo casi nadie habla es de el lado oscuro, no tan interesante, y aburrido de la programación, que solo lo ves si ya estás en la profesión y poco puedes saber si apenas lo estás aprendiendo o si solo estás estudiando.
Así que hoy te voy a presentar algunos aspectos negativos de ser programador para que tengas un panorama completo de cómo será la profesión y de cómo puede ser tu día a día si llegaras a ejercerla:
- Pasarás gran parte de tu tiempo en reuniones
Cuando estamos aprendiendo a programar pasamos una gran parte del tiempo practicando, leyendo, haciendo ejercicios, pensando maneras de resolver un problema. Pero algo que pocos saben es que cuando realmente cuando trabajamos como programadores, especialmente si trabajamos para una empresa, pasaremos gran parte de nuestro tiempo en reuniones, para discutir proyectos e implementaciones, incluso algunas reuniones serán inútiles porque tendrás que estar presente pero no podrás aportar nada. Personalmente es la cosa que encuentro más frustrante de todas porque las reuniones te quitan tiempo que deberías estar usando haciendo tu trabajo o pensando cosas relacionadas con la tecnología con la que programas, no hablando sobre un tema en el que no tienes voz ni voto. No todas son inútiles pero en su mayoría se pueden resolver con un correo electrónico o un mensaje de chat, pareciera varias de empresa en empresa, sobre todo cuando inició la pandemia, el problema se agravó tanto que pasaba días enteros metido en reuniones.
- Tendrás que hacer “horas extras” no pagadas bastante seguido
Esto te pasará mas seguido de lo que crees, y todo depende de como quieras encararlo. Hay una especie de tabú en lo que a horas extras se refiere, porque por mas que vayas bien de tiempo y termines todo casi siempre el proyecto se atrasará y tendrás que trabajar apresurado si quieres sacarlo a tiempo, el “tabú” es porque hay gente que decide quedarse hasta tarde para poder terminar el proyecto a tiempo, incluso teniendo que trabajar fines de semana para compensar. Y si no lo haces esta “mal visto” que te vayas a tu hora de salida, por mas raro que parezca, entonces muchas personas terminan por someterse a la presión social y terminan quedándose solo porque los demás se quedan, lo cual es gracioso porque los otros se están quedando solo por el mismo motivo que tu, por pura presión social. Pero esas horas extra no las paga la empresa así que solo te quedas por alcahueta y presión social.
El otro problema con esto es que cuando lo empiezas a hacer entonces empiezas a sentar un precedente y la empresa siempre esperará que lo hagas por mas que algún día tengas algo que hacer luego del trabajo, será mal visto que no te quedes.
Lo que creo que es importante aclarar aquí es que esto es solo un tema tabú y que se genera por la presión que se genera en un proyecto y de parte de los líderes para terminar a tiempo, pero rara vez es realmente necesario quedarse trabajando de mas y si realmente es necesario que te quedes porque el proyecto si está atrasado puede ser por una de 2 razones, la primera es por mala gestión del proyecto lo cual no es tu cual así que tampoco tienes razones para quedarte, y la segunda es porque tu te atrasaste por algún motivo, en el cual es el único caso en que justificó quedarse hasta tarde.
- Tendrás que estar aprendiendo y leyendo constantemente
Esto es algo que no es para todo el mundo, mucha gente cree que cuando termina de aprender un tema más nunca tendrá que ponerse a estudiar o a aprenderlo de nuevo, pero la realidad es que en esto uno nunca deja de ser aprendiz, siempre sale una tecnología nueva, siempre sale una nueva versión del lenguaje que utilizas, o algo que nunca habías hecho, o siempre te piden hacer algo que se sale de tu área de especialidad pero no hay nadie más que pueda hacerlo sino tú. En lo personal ese aspecto me encanta, me encanta leer, aprender y poner en práctica lo aprendido. Lamentablemente no es así para todos y por eso lo pongo aquí, hay gente que no le gusta nada leer y no le gusta tener que ponerse a investigar cosas, lamentablemente si eres de ese tipo de personas, quizás la programación no sea para ti. Yo considero que estoy en un punto medio, me gusta aprender e investigar, pero no me entusiasmo si sale una tecnología nueva, solo voy dejando que las necesidades diarias del trabajo me vayan dictando lo que tengo que aprender e investigar.
- El desarrollo en el que invertiste horas puede no ver la luz
Nuevamente este es un tema personal pero estoy seguro que no soy el único que le afecta. A veces invertimos horas en un desarrollo que nos solicitaron solo para que este nunca vea la luz, es decir que se desecha. Esto es muy frustrante porque es algo en lo que invertiste tiempo y dedicación y por más que igual “te lo paguen” económicamente, da la sensación de que tu trabajo no es apreciado sino algo desechable. Los motivos para un proyecto desechado pueden ser muchos, mala planificación de los líderes, mal entendimiento del desarrollador, reasignación de prioridades, entre otras. El problema que yo veo con esto es que afecta tu motivación en el trabajo, “para qué esforzarse en hacer un buen trabajo si va a ser desechado, para eso hago cualquier cosa y así terminó más rápido” es un pensamiento común que pasa por mi mente cuando me ocurren este tipo de cosas. Con el pasar de los años me he vuelto mas y mas inmune a esto y simplemente intento hacer un buen trabajo porque soy un profesional más que por causar una buena impresión, hago un buen trabajo para sentirme bien conmigo mismo por más que nadie lo vea nunca.
- Burocracia de deploys
Esto ocurre mayormente en empresas muy grandes con cientos de desarrolladores, rara vez ocurre en empresas pequeñas. Yo llamo“Burocracia de deploys” a esos procesos super extensos que hay que hacer desde el momento que haces un desarrollo hasta que lo subes a un ambiente productivo, en las empresas más grandes el tiempo desde que terminas un desarrollo hasta que se sube a producción (también que usan los usuarios finales) puede ser de 2 semanas a 1 mes.
Esto puede ser sensato para algunos desarrollos pero imagínate que terminaste de hacer un desarrollo pequeño que cambia el texto de un buscador, solo modificaste una línea de código y sin embargo para que esto pase a producción tienes que esperar las mismas 2 semanas. Realmente no me importa el hecho del tiempo como tal, sino de todo lo que tienes que hacer en el proceso, muchas veces tienes que mandar correos, dejar comentarios y presionar para que tu cambio salga, tienes que pedir permiso para corregir errores o para arreglar cualquier tema minúsculo. Es realmente fastidioso cuando lo que tienes que hacer es algo muy pequeño, y tienes a alguien presionando para que salga a producción.
El motivo de esto es porque hay algo llamado “Deployment Lifecycle” que es el ciclo de vida que ocurre desde que el desarrollador hace una implementación hasta que se sube a producción. Esto pasa por un área de testing de QA, luego a un área de UAT y entra a una cola de espera hasta que llega el tiempo de subir tu cambio en conjunto con otros cambios a producción.
- Cambios, cambios, cambios
Como desarrollador lo más emocionante del trabajo es encarar proyectos nuevos y desafiantes que nos hagan pensar como solucionar una situación nueva cada vez. Lo que se interpone en esto son los cambios, ¿que tipo de cambios? cambios de proyectos que ya salieron a producción o proyectos que ya deberían estar terminados.
Los clientes rara vez tienen idea de lo que quieren hasta que lo ven terminado, una vez que lo ven y pueden usarlo ahí es que se le empiezan a ocurrir ideas y cambios que pueden hacer para “mejorar” el desarrollo, estos cambios extienden el tiempo de vida del proyecto muchísimo, pudiendo demorar incluso meses extra solo manejando cambios solicitados por el cliente. Y cuando digo “clientes” no me refiero solo al trabajo freelance, también puede ser el PM de tu equipo o algún otro departamento dentro de la empresa donde trabajas que requiera estos cambios.
El problema con esto es que no estás haciendo nada nuevo y al poco tiempo se vuelve aburrido y en la mayoría de los casos terminas yendo hacia adelante y hacia atrás para ajustarse a lo que te solicita el cliente. En mi caso, cuando me piden un cambio, he optado por comentar el código en vez de cambiarlo porque se que posiblemente tenga que volver al punto inicial más de una vez.
- El inglés es esencial
En algún momento escribí un artículo hablando de esto, Pero no puedo dejar de recalcar lo importante que es el inglés para los programadores, no es que sin inglés no puedas programar, sino que limitas demasiado tus posibilidades de conseguir un buen empleo si no sabes inglés.
Esto no se limita solo si quieres ser freelance sino para conseguir trabajo en muchas empresas, aunque en las empresas hablen español y aunque la empresa esté en tu país. El motivo por el que el inglés es importante en casi todas las empresas es porque estás siempre hacen negocios con otros empresas del exterior sobre todo si hablamos en el ámbito de la programación, así que no saber inglés limita demasiado tus posibilidades de conseguir empleo, dejando solo un puñado de opciones de empresas en tu país que no hacen negocios en el exterior. El problema de esto, es que las empresas que no negocian con el exterior posiblemente produzcan menos dinero y esto se traduce en un menor salario para ti como programador.
Conclusión
Muchas de estas cosas que te mencioné son cosas que me hubiese gustado saber cuando estaba aprendiendo programación, no me habían detenido de mi objetivo pero ciertamente me habían hecho replantearme muchas cosas que he venido haciendo a lo largo de mi carrera. ¿Te sirvió conocer estas cosas? ¿Había alguna que ya supieras?