Mi Internship como Software Developer

thaisDev
14 min readSep 15, 2021

--

Antes de meternos de lleno con mi vida dejemos claros algunos conceptos :

¿Qué es un internship?

Un internship (beca de prácticas), es un programa de ayuda para formar a personas que necesiten ganar experiencia laboral, como estudiantes, recién graduados, etc. Lo que llamaríamos una beca.

El objetivo principal de un internship debe ser el del aprendizaje ya que lo que se pretende conseguir es la adaptación al mercado laboral.

¿Cómo se accede?

Muchas empresas tienen convenios de prácticas ó internships con centros educativos, incluso, se puede solicitar un internship directamente con la empresa si así se desea. En mi caso conseguí mi internship a través de una entrevista de trabajo.

¿Todos los internships son iguales?

No, porque depende en gran medida del plan de prácticas que tenga esa empresa, en algunas te pueden proponer iniciar un proyecto aparte alejado de sus proyectos o incluso trabajar directamente en un proyecto que tengan e ir haciendo tareas.

De hecho, en la misma empresa pueden haber internships diferentes ya que aunque se tenga planeado uno este puede verse modificado en base a las habilidades del intern (becario). Por ejemplo si viene una persona que poco a poco se ve que está superando las expectativas el plan de prácticas podría cambiar para adaptarse a ella proponiéndole objetivos cada vez más difíciles siempre dentro del marco educativo.

¿En qué tipo de empresa hacer un internship?

Esto va muy arraigado con lo que busques, si prefieres consultoría o algo tipo startup, en mi caso, comencé en una startup porque buscaba algo relacionado con producto, en estos entornos aprendes muy rápido en poco tiempo pero también requiere mucha disciplina y adaptarte rápidamente a los cambios ya que es un entorno muy dinámico y en constante evolución donde los retos estarán a la orden del día.

¿En un internship cobro?

Deberías, porque normalmente son becas en las cuales las empresas se apoyan para hacer posibles estos internships, así que sí, de hecho haces un trabajo como otro cualquiera, eso sí el salario a percibir está muy por debajo del sueldo de por ejemplo un junior developer.

Una vez explicado todo esto, pasemos a la chicha del asunto.

Mi experiencia como intern

He estructurado mi experiencia en 3 etapas que para mi han sido claves así como todas las lecciones aprendidas a lo largo de estos 6 meses.

Etapa 1 : Onboarding

¿Qué es el Onboarding en una empresa?

El onboarding, es un proceso que busca facilitar la incorporación y adaptación de nuevos miembros, lo que se pretende conseguir es que las nuevas incoporaciones se sientan acompañadas y guiadas durante las primeras semanas para que conozcan la cultura y valores de la empresa, así como las labores que desempeñará en su nuevo puesto y sus nuevos compañeros de trabajo.

Mi Onboarding

Una chica intentando pasar a duras penas entre paneles con escritos como “questions for the team” y “stop everything”

En mi primer día como intern no cabía en mi de la emoción y estaba con los nervios a flor de piel, por fin, una empresa había apostado por mi y era el momento de demostrar de lo que era capaz.

Ese día estuvo lleno de reuniones en las cuales me informaban sobre la cultura de la empresa, sus valores, sus departamentos y algunos de sus empleados, esto mayormente enfocado hacia el departamento y equipo en el que iba a trabajar.

Me asignaron a un chico (se conocen como buddy) para acompañarme durante el proceso de incorporación , él, me fue enseñando los repositorios, los procesos, herramientas, etc, que tenía que ir conociendo, desde preparar el entorno para programar hasta el despliegue en producción ( lo que verán los usuarios)

Esta etapa fue un poco caótica ya que tenía muchos frentes de información abiertos y a veces era imposible atenderlos todos, pero gracias al chico que me estuvo ayudando, poco a poco pude poner orden.

