Los errores que cometí como programadora junior

Los errores que cometí como programadora junior

Hace un año decidí pivotar mi carrera. Pasé de ser una bibliotecaria y aprendiz de programación a aceptar una oferta de trabajo como ingeniero de software en el Reino Unido. No obstante, este post no es sobre ese viaje o salto de carrera. Es sobre los errores cometidos como programadora junior.

Hablaré sobre decisiones no tan acertadas, cosas que haría diferente, situaciones que no vi venir y, sobre todo, aprendizajes, Lo primero a resaltar es que cometer errores es natural y es la manera más rápida de aprender algo, solo si realmente estás interesado en educarte y no solo en presumir.

A medida que más personas están aprendiendo a programar, ha ido incrementado el número de nuevos desarrolladores en la industria. Los campamentos de programación o code bootcamp están surgiendo en todas partes del mundo, con la promesa de insertar a candidatos con pocos meses de experiencia en el ecosistema tecnológico.

Tendencia del campo laboral de desarrollo de software para 2020
Fuente: Code.org

Code.org afirma que la Computación es la carrera mejor pagada y los trabajos relacionados con desarrollo de Software están creciendo exponencialmente. Se estima que para el año 2020, en Estados Unidos haya 1.000.000 más empleos que estudiantes (Code.org, 2014).

En vista de esta realidad, y después de experimentar en mi propia piel este proceso, he decidido escribir esta publicación para aconsejarle a los juniors en sus primeros meses en la industria. Igualmente, me dirijo a los empleadores para que logren generar un ambiente propicio para el crecimiento de los juniors.

Conseguir el primer tech job

Encontrar el primer trabajo como desarrollador no es tarea fácil. Debido a la inexperiencia, no se sabe cómo escoger la empresa correcta.

Cometí ese error cuando obtuve mi primer trabajo, luego de terminar el bootcamp de 16 semanas a tiempo completo para aprender a programar. Después de cuatro meses sin ingresos, tenía problemas financieros.

Esto me llevó a aceptar la primera oferta laboral. Pensé en aceptar inmediatamente, ya que era genial en comparación con la miseria que recibía si hacía un internship. Al poco tiempo, me di cuenta que estaba por debajo de la tasa de mercado para la ubicación, la posición y el tiempo.

La empresa era una start up y no tenían una metodología de trabajo bien definida ni la infraestructura para apoyar el crecimiento de un junior. La mentoría, los code reviews, pair programming y el plan de aprendizaje, tan indispensables para un buen desarrollo, eran escasos o intermitentes.

Las start ups suponen riesgos, pero todo depende de cómo la gerencia asuma las crisis. La honestidad y comunicación con los empleados sobre los retos y situaciones inesperadas es primordial para un ambiente laboral estable.

A los pocos meses, la empresa comenzó a desmoronarse. Cerraron las oficinas, tenían problemas para cumplir con los compromisos salariales y las promesas de firma de contrato, de pago de impuestos y payslips, nunca se cumplieron. Los empleadores tampoco fueron claros ni honestos con la crisis. Al final, estuvimos trabajando seis meses en la oscuridad.

Antes de salir de ese trabajo había conseguido otro mucho mejor. ¡Me iban a pagar un 20% más de lo que ganaba en ese momento! Me enviaron el contrato por adelantado y me ofrecieron beneficios de seguro médico, transporte y entrenamiento.

¡Estuve tan feliz de aceptarla! En ese punto había aprendido que no todo el poder está en manos del empleador. Para ese entonces, me había tomado el tiempo para hacer una investigación adecuada y yo misma propuse la oferta.

Conoce a qué te enfrentarás en tu nuevo rol

Investiga a la compañía en línea. Glassdoor es un excelente recurso donde empleados toman tiempo para hablar sobre la compañía en la que trabajan. En general, las reviews pueden estar bastante polarizadas, dependiendo de si la experiencia de los trabajadores fue positiva o negativa.

Leer estas recomendaciones o advertencias en un estadio temprano podría salvarte de algunas pesadillas.

Otra equivocación muy común en juniors es que al principio de la carrera están tan enfocados en conseguir un trabajo que no se toman el tiempo de investigar si el rol encaja con lo deseado.

