Recientemente asistí a Hike Hiring Drive para iOS Developer en la oficina de Delhi. Los candidatos son 0-2, 2-4 y 4+ años de experiencia. Tengo una referencia del reclutador en LinkedIn.
Ronda 1: aplicación móvil: (1:30 hora) Han proporcionado Flickr Api, la tarea es crear una aplicación iOS que obtenga imágenes usando la entrada de la barra de búsqueda y muestre las imágenes. Asegúrese de que la interfaz de usuario no esté bloqueada, el manejo de requests múltiples mientras el usuario escribe, la estructura del código, la paginación y la legibilidad y el almacenamiento en caché de imágenes es una ventaja si ha implementado .
Compilé la aplicación en 50 minutos: enlace para ver https://github.com/Vasu05/Hike-Messenger-Hiring-iOS-Test
Después de completar la aplicación, el administrador de iOS revisa Mi aplicación. Fue genial y amigable. Me preguntó la estructura del modelo que he seguido, hay un bloqueo en mi aplicación, me pidió que depurara y lo hice, le dije el motivo del bloqueo. Preguntó sobre GCD, preguntó por la optimización del código. Preguntó cómo detectar si el usuario se desplazó al final de la página. Inspeccionó la aplicación a fondo, estaba escribiendo, cancelando, borrando datos para ver el comportamiento de la aplicación. Quedó impresionado ya que construí todas las funciones principales con optimización de código. Luego tenemos una discusión sobre los proyectos actuales en los que estoy, lo que he construido en el pasado. Esta ronda de revisión duró 1:20 h. Me pidió que almorzara y esperara la segunda ronda.
Ronda 2: DS Algo (30 min) –
- Encuentre dos elementos con una suma igual al valor x en Array. Lo hice usando hashmap .
- ¿El árbol es BST o no?
- Implementación de LRU
- Discusión sobre el manejo de subprocesos en iOS
Se requería un código adecuado, dieron suficiente tiempo para pensar y pidieron un mejor enfoque. Codifico los tres a bordo con una explicación. El entrevistador quedó impresionado, me pidió que esperara otra ronda.
Ronda 3: se suponía que esta ronda la tomaría el vicepresidente de la compañía, pero estaba ocupado con otros candidatos, por lo que vino otra pista y me pidió otra ronda. hizo dos preguntas
- Detecta el bucle en la lista enlazada y elimina el bucle.
- obtener el punto de fusión de dos listas enlazadas.
Mientras tanto, estaba escribiendo el código para las segundas preguntas en papel, dijo que había terminado con la entrevista y me pidió que me reuniera con el vicepresidente para una ronda más.
Ronda 4: Esta ronda la toma el VP de la compañía. Dio una introducción, lo que hizo, en qué se están enfocando y habló sobre cómo son diferentes de otras aplicaciones de mensajería en el mercado. Me preguntó si prefiere lápiz y papel o escribir en la pantalla, luego me pidió que subiera a bordo, era Samsung TV donde se suponía que debía escribir código con lápiz. Preguntó –
- Flujo infinito de palabras que tienes que decir k la mayoría de las palabras que aparecen. Le dije que se acercara con heap and trie, me pidió que usara otra estructura de datos para buscar, le di un enfoque de árbol ternario, pero esperaba algo mejor y me dio una pista para usar el mapa y luego me dio una solución usando heap y hashmap. Me pidió que codificara.
- compruebe si el árbol binario es un montón mínimo o no . Salió de la habitación y me pidió que pensara optimizar la solución. Él viene después de 30 minutos de descanso entre he escrito las propiedades del árbol binario y el montón, luego escribo el código para verificar que el árbol es un montón mínimo o no. Estaba satisfecho.
- Me dio una pregunta de diseño: me pidió que creara la opción de búsqueda de calcomanías mientras el usuario escribe. Le hablé sobre el almacenamiento en caché de la memoria y me preguntó qué tipo de almacenamiento en caché podemos usar. Le dije que hay caché de aplicaciones mantenido por aplicación, memoria de disco y memoria de red. He hecho un diagrama de cómo funcionará la consulta de búsqueda paso a paso. Luego tenemos una discusión sobre el manejo de múltiples caracteres cuando el usuario escribe, dije que podemos usar el temporizador para procesar una nueva solicitud. Luego me preguntó que el hilo principal no debería bloquearse mientras el usuario interactúa con la pantalla. Le dije que usara GCD y tenemos una larga discusión sobre esto. Estaba satisfecho, fue largo, me ayudó cuando estoy atascado. Luego discutimos sobre la cultura de la empresa, si todavía codifica, cómo comenzó con Hike messenger. Me pidió que esperara otra ronda.
- Hay muchas otras preguntas que no recuerdo.
Esta ronda dura 1:40 horas.
Después de todo esto, estaba muy agotado ya que di todas las preguntas correctamente, esta evaluación continua comenzó a las 10:30 de la mañana.
Eran alrededor de las 5:30 cuando programaron otra ronda de entrevistas.
Ronda 5: El entrevistador escaneó mi currículum, me pidió una breve presentación. Le expliqué los proyectos actuales de mi empresa y los proyectos universitarios. Fue desarrollador backend senior. Comienza a hacerme preguntas sobre Java. Le dije que no podía comunicarme con él desde hace 1,5 años, pero él preguntó.
- Escriba el código para el problema de 1 escritor y n lector. Le dije que podemos usar bloqueos (silencios y semáforos) y le di una solución.
- Me preguntó punteros virtuales, le dije que no me acuerdo.
- Pila vs Memoria Heap. Le di una explicación con un ejemplo.
- Clase Singleton, por qué estamos usando este . No estaba satisfecho con la explicación.
- Hizo preguntas básicas de Java como qué público, privado, por qué hay una sola función principal en Java.
Después de todo, este reclutador me pidió que me fuera y al día siguiente dijeron que la última ronda no fue como se esperaba. No estoy seleccionado. Sugerencias: prepare su entrevista como una colocación universitaria, pueden preguntar cualquier cosa, incluso si no está relacionada con su puesto de contratación.
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