En mi opinión, esta etapa es clave para que alguien decida si la empresa vale la pena o no, se tenga o no experiencia son semanas que requieren documentar muchísimo y no debería ser un privilegio tener a alguien que te guíe a lo largo de esta dura etapa, ya que de no haber sido por el chico que me ayudaba hubiese estado francamente perdida y frustrada.

Decidí crear una documentación propia no solo porque me ayudaría durante el onboarding a interiozar muchos conceptos y procesos nuevos sino porque me ayudaría a lo largo de estos 6 meses; usé a Notion para ayudarme en esta tarea (si no te gusta puedes usar otros como Bootsnote o Typora) y a continuación te voy a poner ejemplos de cómo estructuré mi internship :

Es una página de notion recojo en cada columna lo describo más abajo

Setup : Configuración de PC, terminal, Editor de Código, etc.

Guides & Processes 📖 : Aquí puse todo lo relacionado con mi día a día, desde el momento en el que cogía una tarea hasta el despliegue en producción ( lo que verán los clientes).

Codebase 💻 : Aquí irá el stack tecnológico de la empresa, a decir verdad no lo usé mucho pero pensé que sería buena idea dividir en partes los proyectos en los que trabajaba junto con las tecnologías que empleaban para entender el flujo que seguían y la forma en la que estas se conectaban y funcionaban.

Puse los code reviews ahí porque … no sé por qué a decir verdad.

Personal Growth 🚀 : Aquí estuvo la chichita de mi internship, por un lado “Training” abarcaba todos los cursos que hacía así como tutoriales, por otro lado en “StackOverflow” agrupaba todos y cada uno de los fallos o problemas con los que me iba encontrando.

Está dividido mediante columnas el Software Architecture, DevOPS, Frontend, Growth y Notebook donde en cada una de ellas recojo el stack de la empresa como kubernetes y react en sus respectivas columnas
Así es como iba estructurando por temas las formaciones que iba haciendo

Os pongo un ejemplo de cómo tengo estructurado mi StackOverflow personal con Laravel (PHP Framework) :

Tabla donde he ido recogiendo todos los problemas que he tenido acompañado de etiquetas tales como Database, Eloquent y enlaces a páginas de referencia

Notebook 📒 : Aquí decidí poner todas aquellas terminologías o conceptos que desconocía acompañados de sus descripciones, fuese sobre tecnología, negocio, producto, arte o danza, lo tenía agrupito ahí listo para consultar.

El formato con el que hacía esta notebook era ir agrupando cada tema por columnas de este estilo :

En una columna ponía Producto, en otra Tech como ves, en otra Diseño, etc…
En una columna ponía Producto, en otra Tech, en otra Diseño, etc…

También tenía un apartado llamado People donde iba recogiendo en una tabla a las personas con las que normalmente trabajaba o a las que necesitaría recurrir para consultar ciertos temas, en esta tabla ponía sus nombres (obviamente), el departamento al que pertenecían, su rol y funciones.

Para dar por finalizada esta parte me gustaría dejar algunas reflexiones durante lo vivido en esta dura etapa :

El onboarding es también la carta de presentación de una empresa y sus empleados, es un ente vivo que debería cambiar de la misma forma en la que cambia la empresa, cuidarlo nos aseguraría la permanencia de nuevas incoporaciones y evitaría sus fugas, ya que si una persona es inexperimentada y no se ocupa nadie de guiarla causaremos frustración y ansiedad, si estás leyendo esto y te sientes representada, no abandones, es solo una experiencia de muchas, tu carrera profesional no acaba aquí, si te gusta, continua. Por el contrario si ignoramos a una persona experimentada lo que conseguiremos es que se vaya a la primera de cambio sin apenas nada que perder y si nos solidarizamos con la gente que hace el recruiting esto no les hará ni pizca de gracia.

Etapa 2 : Formación

Bebé mirando rápidamente y con entusiasmo un librito