En las entrevistas no preguntas lo suficiente sobre los entornos, las herramientas y los lenguajes que usarás. Estando consciente de esto, al dar el siguiente paso en mi carrera, me aseguré de preguntar:

  1. ¿Cuál herramienta de control de versiones utilizan? ¿Git, TFS, SVN o Mercurial?

  2. ¿Con qué frecuencia se hacen deployments? Los despliegues deben ser lo más automáticos posible. Te harán la vida mucho más fácil.

  3. ¿Cuánto es la cobertura de pruebas?

  4. ¿Cuáles frameworks/lenguajes utilizan?

  5. ¿Cuál IDE? Visual Studio, Atom o IntelliJ son algunas buenas opciones.

  6. ¿En qué tipo de proyectos estaré trabajando?

  7. ¿Qué tipo de tecnologías planean usar en el futuro?

  8. ¿Ofrecen algún plan de aprendizaje, mentoring o code reviews?

  9. ¿Cuántos clientes tienen?

  10. ¿Cómo es el equipo en el que estaré trabajando? ¿Cuántas personas lo integran? ¿Cuántos juniors, mid level o seniors hay?

Una vez dentro del trabajo

Afirmar que una tarea está “hecha” prematuramente es un error muy común. Ponemos el último punto y coma, hacemos commit y ¡listo! Cuando en la realidad algunas de las funcionalidades están rotas o el código solo implementa una parte de la features.

He aquí la importancia de revisar tu código una y otra vez. Hacer todas las pruebas posibles, leer y releer el ticket para asegurar de que se cumpla con todos los requerimientos del cliente.

Otra recomendación para el lado de los empleadores es definir bien las tareas. Mientras más definidas estén, es más sencillo para los juniors la implementación del código. Incorporen toda la información pertinente: documentación, user journeys, diseños, etc, en las herramientas definidas para esto. No utilice Slack, mensajes de textos o llamadas telefónicas para asignar tareas en su lugar.

Por otro lado, pero no menos importante, por ningún motivo mande a un junior a copiar y pegar un pedazo de código desarrollado por un senior sin previa explicación. Esto solo generará más confusión y frustración, además de que no es una buena práctica.

Otro error muy común es olvidar que el código será leído por alguien más. Al principio, no le veía importancia al hecho de comentar mi código. Luego, me di cuenta de que los comentarios son la característica más poderosa de cualquier programa, porque pueden captar cuál era tu flujo de pensamiento en ese momento, al igual que hacer que tu código sea «más legible». Decidir qué es «más legible» puede ser subjetivo, pero es una buena práctica trabajar en ello en tu propio código y tratar de reconocerlo también en el de los demás.

Un buen consejo es hacer preguntas y nunca asumir nada. En ciertas ocasiones, no aclarar las dudas al principio de un proyecto o al inicio de una tarea pueden llevarte a sacar conclusiones erróneas.

Parte de las consecuencias de no hacer preguntas por temor a parecer un idiota es terminar construyendo algo erróneo, o que rompa el programa. He pasado horas construyendo cosas incorrectamente, e incluso construyendo cosas equivocadas porque hice suposiciones incorrectas.

En tu tiempo libre…

Si aún no has conseguido un trabajo, entonces mantente desarrollando software. Haz proyectos que te apasionen, construye tu portafolio, compártelo en GitHub, actualiza LinkedIn con tus programas. Mantenerte ocupado programando te abrirá más oportunidades laborales en el futuro y es un tiempo invertido en el desarrollo de tu carrera.

Conserva el hábito de la lectura y escritura. Hay innumerables cosas para aprender de los libros. No sólo de los libros técnicos sobre cómo desarrollar código, o lenguajes, sino también en libros de ética y de cómo ser un mejor profesional, como Clean Code del tío Bob.

Escribir también puede ser una excelente manera de mejorar tu carrera. Construir un blog o mantener un diario para registrar los retos enfrentados, las soluciones a problemas y buenas prácticas es siempre útil, tanto para ti como para los otros juniors.

¡Pero no todo es programación! No olvides hacer ejercicios para despejar tu mente, así como usar tu tiempo libre para viajar, o simplemente dedicarte a disfrutar de una buena novela o película.

Aquí culmina la reflexión de mis primeros meses como programadora junior a tiempo completo. Espero que este post te brinde una idea de hacia dónde dirigirás tu carrera. Déjame saber en los comentarios si tienes alguna pregunta, y… Happy coding!

Referencias

Code.org. (2004) Every student in every school should have the opportunity to learn computer science [Overview PDF]. Recuperado de https://code.org/files/Code.orgOverview.pdf

Leave a comment

Send a Comment