paint-brush
10 consejos para usar diagramas para dominar la entrevista de diseño del sistemapor@alixanderwang
15,001 lecturas
15,001 lecturas

10 consejos para usar diagramas para dominar la entrevista de diseño del sistema

por Alexander Wang7m2020/02/17
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

La forma más efectiva de comunicar su diseño es diagramar en una pizarra el diseño que está explicando verbalmente. Es una de las entrevistas de mayor señal, porque es abierta, lo que presenta más oportunidades tanto para errores como para flexiones. El enfoque debe estar en la simplicidad, la minuciosidad, la limpieza y la sencillez. No intentes apresurarte a terminar, dar una respuesta reflexiva cuando te hayan preguntado específicamente sobre algo es una señal muy positiva.

Company Mentioned

Mention Thumbnail
featured image - 10 consejos para usar diagramas para dominar la entrevista de diseño del sistema
Alexander Wang HackerNoon profile picture

Si es un ingeniero de software que se entrevista para un rol de back-end, probablemente se le probará qué tan bien puede diseñar una arquitectura de sistema con algunos objetivos y restricciones. Es una de las entrevistas de mayor señal, porque es abierta, lo que presenta más oportunidades tanto para errores como para flexiones. Un detalle importante es que estas entrevistas ponen a prueba no solo su conocimiento de los sistemas back-end, sino también la eficacia con la que puede comunicar sus ideas.

La forma más efectiva de comunicar su diseño es diagramar en una pizarra el diseño que está explicando verbalmente. A menudo es necesario dibujarlo, porque a veces el entrevistador toma una foto y la guarda para revisarla más tarde, posiblemente con otros compañeros de trabajo. Según mi experiencia de realizar cientos de estas entrevistas en las principales empresas, los diagramas más efectivos son los que explican claramente su visión con una ambigüedad mínima.

Para lograr eso, el enfoque debe estar en la simplicidad, la minuciosidad y la limpieza. Se necesita una comprensión profunda de algo para explicar algo de manera simple, y es fácil ver a través de cualquier oscuridad por complejidad. La minuciosidad es importante para asegurarse de que no haya algún defecto fundamental que impida que su diseño resuelva el problema. Y si su diagrama está repleto de grandes ideas en un desorden desorganizado, es posible que el entrevistador (y potencialmente otras personas que revisen su entrevista) no puedan entenderlo completamente (o peor aún, malinterpretarlo).

Aquí hay diez consejos sobre cómo diagramar de manera efectiva para la entrevista de diseño del sistema.

Empezar en el núcleo

Cuando comience a dibujar su diagrama, comience con lo que cree que será el núcleo de su sistema y dibújelo cerca de la mitad del tablero. Puede ser tentador comenzar con lo que se sienta más cómodo, o lo que le venga a la mente primero, pero dado que la entrevista da muy poco espacio para hacer grandes ajustes como volver a dibujar una sección completa, si administra mal el espacio, se va a ir. para dar lugar a un montón de desorden.

También tenga en cuenta que algunas personas pueden no ser lo suficientemente altas para llegar a la parte superior de la pizarra.

Por lo tanto, planifique con anticipación y dedique algún tiempo a saber en términos generales en qué consistirá su diseño y en qué direcciones podría expandirse.

Pero no pierda demasiado tiempo sabiendo exactamente qué irá a dónde, porque...

Profundizar primero

Si te quedas sin tiempo y no resolviste el problema, pero explicaste todo lo que presentaste en detalle, eso es una señal tanto o más positiva. No estás siendo probado sobre cómo administras tu tiempo. A diferencia de una pregunta de algoritmo, la naturaleza abierta de esta entrevista no busca resolver x. El mensaje es generalmente para poner la pelota en marcha en una discusión técnica en profundidad.

Tomar desvíos y profundizar en un área en particular es parte de la entrevista y, a menudo, revela fortalezas y debilidades mucho mejor que una cobertura superficial del sistema. Si el entrevistador tiene una sección particularmente sustanciosa a la que quiere llegar, te lo hará saber. Si el entrevistador presiona sobre una parte en particular, ¡genial! No intentes apresurarte a terminar, dar una respuesta reflexiva cuando te hayan preguntado específicamente sobre algo es una señal muy positiva. Improvise y haga que esta discusión forme parte de su diagrama, incluso si no encaja perfectamente con su plan original.

"Y aquí agregaré un caché, que se conecta al da —"
"¿Qué estás almacenando en caché específicamente?"
"Estoy almacenando en caché las preferencias de los usuarios por su ID"
"¿Cuál es la estrategia de desalojo?"
"Creo que solo un LRU simple haría el truco"
"¿Cómo dividirías si..."

Después de un intercambio de opiniones, pregúnteles si sus respuestas tienen sentido. Confirme que ha tirado de este hilo lo suficientemente fuerte, quiere darle a su entrevistador una sensación de satisfacción por haber respondido su línea de preguntas lo suficientemente bien.

Hacer listas de verificación

La pizarra no es solo para dibujar: utilícela para escribir a medida que se le indique, a medida que aclare las suposiciones y haga inferencias. Tener una lista de verificación ayuda a guiar su línea de pensamiento a medida que realiza el diagrama. Cuando dibuje los componentes y las interacciones de su sistema, siga consultando la lista de verificación y asegúrese de no violar ninguna restricción y de cumplir con los objetivos.

Por ejemplo, en el ejemplo clásico de "diseñar un acortador de URL", un elemento de la lista de verificación podría ser "puede manejar 1 millón de solicitudes por segundo". A medida que dibuja cada componente, mire hacia atrás y asegúrese de que no sea un cuello de botella para este requisito.

