Cómo obtuve mi pasantía en ingeniería de software después de 4 meses de autoaprendizaje

Yo era un estudiante de primer año y comencé a estudiar programación por mi cuenta entre enero y febrero. En mayo, recibí mi oferta de pasantía en una empresa conocida.

Lo que puedo decir es que conseguir una pasantía en ingeniería de software es difícil hoy en día. Tienes que pasar por todo el proceso de solicitud, estudiar para entrevistas técnicas y ser engañado una y otra vez. Entiendo la lucha, ya que apliqué a más de 700 empresas para obtener mi oferta.

Sin embargo, es totalmente posible ingresar a la industria por autoestudio si eres riguroso y estudias de la manera correcta.

A continuación se muestra una guía paso a paso aproximada con los pasos importantes que he tomado y un tutorial de lo que hice en particular.

Paso 1: aprender los conceptos básicos

freeCodeCamp y CodeCademy son los mejores recursos si está comenzando, sin duda.

Ambos ofrecen explicaciones de la manera más simple posible y le enseñan los conceptos básicos absolutos de lo que debe saber para ingresar a la industria. Recomiendo comenzar con CodeCademy para aprender la sintaxis del idioma de su elección.

Nota: Es importante saber a qué roles desea postularse para poder estudiar de manera efectiva. Por ejemplo, si está buscando una pasantía de front-end, el curso de desarrollo web en freeCodeCamp será particularmente útil. Esta guía se centrará principalmente en el lado frontal.

Lo que hice:

Personalmente, siempre me ha interesado más trabajar en el front-end. Para un desarrollador web front-end, un conocimiento profundo de JavaScript, HTML y CSS es posiblemente lo más importante.

Por lo tanto, comencé mi primera semana de autoaprendizaje dedicando todo mi tiempo al excelente curso de Introducción a Javascript de CodeCademy. Es completamente gratis con explicaciones para principiantes. Para hacer mi estudio aún más efectivo, tomaba notas regularmente sobre lo que aprendí y lo que no entendí. Posteriormente revisaría esas notas para refrescarme la memoria, lo cual es crucial para no olvidar lo aprendido.

HTML y CSS son relativamente más fáciles de aprender. Pasé al curso completo de freeCodeCamp sobre diseño web. Es uno de los mejores recursos gratuitos disponibles. Si supera todo el curso, sabrá más que los conceptos básicos del desarrollo web.

Cuando sienta que conoce los conceptos básicos, le recomiendo que siga aprendiendo con el manual del desarrollador de Front-end. Proporciona una lista completa de recursos para estudiantes más avanzados, tanto de pago como gratuitos. Contiene miles de horas de lectura y le enseñará todos los trucos que un desarrollador web experto debe conocer.

Paso 2: creación de proyectos

Después de unas semanas, debería estar listo para comprometerse a crear un pequeño proyecto. Los proyectos son importantes en tu currículum cuando no tienes mucha experiencia. Una vez más, freeCodeCamp ofrece muy buenas ideas para proyectos. Empiece con algo pequeño.

Si tiene dificultades para encontrar ideas de proyectos, puede buscar en Google “100 ideas de proyectos en lenguaje X” y normalmente funciona. Además, eche un vistazo a otros repositorios de GitHub y aprenda de su código.

Cuando haya terminado, pruébelo y coloque el código fuente en Github. Esto es crucial, ya que es la única forma en que las empresas pueden validar sus habilidades sin experiencia laboral previa. Ponga código de buena calidad con documentación cuando pueda.

Lo que hice:

Cuando recibí mi oferta, había realizado de 4 a 5 proyectos. Comencé con una pequeña aplicación web de juegos de mecanografía bifurcada del GitHub de otro estudiante y aprendí mucho de su código, luego agregué el mío. Poco a poco fui avanzando hacia proyectos más complicados. Aquí hay una lista de todos los proyectos que hice antes de obtener mi pasantía, sus descripciones y las pilas que usé:

  1. Varios otros juegos pequeños como Minesweeper, todos hechos con React y diseñados con CSS.
  2. Un mapa para visualizar más de medio millón de puntos de datos de tráfico realizados con Javascript y Mapbox.
  3. Una aplicación React Native que funciona para permitir a los usuarios mostrar sus mejores imágenes, con el backend implementado en Node.js y Mongoose, alojado en Heroku.

Paso 3: Solicitud de empleo

