Cómo dominar las preguntas de diseño de HLD y LLD en entrevistas tecnológicas

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. Restricciones 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

Para aquellos que muchos no conocen las siglas.

HLD = Diseño de alto nivel

LLD = Diseño de bajo nivel

En general, HLD y LLD son dos documentos que preparamos durante el desarrollo del software. Estos documentos tienen formatos estándar. En tiempo de HLD tenemos que mirar el problema desde un nivel alto.

En una entrevista, si se nos pide que presentemos HLD, tenemos que responder en los siguientes términos:

  1. ¿Para qué se utiliza el algoritmo?
  2. ¿Cuál es la complejidad a un alto nivel?
  3. ¿Necesitamos algunas tablas de base de datos, trabajos o API, etc.
  4. ¿Cuál es la estrategia de prueba?
  5. ¿Cuál es la escala que puede proporcionar este HLD?
  6. ¿Cuáles son las interfaces con las que interactuará este componente de software?
  7. ¿Cuál es la estrategia de failover para nuestro diseño?

En caso de que la pregunta sea sobre LLD, solo podemos elegir una o dos áreas desde arriba y explicar en detalle.

  • Puede explicar el algoritmo exacto con estructuras de datos, etc.
  • Puede explicar los casos de prueba y el diseño de la prueba.
  • Puede explicar los pasos para la implementación de conmutación por error.
  • Puede explicar el plan para manejar la escala con el software.

Sígueme en Gautam Gupta para aprender más sobre el diseño a nivel de HLD y LLD.

More Interesting

¿Cómo puede determinar eficientemente el k-ésimo elemento máximo en una matriz ordenada MxN?

¿Los entrevistadores solo preguntan sobre algoritmos y estructuras de datos para entrevistas de ingeniería de software?

¿Qué temas debo preparar para codificar entrevistas en empresas multinacionales y startups después de completar B.Tech en CSE?

Cómo prepararse para una entrevista técnica para la colocación de TCS para informática

¿Qué tipo de preguntas se hacen durante las entrevistas de codeNation? ¿Son principalmente del tipo que se solicitan en Codechef (es decir, la codificación matemática) o lo hacen desde un enfoque de estructura de datos?

¿Qué hace que las entrevistas de Palantir sean tan difíciles?

¿Qué habilidad se espera de un ingeniero en electrónica y comunicación cuando se enfrenta a una entrevista en una gran empresa junto a chicos de CSE?

Dada una matriz entera y un número constante X, imprima todos los pares de números en la matriz cuyo producto es igual a X. Seguimiento: ¿cómo lo hará en O (n)? ¿Cómo manejarás los pares duplicados?

¿Qué debo aprender para las entrevistas de programación Java? ¿Qué se necesita para obtener una entrevista?

¿Qué está haciendo la siguiente macro?

¿Cómo es el proceso de entrevista en HackerRank for Software Developer? ¿Cuál es el proceso después de la ronda en línea?

¿Dónde encuentro más preguntas de diseño de software con una posible respuesta como se proporciona en la entrevista de Cracking the Coding?

¿Cómo podemos encontrar el árbol de búsqueda binario más grande en un árbol binario de manera eficiente?

¿Qué tan común es que se le pida que implemente la correspondencia de expresiones regulares en la entrevista?

¿Cómo respondería: "¿Preferiría trabajar en Microsoft o Google si tuviera ofertas de ambos y la ubicación y el pago fueran equivalentes", preguntó en una entrevista para un puesto en Microsoft?