Esto también ayuda a su entrevistador y a usted a estar en la misma página. Los malentendidos del mensaje ocurren todo el tiempo, y al escribir una lista de verificación, no deja ambigüedades en cuanto a cuáles son los objetivos y las suposiciones. Vale la pena el tiempo para hacer esto.

Etiqueta todo

En el apuro del momento, es fácil olvidarse de etiquetar lo que está explicando verbalmente que es un componente. Dibujar una caja y decir, "y aquí hay un trabajo cron que monitorea la salud", todos en la sala podrían asentir y continuar, pero ¿quedará claro qué es esa caja misteriosa al final de la entrevista o en dos días cuando esté lista? ¿revisados? Dé una etiqueta clara a cada componente y, a veces, incluso a las conexiones si no son obvias.

Apégate a las formas simples

Con una nube, un cilindro y un rectángulo, debería poder transmitir todos los componentes que representa el diagrama de su sistema. Si lo ha hecho muchas veces antes, puede usar otras formas universalmente reconocibles como un candado y una llave, pero si necesita comenzar con las palabras "No soy un artista", no dibuje lo que quiera. a punto de dibujar Si ha etiquetado todo, la elección de la representación es adicional. Esto solo puede lastimarlo al causar confusión y no lo recompensa si dibuja la clave más hermosa que haya representado el cifrado.

Algunas personas pueden tener un esquema específico (por ejemplo, UML) en mente al que están acostumbrados, como las líneas punteadas significan dependencia suave o el extremo de conexión de cabeza de diamante significa clave externa. No confíe en esas suposiciones en una entrevista a menos que también lo etiquete explícitamente. Simplemente no hay garantía de que su entrevistador comparta el mismo lenguaje de diagramación que usted.

Habla mientras dibujas

Siempre hay ideas adicionales que puedes dar mientras dibujas. No dibujes en silencio y pongas al entrevistador en la posición de tener que cuestionarte todo para que hables. Quieren saber por qué estás dibujando lo que sea que estés dibujando, cuáles son algunas alternativas, cuáles son los casos límite, cuándo no tendría sentido, etc. Practica hablar simultáneamente mientras dibujas tu diagrama. Bien hecho, realmente muestra la confianza de que sabes lo que estás haciendo. También invita a hacer preguntas. Cuando el entrevistador obtiene una buena respuesta a una pregunta que se le ocurrió en el acto, recuerda esos momentos.

Revisar continuamente los caminos

¿Revisó toda la solicitud de API pero agregó una cola en alguna parte? Realice una revisión rápida de los flujos ya explicados para asegurarse de que el nuevo componente no afecte algo sin darse cuenta. No dediques demasiado tiempo a repasar cada detalle que ya hayas repasado, ya que podría parecer una pérdida de tiempo. Demuestra una atención al detalle cuando muestra que está comprobando dos veces cómo la introducción de una nueva parte del sistema afecta a otras partes, así como una conciencia del panorama general.

Para diagramas grandes, secciones de grupo

Si su diagrama tiene muchos componentes, haga algunas agrupaciones lógicas y delinee los límites, tal vez con diferentes colores si es conveniente. Asegúrese de etiquetar los grupos. Esto ayuda a mantener una cantidad de información potencialmente abrumadora más manejable. También le da al diagrama una sensación muy limpia.

Mantenga un borrador a mano

Lo más probable es que, a medida que diagrama, tendrá que revisar los dibujos anteriores después de los descubrimientos en la mitad del proceso. Tener un borrador a mano y usarlo te permite corregir el rumbo de forma rápida y limpia. Para eso está una pizarra. A veces, las salas de entrevistas pueden no tener un borrador; solo use un pañuelo si ese es el caso, o en el peor de los casos, use sus manos o mangas (puede comprar una camisa nueva cuando consiga el trabajo). El punto es, no tengas miedo de dar marcha atrás una vez que sepas que has cometido un error. La autoconciencia de sí mismo es una buena señal, y borrar el original no les da a los revisores posteriores la oportunidad de ver también su error.

Nunca agitar la mano

Por último, una cosa que nunca debes hacer mientras diagramas es dejar una sección nebulosa con un gesto con la mano y un comentario desdeñoso. Esto es algo que surge muy a menudo con los candidatos que son rechazados. Cuando se enfrentaron a un punto débil en su conocimiento de diseño de sistemas, intentaron ocultarlo en lugar de tratar de resolverlo con lo que sabían y algunos consejos. Con la primera estrategia, el entrevistador está tratando de romper tu fachada, mientras que con la segunda, puede estar de tu lado y complementar lo que sabes con lo que te estás perdiendo y ver cómo asimilas la nueva información. Es una gran bandera roja asumir que algo es trivial y rechazarlo, solo para ser presionado hasta el punto en que tienes que admitir que en realidad no lo sabes.

Conclusión

La entrevista de diseño del sistema es la entrevista técnica con mayor carga de comunicación que existe, y un gran desempeño en ella realmente puede compensar algunos desempeños más débiles en otros lugares. También está mucho más relacionado con lo que realmente estaría haciendo en el trabajo en comparación con otras entrevistas en las que se prueba con algo como algoritmos. Como ingeniero de back-end, a menudo tendrá que diagramar sus diseños de manera clara y explicativa en reuniones, debates ad hoc y documentación registrada. ¡Espero que estos consejos hayan sido útiles! No dude en enviar un correo electrónico a [email protected] si tiene alguna pregunta, estaré feliz de ayudar.

Si se pregunta cómo crear diagramas dibujados a mano como el anterior, Terrastruct tiene una configuración que le permite exportar al modo dibujado a mano.

Publicado anteriormente en https://terrastruct.com/blog/10-tips-diagrams-system-design-interview/