Antes de meterme de lleno a realizar tareas pasé por una fase de formación, en la cual, estuve haciendo cursos y tutoriales relacionados con la Arquitectura de Software, patrones, frameworks, etc que necesitaba para entender cómo estaba construido el proyecto en el que iba a trabajar.

No voy a mentir, esta etapa fue dura, de hecho me recordó todo lo que sufrí cuando empecé a programar, pues entender una simple función era sustituido ahora por siglas y procesos extraños de arquitecturas complejas.

Cierto es, que llegué a un momento de hastío al estar constatemente haciendo cursos, quería recoger todo ese nuevo conocimiento de alguna forma y qué mejor forma de asimilarlo que en un toy project.

Me propuse crear una especie de biblioteca de películas (llámalo videoclub sí) y esto me ayudó MUCHÍSIMO a sintetizar toda esa vorágine de términos y funcionalidad extraña, debo decir que funcionaba regulinchi eso sí.

Etapa 3 : El verdadero Internship

Un debutante saliendo de los vestuarios alzando una bandera dando saltitos

Llegó por fin mi debut, al principio cogía tareas con mi mentor para ir entendiendo todo poco a poco, más tarde empecé a coger tareas sola, aquí es donde yo aprendí de verdad, lejos de toy projects y cursos, por fin veía problemas reales de la vida real, por fin podía aportar valor de verdad a un producto, estaba pletórica en esta etapa porque veía el impacto de mi trabajo.

Admito que no fue nada fácil enfrentarme a según qué tareas, había de todo, de fácil resolución, las que aparentemente eran fáciles pero cuando te ponías resultaba que no y las que parecían ser el boss final pero que realmente no tenían mayor complejidad.

La forma que tuve de afrontar la ejecución de las tareas era :

  1. Fase de Investigación : Ver qué se pretende conseguir con esta tarea, qué impacto tendrá, consultar a las personas involucradas para darme más contexto, etc.
  2. Fase de Búsqueda : Dentro del proyecto, consultar qué archivos son los que realizan funciones o comportamiento similares de lo que pretendo hacer, ver qué flujo se lleva a cabo mediante llamadas a funciones o métodos, básicamente este proceso se resume en leer código.
  3. Fase de Experimentación : Probar lo que funciona ahora, cómo se comporta, ver los archivos de la vista para verlo en el navegador si se pudiese, cambiar valores de variables para ver qué errores o problemas pueden darse, etc.

En esta etapa hubieron emociones de todo tipo tales como frustraciones, agobios y ansiedad pero también otras cosas buenas como motivación, ganas de superación y sobretodo mucho mucho muchísisisisisisisisismo APRENDIZAJE no solo como desarrolladora sino a nivel personal.

Lecciones Aprendidas

A lo largo de mi internship tuve un seguimiento por parte de mi manager para saber cómo estaba siendo mi evolución, él me daba su feedback y me transmitía el de mis compañeros, esto me sirvió para darme cuenta de que tenía que cambiar ciertas actitudes si quería crecer como profesional :

Hacer preguntas aunque tengas miedo

Todo el mundo tiene miedo en cierto grado cuando comienza en un sitio, no es fácil quitarlo de primeras pero poco a poco se va generando confianza con la que esta barrera se irá rompiendo, en mi caso, vine con vicios adquiridos de malas experiencias a la hora de preguntar, a raíz de esto opté por la solución de buscarme la vida antes que preguntar, pero esto repercutió negativamente en mi internship, sobretodo al principio, por lo que tanto mi manager como mis compañeros me tuvieron que dar un toque de atención al respecto.

No es nada fácil deshacerte de malas costumbres de la noche a la mañana, pero decidí empezar a ponerle remedio, si bien es cierto que no todo el mundo es muy dado a que le pregunten, fui poco a poco preguntando a todo aquel al que veía e iba viendo la forma en la que me respondían, normalmente era amistosa así que esto me hizo más fácil el progreso de quitar este vicio.

