¿Qué algoritmo se pregunta en la entrevista de Google?

Gracias por A2A.

Las entrevistas en grandes empresas tecnológicas como Google, Microsoft, Amazon, Facebook, etc. no solicitan directamente ningún Algoritmo (al menos en mi experiencia). En su lugar, preguntan problemas donde la solución requiere conocimiento de estructuras de datos y algoritmos. Por ejemplo, una pregunta como Generar un conjunto de soluciones para Boggle requiere conocimiento de Backtracking, Profundidad del primer gráfico transversal, etc.

Eche un vistazo a Coderust 2.0: preparación de entrevistas de codificación más rápida utilizando visualizaciones interactivas para tener una idea sobre el tipo de preguntas que se hacen y cómo las estructuras de datos y los algoritmos lo ayudan a resolverlos.

Repasaría al menos los siguientes temas de DS / Algo en preparación para la entrevista

  1. Algoritmos de clasificación (clasificación por inserción, clasificación por selección, clasificación rápida, clasificación por fusión, clasificación por montón y clasificación por conteo).
  2. Pila y colas
  3. Listas vinculadas y su manipulación.
  4. Algoritmos de búsqueda (búsqueda binaria)
  5. Árboles (pre-orden, en orden, post-orden y recorridos de orden de nivel, árboles binarios, árboles de búsqueda binaria, intentos, etc.)
  6. Gráficos (recorridos que incluyen Búsqueda de profundidad primero, Búsqueda de amplitud primero y Ruta más corta)
  7. Programación dinámica
  8. Retroceso

Además de las preguntas que involucran habilidades de DS / Algo, también recibirá preguntas sobre el diseño de un sistema distribuido a gran escala, por ejemplo, Diseñe un acortador de URL como bitly o Design Instagram.

Eche un vistazo a Grokking the System Design Interview para prepararse para las preguntas de la entrevista relacionadas con el diseño de sistemas distribuidos a gran escala.

Para resumir

  1. Repase sus estructuras de datos y algoritmos si está oxidado.
  2. Practique resolviendo problemas que normalmente se le preguntan.
  3. Prepárese para las entrevistas de diseño del sistema.

Es imposible estar seguro de qué se preguntará exactamente en Google o en cualquier otra entrevista de trabajo, por lo que la mejor manera de prepararse es de manera integral , no centrándose en un algoritmo o tipo de problema. Si reduce demasiado su enfoque, podría ser atrapado completamente desprevenido durante la realidad. Además de repasar los algoritmos sugeridos y los temas de codificación sugeridos en otras respuestas en este hilo, considere otra forma de experimentar completamente el entorno de la entrevista antes de su entrevista real.

Para prepararse para todos los aspectos de su entrevista en Google, considere practicar con entrevistas simuladas . En plataformas como Pramp y InterviewCake, puede registrarse y ser emparejado con otro ingeniero de software y realizar una entrevista simulada desde la perspectiva del entrevistador y el entrevistado. Practicará problemas de codificación, lo que le brinda la oportunidad de revisar diferentes algoritmos y otros conceptos básicos. Obtendrá comentarios de otra persona, y puede usar los comentarios para ajustar su estrategia de entrevista. Es posible que su socio se haya entrevistado en Google o en compañías tecnológicas similares en el pasado, por lo que también pueden darle sugerencias y consejos específicos. También puede practicar sus habilidades de comunicación durante estas entrevistas simuladas, una parte muy importante de la entrevista que no debe pasar por alto solo para hacer más revisiones de algoritmos y prácticas de codificación de problemas. Ambos componentes son esenciales en el panorama general de tener éxito en una entrevista de trabajo.

El punto no es que conozca ningún algoritmo específico, incluso el que le preguntan.

El punto es ver qué sucede cuando te enfrentas a un problema que nunca has visto antes y te piden que encuentres una manera de resolverlo.

Por lo tanto, debería ser capaz de encontrar una forma claramente correcta de obtener la respuesta, y pensar en algunas formas de hacerlo más rápido … potencialmente utilizando otros algoritmos como herramientas para llegar allí.

El entrevistador no buscará una recitación perfecta de algo de un libro de texto, sino que buscará una forma lógica de resolver algo nuevo.

Por lo tanto, debe conocer bien las herramientas utilizadas para construir los algoritmos estándar y poder generalizarlos para hacer algo diferente.

No lo sabrás Ese es todo el punto.

Se le presentará un problema y su trabajo es encontrar una solución al reconocer la estructura subyacente del problema. Debe ver el problema y decidir qué algoritmo (s) y estructuras de datos usar y cómo adaptarlos a la situación. Esta es una prueba de tu capacidad de pensamiento abstracto.

Y sí, es una habilidad que usarás todo el tiempo en Google. A veces un equipo necesitará implementar alguna infraestructura para lograr sus objetivos. No es raro darse cuenta de que algún otro proyecto en Google tiene una infraestructura subyacente que funcionaría para usted, aunque, superficialmente, está destinado a algo completamente diferente. Mierda como esa hace la diferencia entre un proyecto fallido y uno que tiene éxito a pesar de un bajo conteo de personal, sin memorizar cómo un árbol rojo-negro se reequilibra.

More Interesting

¿Qué es Algoritmo, Diagrama de flujo y Pseudocódigo en la planificación de programas antes de escribir?

¿Qué es el algoritmo de clasificación de Reddit?

¿Cuál es el mejor algoritmo de clasificación manual? Por ejemplo, si tuviera una pila de papeles que quisiera ordenar alfabéticamente, ¿cuál sería la forma más eficiente de hacerlo? ¿Qué pasaría si estuvieras de acuerdo con que uno o dos se alejen de su posición ordenada?

¿Dónde y cómo puedo aprender sobre la creación / comprensión de algoritmos de negociación de acciones?

¿Cómo debo tomar una entrada de orden 10 ^ 250 usando una matriz de caracteres en C?

Cómo resolver la ordenación rápida utilizando un método no recursivo

¿Se puede usar el algoritmo DBSCAN para determinar los límites del área geográfica?

¿Cuál es el "mejor" sitio para estudiar estructuras de datos durante las ubicaciones?

¿Cuál es la mejor manera de aprender estructuras de datos y cuáles son los libros para comprender esto fácilmente?

¿Por qué es necesario un relleno de palabra no utilizado al comienzo del espacio de almacenamiento dinámico asignado?

¿Qué lenguaje, libro o técnica es el mejor punto de partida cuando estás frustrado con tus habilidades de programación y quieres tener una sólida formación en algoritmos y estructuras de datos?

La mayoría de las definiciones / teoremas / ejemplos de privacidad diferencial que he encontrado son para consultas que devuelven un solo número por columna, como un promedio. ¿Existen mecanismos diferencialmente privados para otros tipos de consultas, como los que subconjustan filas en función de algún criterio?

¿Los programas que simulan la evolución tienen algún efecto en los creacionistas?

Dados los pares 'n1' de corchetes "[]", los pares 'n2' de corchetes "{}" y los pares 'n3' de corchetes "()", ¿cómo podemos encontrar todas las combinaciones válidas posibles de todos estos pares de manera eficiente?

¿Cuáles son los algoritmos gráficos 'imprescindibles' para un programador competitivo?