Tengo la mayor experiencia en esta área ya que he postulado a muchos trabajos. Los mejores consejos que tengo, con respecto al proceso de búsqueda de trabajo y entrevista, son:

  1. LinkedIn, Glassdoor y Indeed Easy Apply no son tus amigos. Con ese tipo de publicaciones, el reclutador recibe tantas aplicaciones que generalmente usan un ATS (Application Tracking System) para filtrar todos los currículums. Si no tiene ninguna experiencia previa o proyectos impresionantes, las posibilidades de que pase el filtro son muy escasas.
  2. Una carta de presentación es un arma de doble filo. Cuando se hace bien, realmente puede diferenciarte del resto de los candidatos. Sin embargo, cuando se hace mal, puede empeorar su situación. Mi consejo si tuviera que escribir uno es adaptarlo, adaptarlo, adaptarlo. Dirija su carta de presentación específicamente a la empresa que está solicitando. NO envíe la misma carta de presentación genérica a todas las empresas, ya que los reclutadores saben que ya ha enviado 100 de ellas. Por último, asegúrese de que no haya errores gramaticales. Un error tipográfico es suficiente para que el reclutador lo rechace.
  3. Tuve el mayor éxito al presentar mi solicitud directamente en el sitio web de la empresa o mediante el envío de correos electrónicos a los reclutadores (o incluso al director general si la empresa es bastante pequeña). Si la empresa no tiene un correo electrónico público, generalmente puede adivinarlo, ya que casi siempre está en el formulario hello at companyname dot com. Tienen muchas más posibilidades de ver su currículum que si lo envía a través de Indeed / Glassdoor. Puede tener una plantilla y cambiar ligeramente la redacción para diferentes empresas.
  4. Tener la piel gruesa. Las empresas te rechazan por todo tipo de razones aleatorias y los reclutadores te engañan todo el tiempo. Es normal. Si tiene un currículum menos atractivo, tiene menos posibilidades de obtener una entrevista. Sigue aplicando y no te rindas. Nunca termina hasta que dejas de intentarlo.

Paso 4: entrevista

Cuando finalmente obtenga esa dulce entrevista, asegúrese de prepararse para ella. Existen numerosos recursos en línea que le enseñan cómo realizar una entrevista técnica. Si aún no lo ha leído, Cracking the Coding Interview es una muy buena lectura.

Las entrevistas técnicas son muy estresantes. No hay solución para ellos: tienes que resolver preguntas sobre algoritmos. Leetcode ofrece toneladas de buenas preguntas para practicar.

Sin embargo, dado que son tan conocidos, es muy poco probable que obtenga exactamente la misma pregunta que practicó en una entrevista. El entrevistador generalmente tiene un banco de preguntas aleatorias que no se publican en línea. Aún así, la idea básica sigue siendo la misma. Por ejemplo, siempre es bueno conocer a fondo sus estructuras de datos y Big O.

Otra cosa a tener en cuenta: las empresas con las que entrevisté a menudo mencionaron mis proyectos y me hicieron preguntas técnicas sobre la implementación. Es su forma de probar si ha mentido en sus proyectos, así que prepárese para ello.

Lo que hice :

Para empezar: está bien apestar en las entrevistas. Eché a perder completamente mis primeros. Es vergonzoso recordar.

Me di cuenta de que no estaba lo suficientemente preparado para las cuestiones técnicas. Empecé a hacer Leetcode 2-3 horas al día. Lo más importante es no dedicar demasiado tiempo a un solo problema. No tienes tiempo ilimitado en tu entrevista. En su lugar, ponga un cronómetro, digamos 10 minutos para una pregunta fácil y 20 minutos para una pregunta mediana (la mayoría de las veces no obtendrá preguntas difíciles de Leetcode en sus entrevistas si está solicitando un puesto de nivel de entrada o una pasantía).

Si no puede resolverlo a tiempo, está completamente bien. Mire la solución y trate de entenderla. Marque la pregunta que no puede resolver y vuelva a intentarlo en una semana.

Dado que las entrevistas también ponen a prueba sus habilidades de comunicación, puede prepararse diciendo sus pensamientos en voz alta cuando practique preguntas. Créame, puede sonar extraño al principio, pero hace una gran diferencia en las entrevistas cuando está acostumbrado a hablar.

Recursos: dónde encontrar trabajos de nivel de entrada y pasantías

Lo que solía encontrar pasantías (además de Glassdoor, Indeed y Linkedin) incluyen Breakout List y AngelList.

Mis 2 centavos : Me di cuenta de lo terrible que era intentar encontrar vacantes para pasantías. No existe una manera fácil y rápida de encontrar una lista completa de empresas con sus listas de pasantías. La comunidad de freeCodeCamp es increíble y me ayudó mucho durante mi trabajo, y me gustaría contribuir.

Se me ocurrió esta aplicación después de mi pasantía como mi proyecto paralelo, para compilar una lista de empresas y sus pasantías / trabajos de nivel de entrada, que se puede filtrar por ubicación, etiquetas, período escolar, etc. Lo explicaré en la siguiente sección.

Conclusión

Encontrar su primer trabajo / pasantía puede ser un proceso largo, frustrante y tedioso. Sin embargo, la experiencia que obtiene del lugar de trabajo real hace que valga la pena.

Aquí hay una comparación del proyecto que hice después de mi pasantía y uno de mis primeros proyectos.

Una gran diferencia, ¿verdad?

Por eso creo que el tiempo que pasé durante mi pasantía valió la pena. Nunca hubiera podido realizar mi último proyecto sin toda la orientación y experiencia que obtuve en mi pasantía. El proyecto es una plataforma y una bolsa de trabajo para descubrir pasantías y puestos de nivel de entrada para estudiantes, desarrolladores autodidactas y nuevos graduados. Puedes verlo aquí.

Me esfuerzo por mejorar y cualquier comentario es bienvenido. Me gustaría escribir mi próximo artículo como una guía paso a paso sobre cómo diseñé y estructuré la aplicación, así que avíseme si está interesado. También me encantaría ayudar a otros que recién están comenzando, ya que entiendo la lucha. Si tiene alguna pregunta, no dude en enviarme un mensaje (puede resaltar esto y hacer clic en el icono de mensaje en la ventana emergente).

¡Buena suerte a todos!