Si estás en un entorno hostil donde cada pregunta es ignorada o respondida en tono de burla, es normal que al final optes por hacer lo que hice yo de buscarte la vida, pero de cara a otro trabajo, ten en cuenta lo que me ocurrió a mi, no todo el mundo es igual y en este sector, preguntar está a la orden del día. Da igual que sean preguntas tontas o no, mejor quedarte con una respuesta que con una duda, por estas se van acumulando y acaban resultando una inmensa bola de nieve de la que va a costar deshacerse.

Para acabar este apartado, os dejo con algunas frases que me dedicaron mis compañeros :

“Prefiero a alguien en mi equipo que me asalte a dudas y preguntas constantes que a otra persona que prefiere quedarse callada”.

“Cuestiónate todo, si ves algo mal, dilo, si tienes propuestas de mejora, dilas, la visión externa de alguien que aún no conoce todo el proyecto nos es útil para descubrir qué carencias o problemas no hemos visto los que estamos dentro.”

Afrontar los retos

Debo admitir que esto me costó horrores asimilarlo y es curioso porque como programadora, mi función principal es la de resolver problemas, pero a la hora del reparto de tareas me sentía terriblemente insegura en aceptar según qué tareas, siempre leía las descripciones para ver cuáles se adecuaban más a mis capacidades y era aquellas a que escogía.

Seguramente te habrá pasado que lees el nombre de la tarea y dices “uf, no sé ni por dónde empezar”, a mi esto me pasó casi constantemente, me notaba perdida con cada tarea que escogía, hubieron varias que disfruté haciendo porque por fin pude ver el flujo completo que se hacía en algunas funciones.

Sobretodo en entornos startup, los retos son el pan de cada día

Poco a poco fui entendiendo que la única manera de mejorar como profesional eran mediante retos que pongan a prueba tus capacidades, por eso siempre se dice que no nos quedemos en los tutoriales o cursos y hagamos proyectos, porque ese es el verdadero reto, el construir algo desde 0 sin una guía.

Otra lección que aprendí es a la hora de “romper cosas”, rara es la vez que todo salga a la primera y sin errores, es cierto que si se rompe algo, se arregla, sea fácil o difícil y con estos pequeños cabroncetes son con los que uno realmente aprende, créeme que recorrerse medio internet y preguntar a 40 compañeros buscando una salvación divina tiene recompensa, de hecho son como las multas, siempre aparecen y en el peor momento pero tú juegas con ventaja porque te peleaste duramente y ganaste la batalla… o no y ha vuelto para atormentarte.

La importancia del mentoring

yoda en clone wars enseñando a pequeños padawans a usar el sable láser

Este punto es de los más claves a la hora de hacer un internship e incluso de unirte a una empresa como junior, tener a una persona a tu lado que te dedique tiempo, esfuerzo y paciencia para mi son las claves para crecer más rápido o más lento dentro de una organización e incluso como profesional. En mi caso tuve a varios compañeros que me iban ayudando y explicando las tareas y conceptos en las que tenía dudas.

Pienso que mentorizar a alguien es muy enriquecedor no solo porque pone a prueba tu base de conocimiento sino porque ver cómo va mejorando alguien al que le has enseñado todo lo que sabes es un orgullo.

Invierte en los profesionales que quieres tener en tu empresa, los interns y juniors de hoy serán los seniors de mañana

Pero ser mentor no es una tarea fácil, requiere de mucho esfuerzo y tiempo para dedicar a la persona a la que se vaya a mentorizar, es por este motivo que las empresas deben aliviar de responsabilidades a aquellas personas que se vayan a encargar del mentoring, no tiene sentido incoporar a interns o a juniors si no se les va a formar (formar a alguien no es mirar cursos y tutoriales). De hecho, me parece una buena idea que el mentoring pase por cada miembro del equipo, es decir, con cada nueva incorporación se escogerá al menos a alguien que se dedique expresamente a formar a los nuevos.

Mostrar código es la única manera de progresar

