Preparación de entrevistas de Google para ingenieros de software: una guía completa

Google… El principal empleador atractivo y una de las empresas mejor pagadas del mundo. Google abre una puerta para programadores excepcionales que no se limitan a resolver problemas que ya conocen, sino que también deben tener habilidades para resolver problemas que no han encontrado antes. Si usted es uno de ellos que tiene esta habilidad y sueña con conseguir un puesto de trabajo de ingeniero de software en Google, entonces debe seguir una estrategia y debe comprender el proceso completo que esta empresa está buscando para la contratación de programadores de primer nivel. 

Google-Interview-Preparation

Los procedimientos de contratación en Google para la función de ingeniería de software son similares a los de otras empresas, por lo que discutiremos la habilidad de programación que debe tener y también discutiremos algunos otros consejos y detalles que debe tener en cuenta al postularse en Google. 

Puntos importantes

  • Google contrata solo a programadores excepcionales, por lo que no hay duda de que la habilidad de codificación y resolución de problemas (estructuras de datos y algoritmos del área de enfoque) es una habilidad imprescindible en Google para el rol de ingeniería de software, pero debe tener en cuenta que a Google también le importa mucho. sobre Googlyness que cubre la pasión por la tecnología, la curiosidad, la ética, la amabilidad, la buena ciudadanía y más.
  • El nivel de dificultad de la entrevista depende del nivel de la función de ingeniería de software que esté solicitando en Google. Ingeniero de software o SWE-II (Nivel 3) es un ingeniero de software de tiempo completo de nivel de entrada. En este nivel, hay 4 o 5 rondas en el sitio y las personas en la cúspide de L3 y L4 (abajo), pueden lanzar una pregunta de diseño, pero generalmente no. SWE-III (Nivel 4) es para candidatos con BS + 8 años, MS + 5 años, Ph.D. + 2 años. Aproximadamente. En este nivel, espere 4 o 5 rondas presenciales y al menos una pregunta de diseño de sistemas.
  • Verifique la Lista de habilidades que Google in Education Team ha lanzado y que esperan de un ingeniero potencial.
  • Todos los ingenieros (en todos los niveles) colaboran en la base de código de Google, con un proceso de revisión de código eficiente y esa es la razón por la que Google desea ver un código claro, eficiente y de muy alta calidad sin errores tipográficos.
  • Los entrevistadores están capacitados para no reaccionar a sus respuestas, así que no espere una respuesta de sí o no de ellos, si va en la dirección correcta o no. Esto apesta, pero es una forma muy efectiva de evaluar a un candidato, así que prepárate para ver caras frías como la piedra.

Antes de discutir todos los detalles, le recomendamos encarecidamente que eche un vistazo a Cómo contratamos en la página de empleo de Google y se familiarice con el proceso de entrevista. Para la entrevista de ingeniería de software de Google, puede preferir cualquier lenguaje de programación con el que se sienta cómodo, pero debe conocer muy bien su lenguaje de programación. Sería genial si la elección es C++ o Java . Analicemos todas las rondas una por una, desde recibir la llamada para las entrevistas hasta descifrar la entrevista en detalle. 

Hacerse notar por Google

Google recibe más de dos millones de currículums, pero solo contrata alrededor de 4000 empleados cada año , por lo que no es fácil llamar la atención de los reclutadores para entrevistas telefónicas. Tome las referencias a través de algunas conexiones que trabajan en estas empresas o puede tomar la ayuda de LinkedIn y las plataformas de codificación en línea para aumentar sus posibilidades de entrevistas telefónicas. A continuación se presentan algunos puntos que le ayudarán a obtener la llamada para entrevistas… 

  • Trate de hacer un currículum de una sola página e incluya solo cosas relevantes. Hazlo breve, preciso porque ninguno de los reclutadores tiene más de 15 segundos para escanear un CV. Escriba solo aquellas cosas con las que se sienta cómodo, no falsifique nada porque el entrevistador puede detectarlo fácilmente durante la entrevista. Si está mencionando su proyecto, mencione también la complejidad de su proyecto. Consulte el enlace Elaboración de currículum: recursos y consejos para conocer las pautas para preparar su CV.
  • Puede participar en Google Kickstart o Google Code Jam, que es una competencia de codificación organizada por Google. Si llega a la Ronda 2 (alrededor de 3000 concursantes) en Google Code Jam, es posible que Google se comunique con usted.
  • Mantenga actualizados sus perfiles de Linkedin, Github y otros, los gerentes de contratación utilizan estas herramientas como LinkedIn, bases de datos de ex alumnos y asociaciones profesionales para encontrar al candidato adecuado.
  • Consulta el enlace Crea tu currículum para Google: sugerencias y consejos
  • Ir a conferencias y empezar a establecer contactos. Los empleados de Google suelen hablar en conferencias y son muy accesibles.

