Cómo conseguir un trabajo de ingeniero de software en Google y otras empresas tecnológicas importantes

¡Hola a todos!

Ya he hablado sobre cómo obtuve personalmente un trabajo de ingeniero de software en Google en algunos videos en mi canal de YouTube de educación en programación llamado CS Dojo.

Sin embargo, mucha gente todavía me pregunta cómo conseguir un trabajo en Google como ingeniero de software. Entonces, aquí está mi artículo que explica la estrategia que usaría.

Puede utilizar la misma estrategia para obtener un trabajo de ingeniería de software no solo en Google, sino también en otras empresas de tecnología de primer nivel como Amazon, Microsoft y Facebook.

En este artículo, le mostraré el proceso de 6 pasos para conseguir un trabajo en una de estas empresas. En el camino, también voy a discutir:

  • Cómo aprender a codificar en primer lugar
  • Qué aprender después de aprender a codificar
  • Cómo conseguir tu primer trabajo de codificación o pasantía
  • Las mejores formas de postularse para trabajos de ingeniero de software
  • La mejor manera de prepararse para las entrevistas de programación
  • ¿Es importante obtener un título en informática?
  • ¿Es importante ir a una de las mejores universidades?

¡Bien, comencemos!

Paso 1: aprende a codificar

Esta es la calificación mínima absoluta que necesita para convertirse en ingeniero de software.

Para esto, le recomiendo que comience con un sitio web interactivo como Codecademy y freeCodeCamp. Puede aprender la mayoría de los fundamentos de la programación en estos sitios. También escuché que SoloLearn también es bueno.

Después de eso, usaría tutoriales en video para aprender temas más avanzados. Recomiendo sitios web como YouTube, Pluralsight, Lynda.com y Udemy para esto. En estos sitios web, debería poder encontrar tutoriales sobre temas como:

  • desarrollo web
  • Desarrollo móvil
  • Desarrollo de juegos

dependiendo de su interés.

Pero espera, ¿qué lenguaje de programación debo aprender primero?

Mi respuesta corta sería, elija JavaScript o Python, pero realmente depende de sus intereses. Tengo una respuesta más larga a esta pregunta en este video.

Paso 2: trabaja en algunos proyectos personales

Después de haber seguido algunos tutoriales de programación, debe crear algunos proyectos personales para practicar el uso de lo que ha aprendido.

Para ello, debe encontrar algo que le interese construir.

Por ejemplo, si le gusta la fotografía, tal vez pueda crear un sitio de portafolio para todas sus fotos. Si le gusta operar con acciones, tal vez pueda crear un sistema que analice los gráficos de acciones por usted. O, si le gusta resolver problemas, puede intentar competir en una competencia de codificación.

Cuando trabaje en un proyecto, primero cree todo lo que pueda usted mismo. Luego, si se queda atascado, obtenga ayuda de otras personas utilizando recursos en línea o fuera de línea. Por ejemplo, puede usar Stack Overflow para hacer preguntas técnicas específicas si se queda atascado en algo relacionado con la programación.

Paso 3: consigue tu primer trabajo de programación o pasantía

Una vez que haya creado algunos proyectos personales, debería poder obtener su primer trabajo de programación o pasantía. Con él, tendrá algo de experiencia antes de comenzar a entrevistar con las principales empresas de tecnología.

Es posible conseguir su primer trabajo en una de las principales empresas de tecnología, pero es mucho más fácil y más común conseguirlo primero en una empresa menos conocida.

Las mejores formas de postularse para trabajos de ingeniero de software

Solicitar empleo en línea no es necesariamente la mejor estrategia, porque eso es lo que hacen casi todos los demás.

En cambio, recomendaría usar LinkedIn y redes en persona para obtener su primer trabajo de programación.

En LinkedIn, primero busque reclutadores de la empresa en la que le interesa trabajar. Luego, pregúnteles si estaría calificado para el puesto que le interesa. También debe preguntarles cómo puede prepararse mejor si aún no está calificado.

Para establecer contactos en persona, recomendaría sitios web como Meetup para reunirse con ingenieros y reclutadores de empresas locales.

Espera, espera, pero eso no es todo.

El uso de LinkedIn y las redes en persona funcionan bien si se postula para empresas pequeñas y medianas. Sin embargo, he descubierto que estas estrategias son menos efectivas para empresas más populares como Google y Facebook.

Para estas grandes empresas, en cambio, recomiendo combinar las siguientes tres estrategias:

  1. Ferias profesionales y eventos de reclutamiento en universidades cercanas.
  2. Reciba recomendaciones de amigos que trabajan en una de estas empresas
  3. Simplemente aplique en línea.

La combinación de todas estas estrategias lo ayudará a aumentar las posibilidades de obtener una entrevista con una de estas empresas de tecnología líderes.

Por cierto, no estoy seguro de por qué LinkedIn es menos eficaz con estas grandes empresas, pero creo que podría deberse a que reciben demasiados mensajes. Básicamente, son demasiado populares allí: P

Paso 4: Aprenda las estructuras de datos y los algoritmos

Las principales empresas de tecnología como Google y Microsoft a menudo hacen preguntas sobre estructuras de datos y algoritmos en sus entrevistas. Por lo tanto, debe aprenderlos si aún no lo ha hecho.

Para aprender los conceptos básicos, recomendaría mi serie de videos sobre estructuras de datos y algoritmos. Todo está en YouTube. Hice estos videos para que sea lo más fácil posible conocer este tema.

Dado que solo hay 7 videos en esta serie, necesitará más material para aprender temas más avanzados.

Hay varias opciones populares para esto, que incluyen:

  • Estos cursos de Stanford en Coursera
  • Este curso del MIT en YouTube
  • El manual de diseño de algoritmos de Skiena (un libro)
  • Algoritmos (otro libro)

Deberías probar algunos de estos y continuar con el que más te guste.

Paso 5: Prepárese para codificar entrevistas

Codificar entrevistas en empresas como Google y Microsoft es difícil, pero es algo sencillo prepararse para ellas.

Una vez que tenga una comprensión sólida de las estructuras de datos y los algoritmos, recomendaría estos tres recursos para la práctica:

  • Leetcode: una plataforma interactiva para practicar la codificación de problemas de entrevistas.
  • Cracking the Coding Interview: un libro popular sobre entrevistas de codificación.
  • Problema de codificación diario: una lista de correo que le da un problema al día.

Después de practicar por su cuenta durante algunas semanas, debería empezar a hacer entrevistas simuladas.

Cómo hacer entrevistas simuladas

Básicamente, formen parejas con sus amigos y entréguense problemas con los recursos que mencioné anteriormente.

Luego, resuelva cada problema en papel o en un documento de Google. Explique su solución a su amigo.

Asegúrese de practicar tanto como entrevistador como como entrevistador para que pueda ver cómo es estar en el lugar del entrevistador.

Una vez que haga unas 20 entrevistas simuladas, debería estar listo para comenzar a entrevistar a las empresas para las que desea trabajar.

Paso 6: Aplicar, aplicar y volver a aplicar :)

Utilice las tres estrategias que mencioné anteriormente para aplicar a las principales empresas de tecnología:

  • eventos de reclutamiento / ferias profesionales
  • conseguir que tus amigos te recomienden
  • y postularse en línea.

Si no entra la primera vez, no se preocupe. De hecho, debe esperar algunos fracasos ya que ingresar a cualquiera de estas empresas es competitivo.

Para mí, personalmente, necesitaba postularme a Google 5 veces antes de conseguir mi trabajo de ingeniero de software allí.

¡Eso es! Aquí hay un resumen rápido:

  • Paso 1: aprende a codificar
  • Paso 2: trabaja en algunos proyectos personales
  • Paso 3: consigue tu primer trabajo de programación o pasantía
  • Paso 4: Aprenda las estructuras de datos y los algoritmos
  • Paso 5: Prepárese para codificar entrevistas
  • Paso 6: Aplicar, aplicar y volver a aplicar :)

Espera, ¿es realmente así de simple?

Sí lo es. Aún así, se necesita mucho tiempo y dedicación para seguir los 6 pasos.

Algunas notas más:

¿Necesito obtener un título en informática?

La respuesta corta es no. Sin embargo, obtener un título en ciencias de la computación ayuda mucho. Si toma un programa de CS sólido, se ocupa de la mayor parte de los pasos 1, 2, 3 y 4 (aprender a codificar, hacer proyectos personales, obtener su primer trabajo de programación o pasantía y aprender estructuras de datos y algoritmos).

Sin tener un título de CS, solo necesitará aprender más por su cuenta.

Además, tenga en cuenta que incluso con un título de informática, se necesita mucho trabajo para conseguir un trabajo de ingeniero de software en una de estas empresas.

¿Necesito ir a una de las mejores universidades como MIT, Stanford, Carnegie Mellon, etc.?

Una vez más, la respuesta corta es no. Probablemente ayude un poco, pero está lejos de ser necesario.

Laszlo Bock, ex vicepresidente senior de Operaciones de Personas en Google, también está de acuerdo.

Según el libro que escribió, Work Rules !, Google prefiere a los estudiantes con mejor desempeño en escuelas menos conocidas a los estudiantes con desempeño mediocre en las mejores escuelas como MIT.

Creo que esto tiene sentido, porque si eres inteligente y dedicado, no debería importar demasiado a qué escuela fuiste.

¿Necesito tener un GPA alto?

La respuesta corta es no, de nuevo.

Tener un GPA alto probablemente también ayude un poco a obtener una entrevista, pero probablemente sea mucho más importante tener una experiencia práctica sólida y proyectos interesantes para mostrar en su currículum.

De hecho, de acuerdo con Work Rules !, Google solía preocuparse mucho por los GPA de los candidatos en el pasado. Sin embargo, han descubierto que tener un GPA alto no está fuertemente correlacionado con tener un desempeño sólido en el lugar de trabajo a largo plazo. Después de ese hallazgo, dejaron de poner un énfasis tan fuerte en los GPA.

¿Qué necesito entonces?

Básicamente, todo lo que necesita son habilidades sólidas de codificación y resolución de problemas, una buena comprensión de los fundamentos de la informática y proyectos y experiencias interesantes para mostrar en su currículum.

Podrás construir todos estos si sigues los 6 pasos que expliqué anteriormente.

Espera, ¿cómo puedo escribir un buen currículum ?

Si lo desea, puede usar el currículum que solía aplicar a Google como plantilla.

  • Aquí está la versión en PDF.
  • Aquí está el de Word.
  • Aquí está el de Pages.

Ese es el currículum real que usé para conseguir un trabajo en Google como ingeniero de software. Realmente debería haber sido una página, así que diría que mi currículum es demasiado largo. Aún así, siéntase libre de usarlo como punto de partida.

Recursos adicionales para escribir un currículum :

  • Hay una buena descripción general sobre este tema en CareerCup aquí.
  • Mi amiga Zhia Hwa Chong, que es ingeniera de software en Twitter, tiene un buen artículo al respecto aquí.

De acuerdo, buena suerte y gracias por leer este artículo.

Si tiene alguna pregunta, hágamelo saber en un comentario a continuación o en Instagram o Twitter (@ykdojo en ambos).