Debo reconocer que el miedo a que otros viesen mi código me viene desde la época en la que estudiaba, pero afortunadamente poco a poco se ha ido desvaneciendo ya que he ido adquiriendo confianza y cada vez estoy más orgullosa del progreso, de hecho, la mayoría de pair programming en los que he participado no se me han hecho un mundo y hasta los he disfrutado!. Esto es algo que sabía desde un primer momento que debía quitarme ya que como programadora esto es un aspecto fundamental del día a día, no solo en pair programming sino en pull request, etc.

Pero no voy a decir que ha sido un camino de rosas, de hecho, sigo en proceso de dominarlo por completo, a lo largo de estos 6 meses he ido exponiéndome día a día a ese miedo frente a mis compañeros, analizando y revisando con ellos mi código, intentado evitar los pensamientos sobre si creerán que soy tonta por cómo programo o que soy un fraude, porque lo piensen o no, lo que importa al final es que esto no me frene a seguir mejorando.

Mis compañeros también tuvieron mucho que ver en este proceso de superación del miedo, a medida que iba subiendo Pull Request iban haciéndome preguntas sobre por qué hice una cosa y no otra, o por qué había puesto x cosa en el código, esto me me encantaba porque me hacía volver al código y replantearme otras formas de hacerlo e incluso me motivaba a seguir iterando.

Nadie nace sabiendo y exponerse a que los demás vean lo que has hecho y te den su punto de vista, ha sido una de las mejores lecciones que me llevo aprendidas de este internship, mis compañeros en cada Pull Request

Aprender a comunicar

La comunicación es una habilidad más valiosa de lo que imaginé, aprender a comunicar lo que se quiere hacer, cómo se debe hacer y qué problemas pueden haber no es nada fácil, atrás quedaron los enunciados donde te explicaban con pelos y señales qué debías hacer, pues ahora los enunciados son de boquilla y a veces confusos, muuuy confusos y tienes que preguntar varias veces qué se pretende hacer porque en tu mente transformar esa larga lista de requerimientos que te piden a código se sigue tornando difuso. Pues no solo haz de averiguar lo que quieren (que esto también tiene su miga) sino decirles que o bien eso no se puede hacer o darle la vuelta a la idea y hay que saber comunicarlo bien para que se entienda correctamente. Aunque suene absurdo, cuando quería que algo nos quedara claro a ambas partes lo repetía constantemente, “Quieres hacer x porque z se necesita para y no?”, cuando esa persona me respondía sí varias veces, lo apuntaba en mi libreta.

Aprendí que las libretas son mis mejores amigas a la hora de recabar información sobre lo que se pretende llevar a cabo, pues plasmar lo que me decían en dibujos y escribir al lado la lista de cosas a hacer me ayudó muchísimo a interiorizar las tareas.

Próximos pasos

Este internship me ha puesto a prueba en todos los sentidos, pues me ha permitido conocerme mejor, me ha descubierto capacidades que no sabía que tenía y a mejorar tantas otras, me ha enseñado sobretodo a trabajar en equipo, en saber que me puedo apoyar en mis compañeros ante cualquier dificultad y asimismo poder ayudarles en lo que haga falta, me ha enfrentado a problemas que antes veía un mundo y ahora desgrano en pequeñas tareas a resolver para que se haga más fácil de resolver. Estos 6 meses han sido toda una dura experiencia que me llevo orgullosa bajo el brazo porque sobretodo ha dado pie a que esté más motivada a seguir aprendiendo, a mejorar side projects antiguos y a crear otros nuevos.

Este ha sido el punto de partida de mi carrera profesional y estoy deseando ver qué nuevos retos y proyectos me esperan, porque lo que tengo claro es que quiero seguir siendo programadora.

--

--

thaisDev

Junior Developer #Laravel #Node #MySQL #React (react y yo estamos pasito a pasito) , me gusta compartir todo lo que aprendo!