¿Cuáles son algunas de las dificultades que un candidato experimentado (10-15) debe tener en cuenta en una entrevista de diseño de sistemas de software?

Demasiada suposición. Los candidatos no hicieron las preguntas adecuadas para comprender el problema en cuestión.

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 con 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

More Interesting

¿Cuál es la mejor manera de procesar pagos en un mercado?

¿Son los programadores japoneses generalmente menos expertos en tecnología, calificados y apreciados en su país de origen en comparación con los programadores en los Estados Unidos o Europa? ¿Están los mejores programadores de Japón concentrados en la industria del juego?

¿Cuál es la biblioteca de mayor rendimiento para analizar las cadenas de User Agent?

¿Por qué la mayoría de las compañías de software no tienen ingenieros híbridos que realizan trabajos de desarrollo y control de calidad?

¿Por qué la profesión de ingeniería de software carece de un organismo de autogobierno / defensa? Por ejemplo, los contadores tienen el AICPA, los abogados tienen bares.

¿Cómo manejan varias empresas el tema de la propiedad del proyecto de código abierto?

¿Cuáles son los problemas comunes cuando Development trabaja con Operaciones?

¿Puedo pensar en mi futuro como el de un probador de software?

¿Cómo funciona la huella digital de audio?

¿En qué punto tienes que tener tus propios servidores?

¿Debería un aspirante a ingeniero de software estudiar metodologías como RUP, Agile, Scrum o debería centrarse en los aspectos del software en sí?

¿Cuáles son los mejores recursos en ingeniería de requisitos de software?

¿Cómo es trabajar para Code for America como diseñador?

Cómo hacer que un sitio web funcione rápido

¿Es posible que un desarrollador trabaje durante varios años sin tener que escribir un algoritmo exigente, o ningún algoritmo?