¿Hay buenos libros para preguntas sobre entrevistas de diseño de software y arquitectura?

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

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

Recomiendo altamente 2 libros

1. Diseño de aplicaciones intensivas en datos por Martin Kleppmann. No está orientado específicamente a las preguntas de la entrevista, pero es un gran libro para comprender los fundamentos del diseño del sistema y aplicarlos a las preguntas de la entrevista.

2. Patrones de arquitectura de aplicaciones empresariales por Martin Fowler. Este es otro gran libro centrado en los patrones de arquitectura de software que también ayudaría en las entrevistas.

Un buen curso para entrevistas de arquitectura y diseño de sistemas es Grokking the System Design Interview. Algunas de las preguntas que discutió son:

  • Diseño de un servicio de acortamiento de URL como TinyURL
  • Diseñando Instagram
  • Diseñando Twitter
  • Diseñando Youtube
  • Diseñando Yelp
  • Diseñando el backend de Uber

Actualmente, Microservices es la última tendencia en arquitectura de software. Hay muchos libros sobre teoría de microservicios.

Un buen libro para preparar la Entrevista de Arquitectura de Microservicios es:

Preguntas de la entrevista de microservicios: buena colección de preguntas en entrevistas técnicas a nivel de arquitecto

More Interesting

¿Cómo es trabajar en MiSys Software?

En las pruebas de software, ¿cuál es la diferencia entre un error, una falla y una falla?

¿Cómo pasar de ser programador a ser desarrollador? ¿Cómo puedo usar mi experiencia actual (proyectos personales o pequeñas tareas independientes en una variedad de idiomas y aplicaciones) para pasar a este rol?

¿Se ve mal tomar vacaciones por un mes si tiene las horas ahorradas para hacerlo?

¿Es Ruby on Rails una mejor opción que Java (por ejemplo, JSF) para desarrollar aplicaciones web? ¿Por qué?

¿Los ingenieros de software todavía usan formularios de Windows para hacer programas en C #?

Si uno necesita entrenamiento en diseño de software, ¿cómo encuentra y se acerca a alguien que sea lo suficientemente competente (y que quiera) proporcionarlo?

¿Cómo debemos lidiar con las suites de prueba de larga duración?

Soy un desarrollador de software autodidacta de África con 1 año de experiencia laboral en los Estados Unidos. ¿Qué posibilidades tengo de migrar a Canadá, Estados Unidos, Australia o Europa?

¿Cuál es un mejor trabajo: ser gerente o ingeniero de software?

¿Por qué Yahoo! ¿El CEO Scott Thompson miente sobre tener un título en ciencias de la computación?

Cómo mejorar en la preparación de entradas en mi ágil equipo

¿Puedes codificar aplicaciones para productos de Apple y androides con javascript?

En seguridad informática, ¿qué es un sandbox?

¿Podría realmente convertirme en desarrollador de software en algún momento en el futuro cercano?