Descargo de responsabilidad: no pude mencionar las preguntas exactas que me hicieron debido a un acuerdo, sin embargo, traté de describir los temas lo mejor que pude.
Prueba telefónica:
A fines de diciembre, un reclutador de Google de Singapur se puso en contacto conmigo en LinkedIn. Compartió su calendario y me pidió que marcara una ventana de 30 minutos para una charla rápida sobre mi experiencia profesional e intereses. La llamada comenzó conmigo describiendo lo mismo y luego pasó a algunas preguntas rápidas sobre conceptos básicos: montones, árboles, sus complejidades algorítmicas en varios casos, cómo uno supera al otro, etc. Concluyó cuando me dio una pregunta de matemáticas y la resolvió lo más rápido posible, pero en cada paso se esperaba que yo explicara mi enfoque. Finalmente, dijo que pasé la prueba telefónica y pronto programé una entrevista en video de 45 minutos en Google Hangouts.
Prueba de Google Hangouts:
El entrevistador era de Google US. Comenzó con una presentación amistosa y luego siguió el verdadero problema. Era un problema de DP en una array 1-D, no muy difícil una vez que ves la solución. Pero en el calor del momento (con menos tiempo) le expliqué un enfoque codicioso aparentemente obvio, que refutó pronto con un caso de prueba. Afortunadamente obtuve el algoritmo DP a tiempo y pude codificarlo (con algunos defectos de implementación que luego me di cuenta). Me preguntó sobre la complejidad del espacio y el tiempo, y luego me pidió que redujera la complejidad del espacio. Lo hice. Terminó con una discusión sobre el Proyecto LCZero, y luego sobre AlphaZero (de Google Deepmind) que recientemente ganó contra uno de los motores de ajedrez informáticos más potentes, Stockfish.
Unos días después me enteré por el reclutador que había sido seleccionado para las entrevistas en el sitio en Google Bangalore.
En el sitio:
La ronda 1:
Fue la peor ronda para mí entre todas. La pregunta era básicamente DP en árboles, y aunque generalmente estas preguntas pertenecen a la categoría difícil, casualmente resolví un problema similar hace unos años durante la universidad (incluso le mencioné esto al reclutador después de que me preguntó si había visto esto antes). Así que resolví la versión básica muy rápido. Pero luego agregó una restricción simple, y de repente fue un apagón para mí, ya que me rasqué la cabeza por mucho tiempo pero no pude encontrar ninguna forma posible de incluir esta restricción en mi solución existente. Le propuse que este caso límite se puede manejar explícitamente, pero eso realmente destruye la belleza de la solución. Así que me insistió en encontrar una forma concreta de resolver todos los casos, y acepté el desafío, y pronto se me acabó el tiempo y tampoco pude encontrar la solución concreta. Solo quedaban 4-5 minutos para que terminara la entrevista, me apresuré a codificar mi solución existente (y manejé el caso de la esquina explícitamente), pero incluso mientras codificaba entendí que salió muy mal. Se discutió la complejidad de la solución y se terminó.
Ronda 2 (pospuesta):
El entrevistador estaba en una gira, por lo que esta ronda se pospuso. Un suspiro de alivio de mi parte, después de tener un comienzo tan desastroso necesitaba un descanso.
Ronda 3:
Fue una ronda de comportamiento, también conocida como la ronda de Googleyness. No tiene nada que ver con la tecnología, pero se trata de cómo reaccionamos ante diferentes situaciones en el mundo profesional. De hecho, disfruté mucho esta ronda, porque la mayoría de las preguntas decían que ya había enfrentado una situación así en mi empresa anterior, así que respondí rápidamente con lo que hice exactamente en esa situación y, en algunos casos, qué cosas podría haber hecho. hecho mejor de lo que me di cuenta últimamente. Me olvidé por completo del percance en la primera ronda después de esta ronda. Estaba bastante contento con la forma en que manejé las preguntas y también, la entrevista del almuerzo iba a seguir 😀
Ronda 4:
No es realmente una entrevista. Un googler vino y me llevó con él a almorzar, y wow, tantos platos, artículos de pollo (mi favorito) por todas partes. Comí bastante y, en el proceso, tuve una buena conversación con él sobre en qué trabajaba, de dónde es y algunas cosas básicas sobre la cultura en Google. Todos sabemos que la cultura es definitivamente buena, pero escuchar algunos detalles de un googleador en persona fue útil.
Ronda 5:
Comenzó justo después del almuerzo. Creo que esta ronda fue la mejor para mí. La pregunta comenzó con la coincidencia de strings múltiples (con algunas restricciones secretas, por supuesto), y luego se produjeron muchas discusiones sobre temas como el algoritmo KMP, el algoritmo Z, el mecanismo hash de Rabin Karp y finalmente concluyó con una operación Trie modificada. Con respecto a la codificación, no tuve que construir el trie yo mismo, se me pidió que supusiera que tenía el trie de una biblioteca, pero necesitaba escribir operaciones personalizadas además de las funciones disponibles en el Trie. Luego discutimos sobre las complejidades de espacio y tiempo y cómo podemos optimizarlas aún más.
Ronda 6:
Se trataba de construir un juego. Se sentía muy simple, me sorprendió bastante al principio. Pero a medida que seguí haciendo preguntas, el entrevistador me detuvo en varios puntos y reveló más restricciones sobre el juego que seguían aumentando la complejidad. Primero propuse una solución con un BST, luego la cambié a un algoritmo que no requiere el pedido y, por lo tanto, podría resolverse solo con mapas hash. La lógica del código final fue bastante simple, por lo que después de que terminé mi codificación, tuvimos bastante tiempo para dedicarlo a otros temas. Luego me dio un problema de diseño que básicamente se reduce a calcular el camino más corto entre vértices bien definidos, me dio algunos enfoques, espero que esté satisfecho.
Unos días más tarde, mi reclutador me informó que me había ido bien en las rondas previas en el sitio y que enviaría el paquete al Comité de Contratación independientemente de cómo sería la próxima ronda. Me llené de alegría y comencé a prepararme para la próxima ronda de todos modos.
Ronda 2 (pospuesta antes):
De hecho, quería una entrevista cara a cara, vamos, una conversación F2F puede vencer a un chat de video cualquier día. Sin embargo, debido a algunas razones, sucedió a través de una videollamada. Me equivoqué completamente en la pregunta y seguí sugiriendo enfoques durante 10 minutos hasta que me di cuenta (mi reclutador me ayudó a entenderlo rápidamente, de lo contrario, toda la entrevista se habría terminado por una falta de comunicación), luego rápidamente volví al problema original. y dio una solución cuadrática. Me dio un tiempo para pensar si esto se puede optimizar, y de repente recordé el algoritmo de Kadane, con el que pude superar el cuello de botella (que era una pequeña parte) de toda la solución y se convirtió en una solución lineal. Quedaba muy poco tiempo para entonces, así que me apresuré a codificar y, como sucede, me perdí algunos detalles de implementación en la parte de codificación.
Unos días después, mi reclutador me informó que tengo una próxima reunión con un gerente de equipo de Google Ads. Estaba súper emocionada ya que las cosas realmente parecían ir bien. Tuve una pequeña reunión de 15 minutos en Google Hangouts con él, le describí mis intereses y experiencia en la empresa anterior, me describió sobre el puesto, la pila de tecnología y me pareció interesante. Pasó un partido y al poco tiempo recibí una declaración suya de apoyo por estar en ese equipo.
Bien está lo que bien acaba. Bueno, no fue así en mi caso, no pude hacer el corte en el paso final: el Comité de Contratación.
Pedí las revisiones y mi reclutador me explicó que en algunos casos mi codificación no estaba a la altura y podría haber simplificado la lógica en algunas situaciones.
Resultado – Rechazado.
Todas las rondas de codificación se realizaron en Google Docs (durante los hangouts) o en su aplicación de entrevista personal (en los sitios, bastante similar a los documentos).
En general, aunque todo el proceso tomó alrededor de 3 meses, fue bastante interesante. Preparar las cosas que una vez hiciste en la universidad y luego dar esas entrevistas, conocer a los Googlers en el camino, llegar a la oficina de Google India en el lugar para las entrevistas (¡dos veces!, en mi caso) fue un viaje maravilloso.
Mi consejo para los entusiastas de Google es que equilibren bien el tiempo entre la parte de pensamiento y la parte de codificación durante las entrevistas, su codificación realmente tiene un impacto muy importante más adelante, es posible que haya explicado el algoritmo muy bien durante la entrevista pero más tarde (digamos en la etapa HC ) todo lo que queda es su código. Y ese “código” debe hablar bien.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA