Si eres un programador de Google que fue contratado directamente de la universidad, ¿qué obtuviste para conseguir tu trabajo?

Soy uno de esos programadores. Diría que las cosas que me trajeron aquí son:

  1. Buenas calificaciones : Sí, pude llamar la atención debido a las buenas calificaciones. ¡Valió la pena mirar mi currículum!
  2. Conciencia : muchos buenos programadores que conozco, ni siquiera conocen las oportunidades profesionales disponibles. Toman lo que obtienen. No intentan obtener mejores ofertas. Entonces la conciencia me ayudó mucho. Me entrevisté con varias organizaciones que me prepararon para entrevistas más importantes.
  3. Contacto con personas mayores – Tener una buena relación con todos los grandes programadores de mi grupo de personas mayores me ayudó mucho. Constantemente me guiaron para mejorar mis habilidades. Algunas personas también obtienen referencias de empleados debido a su conexión con ex alumnos que trabajan en Google. Las entrevistas simuladas con personas mayores me ayudaron mucho. Además, después de escuchar su historia, ¡me aseguré de no repetir el error que cometieron *! ¡También hay algo que aprender de aquellos que fallan!
  4. Trabajo duro constante : sí. El trabajo duro y la actitud de aprendizaje rápido junto con la positividad y la confianza me ayudaron durante las entrevistas. La confianza durante las entrevistas puede crear un buen ambiente entre usted y el entrevistador. Crea esa primera impresión necesaria. Después de todo, se trata de esos 45 a 60 minutos. Me preparé duro para mis entrevistas. Lea muchas preguntas de muestra.
  5. Programación competitiva : creo que mi experiencia con la programación competitiva me ayudó a comprender las estructuras de datos y los algoritmos. No soy muy bueno en programación competitiva. Solo lo hice durante unos meses. Pero durante esos meses hubo una fuerte curva de aprendizaje. Realmente gané confianza en mis propias habilidades de codificación. Después de una programación competitiva, podría reducir fácilmente los problemas a otros más simples e implementarlos.
  6. Contribuciones de código abierto : trabajar con bases de código grandes y trabajar en colaboración con otros programadores mejorará sus habilidades de ingeniería de software. La mayoría de las veces no construirás cosas desde cero y, por lo tanto, debes saber cómo entender el código escrito por otros programadores y editarlo. Debe saber cómo reutilizar códigos tanto como sea posible. Y las contribuciones de código abierto realmente mejoraron mi estilo de codificación en general. Aprendí a escribir códigos legibles sin pérdidas de memoria o falta de mayúsculas y minúsculas.

Editar:
* Gracias a Jay Krishna por pedirme que explique esto.
Mientras me preparaba para mis entrevistas, me puse en contacto con algunas personas que se entrevistaron con Google anteriormente. Me dijeron qué salió mal y qué salió bien con sus entrevistas. La lista general de hacer y no hacer. Por ejemplo, una persona mayor en particular me hizo una pregunta durante una entrevista simulada (repitió la misma pregunta que encontró durante su entrevista). Fue muy fácil encontrar la solución más óptima. Me sorprendió cuando me pidió que implementara una pregunta tan fácil. Pero luego señaló que mi implementación tenía problemas de alias (cometió el mismo error). Me di cuenta de que el simple manejo del puntero no era tan simple. Más adelante en mis entrevistas me pidieron que completara una función que aceptara múltiples punteros como argumentos. Rápidamente recordé lo que mi superior me enseñó y me ocupé de ello. Mi entrevistador me preguntó la razón de tal ronda sobre el enfoque y pude explicarle el problema de alias. Probablemente no lo pensó él mismo y quedó bastante impresionado con la forma en que me ocupé de los casos de esquina y los efectos secundarios de la función. Entonces, sí, aprender de la experiencia de otros ayuda mucho.

Los investigadores científicos de Google trabajan en estrecha colaboración con los ingenieros de software para descubrir, inventar y construir a la mayor escala. Las ideas pueden provenir de proyectos internos, así como de colaboraciones con investigadores de universidades e institutos técnicos asociados de todo el mundo. Desde la creación de experimentos e implementaciones de prototipos hasta el diseño de nuevos algoritmos de aprendizaje, los investigadores científicos trabajan en desafíos en la percepción de máquinas, la minería de datos, el aprendizaje automático y la comprensión del lenguaje natural. Como investigador científico de Google, continuará contribuyendo activamente a la comunidad de investigación en general colaborando con investigadores académicos y publicando artículos.

Los investigadores del equipo de Google Brain tienen la libertad de establecer su agenda de investigación y participar tanto o tan poco como lo deseen con los productos existentes, eligiendo entre hacer una investigación más básica, metodológica o más aplicada según sea necesario para producir los resultados más convincentes. Debido a que muchos de los avances que desarrollamos hoy pueden tomar años para ser útiles, el equipo en su conjunto mantiene una cartera de proyectos en todo este espectro. Nuestra filosofía es que lograr avances sustanciales en aplicaciones difíciles puede ayudar a impulsar y agudizar las preguntas de investigación que estudiamos, y a su vez, los avances científicos pueden generar aplicaciones completamente nuevas.

Google está buscando el rol de Ingeniero de Software como “Investigador Científico Google Brain”. Experiencia en comprensión del lenguaje natural, visión por computadora, aprendizaje automático, bases algorítmicas de optimización, minería de datos o programación de aprendizaje automático (inteligencia artificial) Experiencia en uno o más de los siguientes: C, C ++, Python Contribuciones a la investigación …