Entrevista Telefónica

Una vez que su currículum sea preseleccionado, se le invitará a las entrevistas telefónicas técnicas (entrevistas telefónicas promedio 2), que son ligeramente diferentes a las entrevistas en el sitio, pero allí debe escribir código en algunas herramientas para compartir como Google Doc y eso será visible para el entrevistador. . Será por alrededor de 45 minutos cubriendo Estructuras de Datos y Algoritmos . Puede encontrar dos preguntas y se espera que escriba código para al menos una de ellas. A continuación se presentan algunos puntos para guiarlo en las entrevistas telefónicas… 

  • Debe escribir el código para la pregunta de codificación que le hará el entrevistador, arrojar una solución de fuerza bruta al principio, pero también debe intentar mejorar su solución. Piense en la complejidad del tiempo y el espacio y vea si puede mejorarlos.
  • Practica escribir código en Google Doc. Es diferente a un editor de texto. No hay sangrado, resaltado de sintaxis ni finalización automática, por lo que es bueno practicar en el documento de Google y familiarizarse con él.
  • Piense en voz alta y hable con claridad (la gente enfrenta problemas aquí) en entrevistas telefónicas y dígale su estrategia al entrevistador para resolver el problema.
  • El documento se actualizará en tiempo real. Será obvio si está escribiendo su respuesta o si la está copiando y pegando.
  • El entrevistador puede solicitar una segunda entrevista telefónica si en la primera no podrá evaluarlo adecuadamente.

Entrevista en el sitio

Después de las entrevistas telefónicas, Google realiza de 4 a 6 entrevistas en el sitio, incluidas las entrevistas durante el almuerzo, donde la entrevista durante el almuerzo no es una entrevista real y es solo la interacción con Googler. Cada ronda dura aproximadamente de 45 minutos a una hora y será una ronda de pizarra y la mayor parte de la entrevista de Google consiste en codificación. Ahora aquí viene el papel de las materias DSA y Core CS para verificar su codificación, habilidad para resolver problemas y dominio sobre los fundamentos de la informática. En primer lugar, pasará por la ronda de entrevistas de codificación y luego la ronda de diseño del sistema (basado en la experiencia). El nivel de dificultad de la pregunta se basa en el nivel que está solicitando en Google. 

1. Ronda de codificación técnica y preguntas de análisis general 

  • Se evalúa al candidato si puede resolver problemas del mundo real utilizando el conocimiento de estructuras de datos y algoritmos. La expectativa es poder llegar a la solución más optimizada para el problema dado. Su capacidad para transmitir su conocimiento algorítmico junto con el código es imprescindible.
  • En general, el entrevistador de preguntas de análisis le dará una pregunta matemática, de diseño o basada en opiniones donde investigará su proceso de pensamiento y cómo procedería como empleado.
  • Le recomendamos encarecidamente que lea el libro CTCI (Entrevista de codificación descifrada ), practique preguntas especialmente en GeeksforGeeks , Leetcode y Preguntas de entrevista de programación | CareerCup para la preparación de la entrevista de Google. También puedes practicar para lo mismo en Preparación de Google .
  • A continuación se muestra la distribución de los tipos de problemas que generalmente se encontraron en la entrevista de Google. Estos datos se basan en las experiencias de entrevistas de Glassdoor para Google. 

     

Fuente de la imagen: byte-by-byte.com

  • Consulte el enlace ¿Cómo conseguir un trabajo en empresas basadas en productos? para hacer frente a la pregunta de codificación técnica en profundidad, qué enfoque y consejos debe seguir durante la entrevista.
  • No hagas burbujas. Debe conocer los detalles de al menos un algoritmo de ordenación n*log(n) , preferiblemente dos (por ejemplo, ordenación rápida y ordenación por fusión). La ordenación combinada puede ser muy útil en situaciones en las que la ordenación rápida no es práctica, así que prepárese para eso.
  • Repase los algoritmos básicos de construcción, recorrido y manipulación de árboles. Familiarícese con el tema árboles binarios, árboles n-arios y árboles trie, al menos un tipo de árbol binario equilibrado, por ejemplo, árbol rojo/negro, un árbol splay o un árbol AVL junto con la implementación. Comprender los algoritmos de recorrido de árboles: BFS y DFS, recorrido en orden, en orden posterior y en orden previo.
  • Familiarícese con cómo representar un gráfico en la memoria, algoritmos básicos de recorrido de gráficos. No enfoque demasiados algoritmos sofisticados como Dijkstra. Estudia este tema si tienes suficiente tiempo.
  • Debes conocer las clases más famosas de problemas NP-completos, como el viajante de comercio y el problema de la mochila, y ser capaz de reconocerlos cuando un entrevistador te los pregunte disfrazado.
  • El entrevistador puede hacer algunas preguntas básicas de matemáticas discretas, así que dedique algún tiempo allí también y eche un vistazo a la combinatoria y la probabilidad y también familiarícese con los problemas n-choose-k.
  • No se olvide de uno de los sistemas operativos más importantes de CS. Subprocesos, concurrencia, procesos, interbloqueo, livelock y lea sobre los otros temas en el sistema operativo.
  • El entrevistador definitivamente verificará cómo decide qué estructura de datos es adecuada para el problema que le ha dado su entrevistador.
  • No olvide probar su código con todos los casos. Después de escribir la solución, debe probar su código, aunque sea mínimamente, porque si no lo hace, se deducirán puntos.
  • Uno de los videos de entrevistas simuladas con ingenieros reales de Google Ejemplo de entrevista de codificación/ingeniería definitivamente lo ayudará a resolver preguntas relacionadas con la codificación.

