Cómo es un día en la vida de un programador
Tags: devlive, webdev, programming, beginners
Published: 2021-11-14 13:14:48

Cuando alguien empieza a aprender programación y busca información sobre cómo es la vida de un programador, es fácil encontrar mucha **información contradictoria** y en algunos casos incluso perjudicial. Uno de los temas más controvertidos es **cómo invierte su tiempo un programador** y por eso mismo estoy escribiendo este artículo, para tratar de aportar un poco de luz y aclarar, según **mi experiencia**, como es un día en la vida de un programador.

En primer lugar me gustaría compartir un poco de mi trayectoria profesional para que tengas contexto sobre quien soy y cual es mi experiencia. En el momento de escribir este artículo (Noviembre de 2021) llevo trabajando como desarrollador frontend en España unos 5 años. Trabajé 1 año en una consultora mediana, 3 años en una consultora pequeña que hacía grandes proyectos para IBM entre otras empresas, y actualmente trabajo en Atrápalo, que es una agencia de viajes que tiene presencia en España y parte de latinoamérica. Como puedes ver tengo experiencia en consultoría pero también he trabajado en empresas de producto y a lo largo de los años he trabajado en todo tipo de proyectos, equipos de trabajo, y aplicaciones.

![me programming](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0t9x33z21hwh04xfho87.JPG)

##Cómo invierten su tiempo los programadores


En la comunidad IT es muy común escuchar sobre desarrolladores que dicen que invierten **cientos de horas** a la semana programando, trabajando en side projects, contribuyendo en software libre, bebiendo café y escribiendo miles de horas de código. ¿Pero en qué invierte su tiempo un desarrollador promedio? Fíjate que he dicho "desarrollador promedio" porque en muchas ocasiones las personas que comparten contenido **no muestran la realidad de su vida**, sino simplemente el trozo que les interesa compartir y lo que muestran no suele ser lo que un desarrollador promedio suele hacer.

Hay quien piensa que un programador es una máquina de transformar ideas (y café) en código, pero los programadores hacen **bastantes más cosas** aparte de escribir código. Por ejemplo los desarrolladores que trabajan en empresas medianas o grandes acostumbran a utilizar  metodologías ágiles, esto significa que la aplicación o producto que están desarrollando se desarrolla en diferentes fases en vez de entregar el proyecto de golpe al final del desarrollo. En este tipo de entornos los desarrolladores acostumbran a hacer **reuniones diarias** para hablar sobre lo que hicieron el día anterior, que harán durante el día de hoy y si se encontraron con algún bloqueo al realizar su tarea. En este tipo de entornos es muy común hacer reuniones de demostración con el cliente de forma **periódica** para que pueda ir viendo la evolución del proyecto. 
Además tanto si trabajan en un entorno ágil como si no lo hacen, los desarrolladores invierten tiempo en reuniones **todos los días**. Los motivos más comunes suelen ser priorizar tareas dentro del equipo, decidir cómo se afrontará una tarea especialmente complicada, compartir conocimiento y ayudar a otros miembros de equipo que tienen algún problema. 


Por otro lado, cada día cuando un programador empieza a trabajar, una de las primeras cosas que hace es **recordar** en que estuvo trabajando el día anterior. Esto puede parecer una tontería, pero se invierte bastante tiempo del día en **recuperar el contexto** de lo que se estaba haciendo, especialmente si la tarea era muy complicada, o es la primera vez que el programador se enfrenta a ella. Tal y como hemos visto en el párrafo anterior, los desarrolladores acostumbran a tener **varias reuniones cada día**, lo que supone que después de cada reunión también se tiene que **invertir** algo de tiempo en recordar que se estaba haciendo antes de poder empezar a programar. Por lo tanto, si un programador tiene muchas reuniones en un mismo día, será **muy difícil** que sea productivo porque deberá invertir tiempo constantemente en recuperar el hilo de lo que estaba haciendo anteriormente. 

Cuando un desarrollador empieza a programar lo primero que hace **no es escribir código**, lo primero que se suele hacer es **analizar el problema** que se está intentando resolver para encontrar **la mejor solución posible**. Si un programador empieza a escribir código sin analizar primero el problema, lo más probable es que el código que genere sea **de poca calidad**, así que la fase de análisis es muy importante. En este punto también es muy común preguntar a compañeros más experimentados para buscar y debatir cual es la mejor solución.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/064iulc2a5t2434tk1t6.JPG)
 

Los desarrolladores se enfrentan cada día a *nuevos retos*, así que es muy común que durante su jornada sea necesario que busquen información constantemente. La mayoría de desarrolladores invierten tiempo buscando en google, aprendiendo de tutoriales, foros, o en la propia documentación. Un desarrollador **no necesita saberlo todo**, simplemente necesita saber **donde** encontrar la información necesaria en cada caso. 

Finalmente, cuando un desarrollador no está participando en reuniones, ya sabe como continuar con la tarea que estaba realizando, y ya tiene claro cómo va a resolver el problema, **sólo entonces**, se pone a escribir código. Así que como puedes ver, escribir líneas de código no es la primera cosa que un programador hace por la mañana cuando empieza a trabajar. 

##Cuánto tiempo invierte un programador escribiendo código

Es difícil medir cuánto tiempo pasa un desarrollador programando, pero si hablamos de una jornada laboral de 8 horas, calculo que de promedio se pasan unas **3 - 5 horas máximo** escribiendo código. Evidentemente esto es una aproximación basada en mi experiencia personal, ya que es imposible calcular con exactitud el tiempo promedio que un programador pasa escribiendo código, además depende mucho del sector, la experiencia del programador y la empresa en la que trabaje.
Es común pensar que contra más experiencia tiene un desarrollador más tiempo pasa programando, pero esto **no suele ser cierto**. De hecho, contra más experimentado y hábil sea el programador **menos líneas de código escribirá** porque invertirá más tiempo **ayudando a otros** miembros del equipo, asistiendo a reuniones con clientes o analizando problemas de gran complejidad. 

Espero que este artículo ayude a romper algunos mitos sobre cómo los programadores invertimos nuestro tiempo. ¿Qué opinas al respecto? ¿Pasas más de 3 - 5 horas programando?