Hola Geeks,
recientemente aparecí para la entrevista de Paytm Noida para el puesto de ingeniero de software. Tengo 1 año 7 meses de experiencia en desarrollo de software.
Solicitud: Le envié un mensaje directamente al reclutador en LinkedIn y le compartí mi currículum. Ella envió un enlace de la prueba en línea que se intentará durante el fin de semana.
Prueba en línea: (90 minutos)
La prueba en línea consistió en 2 preguntas de codificación y 20 Mcq para completar en 90 minutos. Las preguntas fueron las siguientes:
1- https://www.geeksforgeeks.org/number-buildings-facing-sun/ – La pregunta era similar a esta pregunta
2- https://www.geeksforgeeks.org/minimum-insertions-to-form-a-palindrome-dp-28/
Los Mcq se basaron en java básico, preguntas de salida de colecciones y en conceptos básicos de subprocesos
. Hacer 1 pregunta de codificación por completo y 10-12 MCQ es suficiente para despejar la ronda.
Luego, todas las rondas fueron virtuales debido a COVID y se llevaron a cabo en la videollamada de hangout.
Ronda 1 (45-60 minutos)
Esta ronda se basó completamente en estructuras de datos y algoritmos. El entrevistador estaba interesado en conocer el enfoque y me pidió algunos ejemplos de casos de prueba para ver si mi enfoque los cubre o no. Se hicieron las siguientes preguntas
1- https://www.geeksforgeeks.org/delete-a-node-from-linked-list-without-head-pointer/
2- https://www.geeksforgeeks.org/print-nodes- top-view-binary-tree/
3- https://www.geeksforgeeks.org/find-element-appears-array-every-element-appears-twice/
Para este problema, estaba interesado en el tiempo O(n) 0 (1) solución de espacio y solo 1 recorrido de array (Sugerencia: use XOR)
4-https://www.geeksforgeeks.org/find-two-non-repeating-elements-in-an-array-of-repeating-elements/
Este problema es una extensión del problema anterior donde todos los números se duplican en lugar de dos números que ocurren una vez (Extensión de sugerencia del enfoque basado en XOR)
Pude responder las 4 preguntas y pude explicar el enfoque claramente.
Ronda 2 (30-45 minutos)
Esta ronda también se basó en la estructura de datos y los algoritmos y también se hizo un rompecabezas al final.
Aquí, el entrevistador escaneó mi currículum y preguntó sobre el trabajo realizado y la tecnología involucrada (5 minutos).
Luego saltó a los problemas de DS Algo. En esta ronda se plantearon los siguientes problemas
1- https://www.geeksforgeeks.org/reverse-a-linked-list/
Di un enfoque basado en la pila, pero me pidió que lo hiciera sin usar ninguna otra estructura de datos y sin usar punteros adicionales además de Head (Sugerencia: recursividad)
Me preguntó si tenía alguna idea sobre gráficos. Dije que sí, conozco los algoritmos básicos, luego me preguntó el siguiente problema
2- https://www.geeksforgeeks.org/detect-cycle-in-a-graph/ (Sugerencia DFS) Usé
DFS y expliqué mi enfoque . Luego me preguntó por qué no BFS y luego siguió una discusión de 5 minutos sobre dónde usar DFS y dónde usar BFS.
Luego me preguntó un acertijo muy popular y simple
3-https://www.geeksforgeeks.org/puzzle-1-how-to-measure-45-minutes-using-two-identical-wires/
Lo respondí en 5 minutos con una pequeña pista de él:
Ronda 3 (Resumen + Core Java + Collections+ Threads, 30-40 Minutos)
Esta ronda fue realizada por Tech Lead del equipo para el que me contrataron
. Escaneó mi currículum y preguntó sobre la versión de Java utilizada en el proyecto. Dije Java 8.
1-Me preguntó las características de Java 8
Luego me preguntó qué cambios se hicieron en JVM para introducir expresiones Lambha. Puede leer en detalle sobre esto en https://stackoverflow.com/questions/29143803/java -lambdas-cómo-funciona-en-jvm-is-it-oop
2- Se hizo otra pregunta de Generics in Java. Diferencia entre List<T> y List<Object>
(Sugerencia: Type Erasure en java)
3- Cómo Linked HashMap mantiene el orden de inserción de claves (Sugerencia: uso de DLL en depósitos)
4- Algunas discusiones básicas sobre la arquitectura de microservicios (De Reanudar)
5- Mencioné las colas de mensajería en el currículum. Así que me preguntó qué MQ has usado.
Le respondí a Kafka. Aquí estaba asustado porque tenía una idea básica de cómo funciona Kafa. Se hicieron las siguientes preguntas
: 1- ¿Cómo se puede controlar el orden de lectura de los mensajes a nivel del consumidor (quiero que M1 se lea antes que M2) cuando los mensajes están en diferentes particiones? (¡EL ORDEN DE LOS MENSAJES EN KAFKA SÓLO ESTÁ ASEGURADO CUANDO LOS MENSAJES ESTÁN EN LA MISMA PARTICIÓN!)
Me tomé un tiempo para pensar y le dije que podemos tener una secuencia no adjunta con cada mensaje y seguir persistiendo en ellos db y verificar si hay una secuenciaNo menos que la corriente ya ha llegado o no, si no, lanza una excepción. (Básicamente, el consumidor se comprometerá a una compensación solo en el primer caso) Quedó impresionado con esta respuesta
2- Se hizo otra pregunta basada en escenarios, supongamos que el consumidor está procesando un gran volumen de datos y enviando datos a un servicio de terceros a través de un punto final, pero el servicio de terceros es muy lento y tarda 6 segundos en responder. Cómo optimizarlo
(Solución: dado que la API tarda mucho tiempo en responder, no tiene sentido esperar la respuesta sincrónicamente, así que use el modo de comunicación asíncrono, es decir, subprocesos múltiples, configure un grupo de subprocesos y los subprocesos harán un llamar a la API de forma asincrónica Luego, una pequeña discusión sobre la anotación @async y el marco Executor en Spring Boot
6- Diferencia entre Fingir cliente y Plantilla de descanso para llamadas API (basadas en currículum)
7- ¿Diferencia entre métodos estáticos sincronizados y sincronizados?
8- Consulta simple sobre el uso de la función SUM en SQL (¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Ronda 4 (Gerente de Ingeniería Ronda: 1 hora)
Pequeña introducción y luego saltó a las preguntas
. Me sorprendió mucho cuando me hizo una pregunta sobre el diseño del sistema.
Era
1-https://www.geeksforgeeks.org/how-to-design-a-tiny-url-or-url -shortener/
No tenía práctica en el diseño de sistemas, pero pensando en el lugar y con algunas pistas, pude resolverlo con el enfoque mencionado anteriormente.
2- Diseñe la fuente global de Facebook y la fuente de perfil de usuario con respecto al (modelo de base de datos) y las API para obtener información de perfil de usuario e información de fuente global de usuario. Yo también estaba realmente sorprendido por este problema.
Se discutió mucho sobre el modelo Pub-Sub, SQL vs NOSQL, el almacenamiento en caché y el diseño del modelo db.
luego me preguntó abruptamente mi experiencia. Dije 1 año 7 meses, luego cambió rápidamente el flujo de preguntas e hizo preguntas muy básicas como
1- Anotación @RestController
2- Deserialización de JSON a la biblioteca interna POJO involucrada
3 ¿Por qué JPA?
4- una consulta SQL sobre el uso de Joins, groupBy, IS LIKE
5- Marcos JUnit como Mockito, etc.
Resultado: ¡Seleccionado!
Me gustaría agradecer a GeeksforGeeks por su maravilloso contenido y la cobertura detallada de todos los temas.
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