Próxima entrevista de Google, en busca de algunos consejos de preparación [cerrado]

29

Bueno, he estado golpeando los libros donde puedo. Tengo una entrevista próxima, la primera por teléfono, para un puesto de ingeniero de software. He leído todas las publicaciones del blog, he leído todas las cuentas de entrevistas (algunas bastante antiguas), y Google mismo incluso sugirió una lista de libros de lectura, ninguno de los cuales sorprendería a nadie aquí. Aún así, después de un tiempo de preparación, no puedo sacudir esa sensación de que hay un terreno tan grande que cubrir, y nunca estoy seguro de si ir con profundidad o amplitud. Me he encontrado re-aprendiendo un área completa de compsci, solo para olvidar la mayoría de los detalles esenciales a medida que avanzo hacia otro.

Por lo tanto, no sé si hay una buena respuesta a esta pregunta, pero estoy buscando algún consejo práctico sobre cómo abordar las semanas restantes antes de la entrevista. Parte de mi cerebro está cansada por el hacinamiento y, por supuesto, el resto tiene que ser utilizado para algunos problemas difíciles en mi lugar de trabajo actual.

Pescado rápido
fuente
3
Esto podría ser más adecuado en careeroverflow.com en mi humilde opinión. Además, no dice el nivel de la posición, como principiante, senior, etc., y sus antecedentes, dejando mucho para asumir.
vpit3833
3
@Fast Fish: Te digo qué, solo relájate. Realice una prueba de coeficiente intelectual, y si obtiene más de 135 Google o no Google, sabe que lo tiene.
Fanatic23
9
¿Es genial aquí, ya que se trata de programadores? ¿Por qué a las personas con mayor reputación les gusta clasificar y organizar las cosas hasta el quark?
Jonathan.
3
Ya hay muchas preguntas de entrevistas de trabajo. ¿Cómo es tu pregunta diferente? Si su respuesta es "Google", entonces es por eso que no está aquí. Hay innumerables sitios que se ocupan de las entrevistas de Google, muchos de ellos le brindarán mejor información que esta.
Nicole
2
¿Y asume que su próximo entrevistador no acecha en P.SE? :)
haylem

Respuestas:

30

Cosas que deberías saber

  • ¡Google quiere contratarte!

    La sangre vital de cualquier compañía de software son sus empleados y Google no es diferente. Está buscando contratar a los mejores y más brillantes, y las personas que realizan las entrevistas quieren que tenga éxito tanto como usted.

  • Google hará lo mejor para evaluarlo con la mayor precisión posible. Es su trabajo.

    Google es una empresa basada en datos. Las decisiones de contratación no son decididas por el gerente fiat. En cambio, cada entrevistador toma notas extensas durante la entrevista que se combinan en un paquete. Ese paquete será revisado por un comité separado , que finalmente tomará la decisión. Así que si no estabas 'gelificando' con uno de tus entrevistadores, ¡no te preocupes! Lo que importa es qué tan bien se desempeña en la entrevista.

Habilidades que deberías tener

Asegúrese de repasar las siguientes habilidades / técnicas antes de su entrevista. Incluso si no se le hace una pregunta sobre estos directamente, revisarlos ciertamente puede ayudarlo a tener la mentalidad correcta.

  • Estructuras de datos

    ¿Cuál es la diferencia entre una matriz y una lista vinculada? ¿Un árbol y un gráfico? ¿Cuándo usarías uno sobre el otro? ¿Cómo afectaría eso las compensaciones de velocidad / memoria?

    Una pregunta de entrevista no termina en una solución que funcione. Sea capaz de explicar el tiempo de ejecución de su enfoque y qué tipo de compensaciones podría hacer. Por ejemplo, "si almacenara en caché todo, tomaría X gigas de RAM pero funcionaría más rápido porque ...". O "si mantenía el árbol binario ordenado mientras realizaba las operaciones, X sería más lento, Y sería más rápido, etc."

  • Algoritmos

    Algoritmos básicos de recorrido de gráficos, algoritmos de recorrido de árboles y dos buenos enfoques para ordenar números.

    Asegúrese de practicar la resolución de un problema no trivial utilizando la programación dinámica. ¡Ese es tu as en el hoyo cuando se trata de preguntas difíciles para la entrevista!

  • Tablas hash

    Esto es enorme Conozca todo lo que hay que saber sobre las tablas hash, desde poder implementar una usted mismo, hasta conocer las funciones hash, y por qué la cantidad de depósitos debe ser un número primo. Los conceptos relacionados con las tablas hash son relevantes para casi todas las áreas de la informática.

  • Puntos de conversación sobre ti

    Los primeros minutos de conversación con el entrevistador es un momento importante para explicar cualquier tipo de experiencia que lo distinga. Proyectos relevantes, logros técnicos significativos y similares. Recuerde, la persona que realizó la entrevista ha entrevistado a docenas, si no a cientos de personas inteligentes como usted. Entonces, ¿qué puedes decir que los sorprenda?

    Por ejemplo, en una entrevista hablé con el entrevistador sobre un programa que escribí para jugar Go en la universidad. Es muy difícil escribir una IA para el juego de Go, ¡y tengo un horrible Go-bot para probarlo! La conclusión es ser usted mismo, y no solo una persona inteligente que sabe programar.

No te estreses demasiado, es solo una entrevista como cualquier otra. Tenga la seguridad de que nadie le hará preguntas estúpidas sobre tapas de alcantarillas o Mt. Fuji

