¿Qué conjunto de habilidades y educación se requiere para seguir una carrera en Google?

Recientemente asistí a entrevistas en el sitio en Google y recibí una oferta para un puesto de Ingeniero de Software en Mountain View.

Estudié Ingeniería de Software en una universidad promedio en México. Me invitaron a participar en el proceso de contratación unos dos meses antes de terminar la escuela.

Si trabajar en Google es su objetivo, puedo darle los siguientes consejos:

1) Inscríbase en un programa de Ciencias de la Computación / Ingeniería de Software. Creo que la escuela no importa demasiado. Sin embargo, debe obtener los fundamentos en matemáticas, programación, algoritmos, bases de datos, etc.

2) Leer libros sobre lenguajes de programación, resolución de problemas y algoritmos.

3) Realizar programación competitiva: ACM ICPC, TopCoder, Codeforces, Facebook Hacker Cup, USACO, Google Code Jam.

Participar en concursos de programación te permitirá aprender mucho sobre tu idioma favorito y mantener tus habilidades para resolver problemas y algoritmos. Hará mucho análisis de complejidad de tiempo de esta manera también.

No necesitas ser el mejor que hay. Hazlo solo por diversión.

4) Participar en proyectos de desarrollo de software. Consigue un trabajo en tu último año escolar, trabaja con un profesor en algo que te parezca interesante, contribuye a proyectos de código abierto, haz un hackaton con tus amigos.

5) Lea Codificación de la entrevista de craqueo por Gayle Laakmann. Contiene mucha información sobre el tipo de entrevistas que realiza Google y muchos problemas de práctica que puede intentar.

Nota:

Hice los pasos del 1 al 4 sin tener en mente el objetivo de “trabajar en Google algún día”. La oportunidad acaba de tocar mi bandeja de entrada de correo electrónico y la aproveché. Por cierto, obtuvieron mi correo electrónico de mi registro de Google Code Jam.

Eres un junior en la escuela secundaria. Deberías pensar en términos de obtener una pasantía al final de la escuela secundaria. La pasantía puede ser en Google, Facebook, Twitter, LinkedIn o donde sea.

Para hacer eso, lea la publicación de Steve Y: Obtenga ese trabajo en Google

Entonces haz un plan. Debe cubrir tres elementos:

1. Planee leer y resolver la mayoría de los ejercicios en los siguientes libros:
Interfaz de programación de Linux
Comprender el kernel de Linux
Manual de diseño de algoritmos

2. Además, junto con el conocimiento técnico, debe demostrar la capacidad de hacer que las cosas sucedan. Planifica eso. Organizar una colección de caridad. Comience un proyecto de código abierto. Iniciar un negocio. Cualquier cosa como eso. Debe mostrar que agrega algo cuando está en una habitación. Pero no hagas enemigos. A ninguna de esas compañías le gusta un imbécil.

3. Debe atraer la atención de un reclutador. Eso es fácil. Peinan la red. Cualquier contribución a un proyecto importante de código abierto, o una cuenta activa de Github debería ser suficiente.

En las próximas entrevistas, lea Cracking the Coding Interview y algunos artículos de CS. Me vienen a la mente el papel GFS, el papel RAFT y el papel Chord.

No asumiría que se requiere un título universitario. Ciertamente podría ayudar, pero no soy fanático de acumular deudas por un valor cuestionable en el aprendizaje.

Si vas a la universidad, definitivamente trataría de obtener una pasantía (incluso si no es paga) en una empresa de tecnología cada año.

Podría tomarse un tiempo libre para trabajar en una aplicación o dos para la plataforma Android, para teléfonos inteligentes y tabletas. Especialmente intente hacer algo que use una API de Google o dos de alguna manera interesante. Realmente trate de pensar en algo útil que no esté allí hoy. El desarrollo de Android utiliza Java, por lo que coincide con uno de sus objetivos.

Acabo de hacer una búsqueda rápida y parece que Google ofrece varias posibilidades para ti, incluida una beca. Eso definitivamente sería un pie en la puerta.

¡Buena suerte!

Bueno, primero, no te obsesiones solo con esta compañía. Lo bueno es que te motiva, pero lo malo es que sería difícil recuperarte si no consigues el trabajo. Ahora para responder a sus preguntas.

1. Necesitas una licenciatura en CS y si no es de una escuela prestigiosa, probablemente también necesites un Máster. Sin el soltero, probablemente no obtendrá ni siquiera una entrevista telefónica e incluso si de alguna manera consigue un trabajo, probablemente lo despedirán muy rápido. La cultura en Google está desarrollando código bien diseñado en lugar de solo hacks. Incluso si eres la persona más inteligente del mundo, no puedes desarrollar un código bien diseñado sin la educación formal.

2. Definitivamente intente hacer una pasantía de verano en Google si su objetivo final es trabajar aquí.

2. Las entrevistas de Google tratan sobre habilidades para resolver problemas (algoritmos de lectura y estructuras de datos, en ese orden), no sobre el conocimiento de ningún lenguaje o plataforma de programación específico. A menos que las cosas cambien en el futuro, a los reclutadores y a los entrevistadores no les importará si conocen java, ruby, node.js o lo que sea la moda actual en las secuencias de comandos. C ++ es lo único que podría ayudar un poco, ya que da la impresión de profesionalismo. De todos modos, si desea optimizar sus posibilidades en Google, los algoritmos, las estructuras de datos y sus cursos de posgrado son el camino a seguir.