Los errores que comet√≠ como programadora junior ūüĎ©‚ÄćūüíĽ

¬°Comparte en tus redes sociales!

By Cleyra Uzc√°tegui

Este artículo fue publicado anteriormente en www.mujerlilith.com

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.

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

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.

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 Reply

Your email address will not be published. Required fields are marked *

Síguenos en Twitter