Chris Smith
fuente
7

Relajarse

Si su entrevista es como la mía, el entrevistador no está allí para enviarlo a la parrilla, él está allí para ver cómo piensa .

EDITAR: esta fue solo la entrevista telefónica inicial, no sé nada más que eso ... y si lo hiciera, ¡probablemente no podría decírtelo de todos modos!

Steven A. Lowe
fuente
2
¿Conseguiste el trabajo?
Manoj R
1
@Manoj: lol - no, pero ese no es el punto. En realidad no quería el trabajo para el que estaban entrevistando, pero tenía curiosidad sobre el proceso y cuáles eran las oportunidades. ¡No tenía / no tengo intención de mudarme a California!
Steven A. Lowe
2

Tomó prestado el siguiente artículo de http://get-that-job-at-google.blogspot.in/

Conocimientos de codificación C / C ++ y Java son los lenguajes de programación preferidos para los entrevistadores de Google. Debe conocer al menos uno de ellos realmente bien. Se espera que escriba código en las entrevistas en la pantalla del teléfono y también en las entrevistas en el sitio.

Libros recomendados para entrevistas de CS : Introducción a los algoritmos - Por Cormen

Programación de entrevistas expuestas

Descifrando las entrevistas de codificación

Algoritmos para entrevistas

Sitios web recomendados para la práctica de codificación : InterviewStreet, Topcoder

Big-O Este debería ser el punto de partida para prepararse para una entrevista algorítmica. No debe luchar con el análisis de complejidad básica, ya que garantizará que no se lo contrate. Debe estar familiarizado y comprender las notaciones O, Θ y Ω. Recomiendo leer la sección sobre análisis de complejidad del libro de Estructuras de datos y Algoritmos.

Clasificación Debería poder escribir algoritmos O (n * lgn) como QuickSort y MergeSort con facilidad. Compare y comprenda las mejores, peores y medias complejidades de los casos. Encontré esta tabla en wiki muy útil; Enumera propiedades importantes de todos los algoritmos de clasificación. No descuides los algoritmos básicos de O (n ^ 2) como el ordenamiento de burbujas o el de inserción, ya que otros algoritmos mejoran con respecto a estos. Las entrevistas tratan más sobre cómo mejorar una idea básica, los algoritmos de clasificación ayudarán con este proceso.

Tablas hash En caso de duda, piense en tablas hash. Son útiles en la mayoría de los problemas y con frecuencia nos ayudan a mejorar la complejidad temporal de algunos problemas al almacenar en caché los resultados.

Árboles Siga los algoritmos básicos de construcción de árboles, recorrido y manipulación. Debería poder implementar algoritmos basados ​​en árboles de búsqueda binarios. Debe estar familiarizado con los árboles equilibrados, aunque no se espera que escriba código para ellos en la entrevista: árboles AVL, árboles rojo-negros, árboles Trie, n-aries, etc. Es necesario un conocimiento exhaustivo sobre los recorridos en orden, postorder y preorder, porque Podemos resolver muchos problemas de árbol haciendo modificaciones simples a uno de estos recorridos.

Gráficos Los gráficos son un concepto muy importante en informática. Practique las tres representaciones básicas de gráficos (objetos y punteros, matriz y lista de adyacencia) y familiarícese con sus pros y sus contras. No hay mucho tiempo durante la entrevista, por lo que no debe esperar algo muy complejo. Sin embargo, los algoritmos básicos de recorrido de gráficos (DFS y BFS) son imprescindibles, debe implementarlos en todas las representaciones básicas. Debería poder implementar los algoritmos Dijkstra o Floyd-Warshall, así como los algoritmos de árbol de expansión mínimo (Kruskal y Prim). Aprenda sobre la clasificación topológica, ya que es sorprendentemente muy útil en muchos problemas de ordenación.

Programación dinámica Este es probablemente el tema más importante ya que las implementaciones son pequeñas. Debería poder implementar 2-3 algoritmos dinámicos durante un tiempo de 35-40 minutos. A medida que revise los recursos en este blog o en la web, encontrará que debe esperar al menos una pregunta de programación dinámica por entrevista.

Sistemas operativos Aprenda sobre procesos, hilos y problemas de concurrencia Conozca mutexes, semáforos, monitores y cómo funcionan. Comprenda qué son el punto muerto y el bloqueo en vivo y cómo evitarlos. Aprenda sobre el cambio de contexto, la programación, etc.

Matemáticas Debe familiarizarse con el conteo, la combinatoria y la probabilidad.

Publicaciones de Google Lea las innovadoras publicaciones de Google que se enumeran a continuación si tiene tiempo. Sistema de archivos de Google

Google Bigtable

Google MapReduce

chinmay
fuente
Debe publicar el texto relevante aquí y evitar la rotura de enlaces.
mortal
Lo siento, soy nuevo en este foro. He mejorado mi respuesta
chinmay 01 de
1
"... Java ... prefería los lenguajes de programación para Google" No lo sabía. Explica por qué Chrome usa el triple de recursos que otros navegadores. (Knock knock. ¿Quién está allí? ... larga pausa ... Java!)
Josh Campbell
1

Si ha pasado los últimos meses en la carrera, puede darse el lujo de relajarse. Lo que sucede en ese momento en la entrevista no se puede planificar, pero es mejor estar relajado y tener la energía para durar las rondas.

Friki
fuente