¿Cómo debe responder las preguntas de la entrevista telefónica del diseño del sistema de pasantías de Google?

Los dos tipos de problemas de diseño planteados en las entrevistas son:

  1. La primera familia de problemas de diseño está relacionada con el diseño de sitios web de la vida real. Estos problemas aplican la teoría de la escalabilidad, el equilibrio de carga, la redundancia, etc. Por ejemplo, Diseño de Facebook, Diseño de bits, Diseño de Quora, Diseño de Uber, Diseño de IRCTC, etc.
  2. La segunda familia de problemas de diseño son los diagramas de clase. Por ejemplo, diseño del sistema de elevador, diseño de valet parking, diseño de sistema de restaurante, etc.

Enfoque de 5 pasos para resolver problemas de diseño del sistema:

1. Generación de casos de uso: reúna todos los casos de uso posibles

2. Limitaciones y análisis: cuántos usuarios, cuántos datos, etc.

3. Diseño básico: diseño más básico. Pocos usuarios caso.

4. Cuellos de botella: encuentre los cuellos de botella y resuélvalos.

5. Escalabilidad: gran cantidad de usuarios. Los pasos 4 y 5 irán en bucle hasta que obtengamos una respuesta satisfactoria.

Resolución de problemas en estructuras de datos y algoritmos ” escrito en varios lenguajes como C, C ++, Java, C #, Python, etc. El libro está escrito para el punto de vista de preparación de entrevistas explicando la lista enlazada, el árbol, el hash, el montón, etc. Número de diagramas para explicar varios conceptos. También contiene un capítulo de Diseño del sistema al final que brindará un enfoque sistemático para resolver los problemas de diseño en una Entrevista.

Algunos problemas que había discutido en el último capítulo son:

  1. ¿Cómo diseñarías Facebook? ¿Cómo diseñarías un poco? etc.
  2. También se discute cómo diseñaría un sistema de ascensor o un sistema de restaurante, etc.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos utilizando C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

6. Resolución de problemas en estructuras de datos y algoritmos con Visual Basic .Net

Eso depende de ti y del entrevistador, de verdad. Las entrevistas de diseño de sistemas no siempre, ni siquiera generalmente, requieren que dibujes un diagrama; una pregunta de diseño del sistema no será lo suficientemente simple como para ser respondida por cuadros y líneas.

Pero también, ¡no creo que sea tan común que un candidato interno obtenga una pregunta de diseño del sistema! Los pasantes generalmente no van a diseñar sistemas. 🙂 Las únicas entrevistas de diseño que he realizado han sido en persona, con candidatos para roles permanentes (no internos).

A menos que tenga alguna razón definida para pensar lo contrario, suponga que obtendrá más preguntas de codificación. Y no se preocupe demasiado por los detalles mecánicos (como si debe dibujar un diagrama); ¡Google ha estado haciendo esto por mucho tiempo, y habrá descubierto algo!