Respuesta corta:
Compruebe Grokking la entrevista de diseño del sistema, me pareció muy útil. Tiene un buen conjunto de preguntas de diseño del sistema. Además, las siguientes publicaciones también fueron útiles:
- Anatomía de una entrevista de diseño del sistema
- ¿Cómo NO diseñar Netflix en su entrevista de diseño de sistema de 45 minutos?
Respuesta larga:
- ¿En qué preguntas básicas de entrevista PHP / MySQL debería centrarme? Tengo una entrevista técnica en San Francisco próximamente.
- ¿Qué es mejor en una entrevista técnica, código ilegible con buen rendimiento o código legible con peor rendimiento?
- ¿Cómo encontraría eficientemente un número que se elimina de una matriz sin clasificar con los números 1, 2, 3 ... N?
- ¿Cuál es la mejor manera de prepararse para una entrevista de pasante técnico en una semana?
- ¿Son los mismos problemas: encontrar la subsecuencia común más larga de las cadenas originales e invertidas, y encontrar la subsecuencia palindrómica más larga? Si no, ¿cuál es un buen contraejemplo con el que entender?
He entrevistado a cientos de entrevistas de diseño de sistemas (SDI) en los últimos años y, al igual que codificar entrevistas a candidatos que no han pasado tiempo preparándose para SDI, en su mayoría tienen un mal desempeño. Para los SDI, una cosa que es extremadamente importante es conocer las compensaciones entre las diferentes decisiones de diseño que usted toma. Por ejemplo, debe saber qué esquema de partición de datos se adapta mejor a su sistema o en qué capa puede introducir un caché para acelerar las cosas. Discutir estas opciones durante la entrevista es el aspecto más importante que los entrevistadores buscan en un candidato y para prepararse para esto, debe estudiar múltiples problemas de diseño.
Pasé por la entrevista de Grokking the System Design y encontré que es un recurso bastante razonable para las SDI. Discute un gran conjunto de problemas de diseño (como Dropbox, Netflix, Yelp, Uber, etc.) y tiene una sección útil que se centra en conceptos básicos de sistemas escalables.
Dado esto, permítanme recomendar algunas otras cosas para SDI:
a. Familiarícese con los conceptos de sistemas distribuidos como el almacenamiento en caché, el particionamiento de datos, el hash constante, el equilibrio de carga, la redundancia y la replicación, el teorema de CAP, etc.
si. Practique algunos problemas de diseño del sistema :
- Diseño de un servicio de acortamiento de URL como TinyURL
- Diseñando Instagram
- Diseñando Twitter
- Diseñando Dropbox
- Diseñando Youtube
- Diseño de sugerencia Typeahead
- Diseño de la fuente de noticias de Facebook
- Diseñando Yelp
- Diseñando Uber