2. Ronda de diseño del sistema: 

  • Las preguntas de diseño del sistema son una conversación abierta y esta ronda se lleva a cabo principalmente con un candidato experimentado en el que evalúan su capacidad general para diseñar y escalar sistemas de base técnica como el diseño de Gmail, youtube, uber, etc.
  • Consulte el enlace Pregunta de la entrevista de diseño del sistema , Cartilla de diseño del sistema .
  • L4 e inferiores pueden obtener el diseño OO y tal vez algunas preguntas relacionadas con el diseño de sistemas. Aquí se espera que conozca los detalles de alto nivel. Si está solicitando L5 y superior, se le harán preguntas de diseño de sistemas, con la expectativa de que pueda definir los objetivos/requisitos del sistema, definir la arquitectura de alto nivel, profundizar en algunos componentes e identificar los cuellos de botella
  • En Google, la escalabilidad siempre es importante. Así que espere preguntas de diseño que serán un problema ambiguo del mundo real para sistemas de gran tamaño. Están buscando el proceso de pensamiento y cómo se descomponen las cosas para, en última instancia, obtener soluciones demasiado creativas y escalables.

¿Qué buscan los entrevistadores?

“No estamos simplemente buscando ingenieros para resolver los problemas para los que ya conocen las respuestas; estamos interesados ​​en ingenieros que puedan encontrar las respuestas a preguntas que no se habían planteado antes”. 

Lo anterior es lo más importante que el entrevistador buscará, también lea los puntos a continuación… 

  • El entrevistador generalmente tiene una mentalidad mientras toma la entrevista de que si él / ella puede trabajar junto con el candidato en su trabajo diario o no, entonces no muestre signos de arrogancia o ego mientras da las entrevistas.
  • Los entrevistadores verificarán si ha utilizado las estructuras de datos y los algoritmos adecuados al implementar el código o no.
  • Los entrevistadores notarán el enfoque de cómo optimizó la solución, su conocimiento sobre la elección del lenguaje de programación, su velocidad de codificación, cualquier caso de esquina que se haya perdido y cómo analizó la complejidad del tiempo y el espacio.
  • Verificarán cómo comunicaste tu proceso de pensamiento para resolver un problema específico de una manera lógica. También verificarán si pudo captar la pista y si pudo continuar con la solución o no.
  • ¿Si el candidato estaba abierto a nuevas ideas? si el candidato fue flexible en sus soluciones?

Criterios de evaluación de la entrevista: todos los comentarios se recopilan de diferentes entrevistadores después de la entrevista y luego se lo califica en una escala de 1 a 4 en un montón de categorías diferentes que incluyen su experiencia de codificación y habilidad analítica. Esta retroalimentación luego se envía a un comité de contratación para la decisión final. 

Puntas: 

  • Aprenda a «pensar en voz alta» durante toda la entrevista; de lo contrario, el entrevistador no tendrá idea de lo que está pensando. Muestre a su entrevistador su proceso de pensamiento sobre el problema y qué enfoque va a seguir para resolverlo.
  • Practique escribiendo código en papel o pizarra. Realmente te ayudará durante tu entrevista.
  • Nunca digas que no puedes hacerlo. Incluso si hay un problema que no has resuelto antes o parece que no puedes resolverlo, sigue atacando el problema desde diferentes ángulos, el entrevistador te dará pistas. Pero si dices que no puedes resolver el problema, es una gran señal de alerta y podrías terminar siendo rechazado.
  • Siempre haga preguntas relevantes antes de saltar a la solución para que quede más claro. Comprueba siempre tu suposición con el entrevistador y despeja todas tus dudas antes de dirigirte a la solución.
  • Le recomendamos encarecidamente que no escriba pseudocódigo para diseñar su código. No tienes tiempo para eso en una entrevista de 45 minutos.

Enlaces Útiles: 

Publicación traducida automáticamente

Artículo escrito por anuupadhyay y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *