Recibí una llamada de un reclutador para Flipkart SDE 2
Ronda-1 (Ronda de codificación de la máquina) :
Aquí, tenemos que traer nuestra propia computadora portátil con nuestro IDE preferido ya instalado para codificar.
Diseñe un sistema informático con múltiples niveles de caché.
Los cachés están escalonados con tres niveles. L1, L2, L3, podemos agregar más o eliminar niveles si es necesario.
Cada caché tiene propiedades distintas como capacidad, tiempo de lectura, tiempo de escritura y desalojos
La memoria caché debe admitir dos operaciones principales:
Comando: Comportamiento
Obtener clave -> Comenzar con el nivel más bajo L1. Compruebe si existe la clave. Si lo encuentra, propague el valor hacia arriba. Si no lo encuentra, vaya al nivel más profundo L2
Set Key -> Verifique el nivel más bajo L1, verifique si existe, si no, agréguelo allí y continúe con el nivel más profundo. Si ya está en un nivel más profundo, rebote desde allí.
ESTADÍSTICAS -> Tiempo promedio de lectura de las últimas operaciones ‘N’, tiempo promedio de escritura de las últimas operaciones ‘N’, capacidad libre, recuento total de desalojos
Nos darán 90 minutos. Puede solicitar 15 minutos adicionales si es necesario para envolverlo.
El código debe ser demostrable, funcionalmente completo, manejo de casos Edge, modularidad, extensibilidad, no debe ser monolítico, etc.
El entrevistador se asegura de que entendiste la pregunta por completo antes de comenzar la evaluación. Asegúrese de hacer todas las preguntas aclaratorias antes de comenzar a pensar y solucionar.
Puntas :
1. No te pongas nervioso
2. Trate de pensar en LLD y cómo se ve el código en los primeros 15 a 20 minutos. Piense dos veces en los casos extremos y practique un ejemplo en papel. No es necesario codificar nada durante los 15-20 minutos.
3. Después de hacerse una idea de cómo lo va a implementar, comience a escribir código y cubra la mayor parte en la próxima hora. Agregue controladores y pruebas para verificar la corrección de su código en los últimos minutos, se debe esforzar para que sea demostrable y funcionalmente completo.
4. Explique a la entrevista por qué escribió una clase y estructuró su código de una manera particular, el código de todos será diferente, es importante que expliquemos nuestra razón detrás de tomar un enfoque sobre otro.
Ronda 2 (resolución de problemas):
1) Problema similar, https://www.geeksforgeeks.org/minimum-iterations-pass-information-nodes-tree/ Se
le pidió que primero indicara el enfoque, la complejidad del tiempo, la complejidad del espacio y luego el código.
2) https://www.geeksforgeeks.org/minimum-number-platforms-required-railwaybus-station/
Similar a este pero diferente dominio.
3) Dos preguntas más. No recuerdo las preguntas exactamente, pero se encuentran en un nivel fácil/medio en GFG. Preguntó solo el enfoque sin necesidad de escribir código.
Preguntado por las complejidades temporales y espaciales de todos.
Puntas :
1. Prepárese bien, cubra toda la gama de temas en GFG y la entrevista Cracking the Coding, debería poder responder casi todas las preguntas
2. Escribir código en papel, pensar en voz alta durante la preparación ayuda mucho.
Ronda 3 (ronda del gerente de contratación):
1) Una pequeña discusión en profundidad sobre proyectos anteriores. escalabilidades, RPS del servicio que ha desarrollado, dinámicas de equipo anteriores (¿cuántos miembros forman el equipo?, ¿qué responsabilidades asumió?, etc.)
2) Proyecto desafiante que hayas realizado, explícalo.
3) Conflicto de equipo y gestión de equipos. ¿Algún conflicto anterior, cómo lo resolvió, etc.? ¿Algún conflicto con el gerente?
4) ¿Qué es lo más reciente que has aprendido y te ha entusiasmado?
5) ¿Por qué Flipkart? ¿qué estás buscando? ¿Qué es lo que más te emociona?
6) ¿Cuáles son tus fortalezas y debilidades? (Técnicamente). ¿Estás haciendo algo para mejorar las debilidades?
Y muchas otras preguntas en líneas similares, en su mayoría relacionadas con el trabajo, la personalidad, el manejo de situaciones, etc.
Esto es más una ronda de ajuste cultural.
Sugerencias:
1. Debe ser capaz de hablar extensamente y cualitativamente sobre el trabajo que ha realizado en el pasado.
2. La mayoría de las veces, el contexto se pierde cuando comienzas a explicar proyectos anteriores (o problemas que resolviste anteriormente). En esos casos, primero defina el problema brevemente, si es posible intente asignarlo a un dominio genérico, luego comience a explicar cómo lo abordó, cuánto tiempo tomó y qué impacto tuvo, etc.
Ronda-4 (Ronda de diseño) :
Diseñar un sistema de reserva de vuelos.
Esto suele ser alrededor de 1 a 1,5 horas. Fueron casi 2 horas.
Esta es la ronda más interesante donde podemos discutir extensamente sobre todo y hacer una lluvia de ideas sobre cómo resolver el problema en cuestión junto con el entrevistador. Sería responsabilidad del entrevistado intercambiar ideas con el entrevistador y dirigir la discusión en esa dirección.
Comenzó con el alcance, la recopilación de requisitos, lo que se espera que resuelva , ¿puedo ignorar o agregar extensibilidad para esta función, etc. ? interruptores, donde fluye toda la sincronización, donde los flujos asíncronos, puertas de enlace, proxies, tiendas de índice si es necesario, etc.
DB Schema, dedique tiempo a esto ya que el modelado de datos es importante si se va a cumplir la funcionalidad
El flujo de trabajo del sitio, qué API hay y cómo van a funcionar, cómo se realizan las entradas de la base de datos, cómo se realizan las reservas, el manejo de las condiciones de carrera, la consistencia
Tome un componente/flujo, profundice en cómo se implementa, su LLD. Principalmente LLD basado en OOP.
Desmontar un componente y ¿cómo reaccionará el sistema? consistencia sobre la disponibilidad? lograr una disponibilidad del 99,9 %? Sobre los cálculos de envolvente RPS, pedidos por minuto, ¿cuántos vuelos? ¿Cuántos datos vamos a necesitar? problemas de crecimiento de datos, problemas de escala, etc.
Consejos:
1. Esta ronda puede ir a cualquier parte, la preparación ayuda mucho.
2. Intente resolver diferentes problemas con diferentes dominios, como reserva de taxis, entrega de comida, ajedrez multijugador, intermediario de mensajes personalizados, etc. Cuanto más hacemos, más fácil se vuelve.
3. Obtenga una descripción general de los conceptos de HLD como intermediarios de mensajes, balanceo de carga, SQL Vs NoSQL, diferentes tipos de patrones de caché, teorema CAP, etc.
Consulte https://github.com/donnemartin/system-design-primer
4. Hacer entrevistas simuladas ayuda mucho. Si está dando entrevistas en una racha, ayudará mucho, después de las primeras entrevistas, su ronda de diseño definitivamente mejorará.
Gracias a toda la comunidad GeeksforGeeks por todos los recursos y la ayuda.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA