Adobe Interview Experience (Adobe para mujeres)

Recientemente concedí una entrevista a Adobe para el puesto de MTS 1 (Miembro del Personal Técnico 1). Antes de comenzar a describir mi experiencia, me gustaría que los lectores sepan que el resultado fue positivo y que muy pronto me uniré a Adobe. Habiéndome referido a experiencias de entrevistas en GFG para la preparación de entrevistas, siempre las he encontrado muy útiles y me encantaría contribuir. 

Una organización externa, responsable de conectar a estudiantes brillantes con empresas técnicas líderes, vino a nuestra universidad para las rondas preliminares del proceso de contratación de Adobe. Esto fue en el marco del programa «Adobe para mujeres» de Adobe y, por lo tanto, solo las codificadoras eran elegibles para postularse. Los estudiantes que ya estaban en las mejores empresas con paquetes de pago alto fueron llamados directamente para entrevistas, mientras que otros tuvieron que realizar una prueba de codificación en línea (2 horas, 15 MCQ de aptitud, 2 preguntas de codificación). Yo fui uno de los que consiguió una entrevista directa. 

Las entrevistas se llevaron a cabo en la oficina de Adobe en Noida. Hubo 3 rondas de entrevistas técnicas F2F, seguidas de una ronda telefónica de recursos humanos. Cada ronda fue una ronda de eliminación y nos puso a prueba principalmente en estructuras de datos y algoritmos, con algunas preguntas sobre sistemas operativos. En cada ronda, estábamos marcados en nuestra lógica, codificación, DS y OS , con todos los parámetros teniendo el mismo peso. Me llamaron el día 1 (de 20 tal vez) de entrevistas, al igual que otras 54 chicas de diferentes universidades. Al final de este día, solo 2 de nosotros recibimos ofertas. 

  

Ronda 1 (Técnico-F2F):  esta fue la ronda más larga y desafiante (tal vez para filtrar el máximo de candidatos en la primera ronda). Mi primera ronda técnica duró alrededor de 80-90 minutos. Comenzó con una breve introducción, seguida de estas preguntas: 
 

  1. https://www.geeksforgeeks.org/find-maximum-possible-stolen-value-houses/  (También tuve que escribir el pseudocódigo)
  2. https://practice.geeksforgeeks.org/problems/next-larger-element-1587115620/1  (pregunta similar redactada de manera diferente: se dan las temperaturas diarias, para cada día, devuelva la cantidad de días después de los cuales el próximo aumento en se ve la temperatura. También se le pidió que codificara toda la solución).
  3. https://www.geeksforgeeks.org/external-sorting/  (Archivo grande para ordenar, demasiado menos RAM. Sugiera una forma de ordenar todo el archivo con la RAM limitada. Solo se solicitó una solución verbal. No se solicitó codificar .)
  4. https://practice.geeksforgeeks.org/problems/burning-tree/1  (La misma pregunta, solo tenía que dar el tiempo que tardaría todo el árbol en arder si el fuego tarda 1 segundo por borde en propagarse. ¿No fue así? No se pide código, solo solución verbal.)
  5. Dado un directorio telefónico (contactos ordenados alfabéticamente) que es demasiado grande para caber en la memoria RAM, sugiera un algoritmo de búsqueda optimizado para recuperar rápidamente los contactos. Solución que di: dividir el directorio telefónico en bloques de tamaño = tamaño de RAM. Cargue cada bloque en la RAM uno por uno, verifique la última entrada en cada bloque y compare la primera letra de la entrada con la primera letra del contacto que está buscando. Si el alfabeto de entrada es <alfabeto de contacto, busque en el siguiente bloque. Continúe hasta el alfabeto de entrada>=alfabeto de contacto. Una vez que se alcance esta condición, aplique la búsqueda binaria en este bloque para encontrar el contacto. Manejar casos de esquina como última entrada = contacto, contacto no encontrado, etc.
  6. ^La misma pregunta cambió a varios contactos en búsqueda. Sugerí que mantuviéramos una array con 26 índices. Cada índice de array almacenará la dirección de inicio de ese alfabeto en particular utilizando la solución sugerida anteriormente. p.ej. array[0] almacenará la dirección de inicio del alfabeto A en el directorio, array[1] para B y así sucesivamente. De esta manera, dado el contacto a buscar y el tamaño de la memoria RAM, puede consultar la array y saber el número de bloque en el que encontrará su contacto. La misma solución se puede optimizar aún más tomando una array 2D (array 26*26) para almacenar las direcciones de inicio de AA, AB, AC, etc. De manera similar, también se puede tomar una array 3D para almacenar los primeros tres alfabetos si es necesario reducir aún más el tiempo de búsqueda (a costa del espacio).
  7. Preguntas de OS y OOP: ¿Qué son las funciones virtuales? ¿Qué es una función virtual pura? Diferenciar entre fragmentación interna y externa.

Me quedé atascado en un par de lugares, pero pude recuperarme fácilmente cuando el entrevistador me dio pistas. Más del 75% de los candidatos fueron devueltos después de la Ronda 1. Después de una espera de apenas 10 minutos, me dijeron que tendría una segunda ronda. 

  

Ronda 2 (Técnica-F2F):. Esta fue la ronda más corta, fácil y directa. Había exactamente 3 preguntas de codificación y se me pidió que escribiera el código para cada una de ellas después de dar una solución y optimizarla al máximo posible. Las preguntas fueron las siguientes: 
 

  1. https://www.google.com/amp/s/www.geeksforgeeks.org/connect-nodes-at-same-level/amp/ (Asigne punteros hermanos correctos en un árbol binario desequilibrado).
  2. https://practice.geeksforgeeks.org/problems/combination-sum-1587115620/1  (Se le pidió además que modificara la solución anterior para considerar solo elementos distintos en una combinación).
  3. Dada una clase de pila estándar con solo funciones push y pop, implemente una clase MyStack con funciones push, pop y peek. Cada función de la clase MyStack puede usar un máximo de una función de la clase Stack original. La solución que sugerí fue agregar 2 variables privadas más a la clase MyStack: top y isValid. Para peek(), primero verifique si isValid()==true. En caso afirmativo, regrese arriba (será necesario en caso de que haya dos picos consecutivos); si no, saca de la pila, guárdalo en la parte superior. Establezca isValid en verdadero y luego regrese arriba. Para pop(), primero verifique si isValid()==true. En caso afirmativo, significa que el elemento ya se ha extraído anteriormente. Así que establezca isValid=false (porque el elemento superior tiene que ser reventado, por lo que ya no forma parte de la pila) y regrese a la parte superior. Si no, llama a pop() desde Stack. Para push(x), verifique si isValid==true. En caso afirmativo, primero presione (arriba), luego presione (x), luego establezca isValid=false. De lo contrario, simplemente llame a push(x) desde la clase Stack.

Esta entrevista duró 30 minutos. No me quedé atascado en esta ronda, ni necesité ninguna pista, por lo que quizás no se hicieron más preguntas y me llamaron para mi tercera ronda técnica de inmediato. Solo 5 candidatos del día 1 calificaron para la última ronda técnica. 

  

Ronda 3 (Técnica-F2F):  esta ronda duró de 40 a 50 minutos y tenía preguntas de varios temas diferentes. Esta entrevista fue realizada por un empleado sénior de Adobe del nivel gerencial, por lo que tenía muy buenos conocimientos. Para empezar, me preguntaron sobre mis proyectos que había mencionado en mi CV. Resultó que mi entrevistador estaba trabajando en el mismo campo en el que yo tenía mi proyecto, por lo que parecía realmente interesado en el trabajo que había hecho. También me preguntaron muchos detalles técnicos sobre el mismo. Al final de esta discusión de 10 minutos, pareció impresionado con mis respuestas y sugirió que publicara un artículo sobre mi trabajo. Este fue un buen comienzo para la entrevista. Esto fue seguido por algunas preguntas sobre DS, DP, manipulación de bits y OS: 
 

  1. https://practice.geeksforgeeks.org/problems/count-all-possible-paths-from-top-left-to-bottom-right3011/1  (Se me pidió que proporcionara el pseudocódigo)
  2. ^ Múltiples variaciones en la misma pregunta, por ejemplo. todas las celdas con i*j=número impar están bloqueadas, encuentre la ruta ahora.
  3. https://stackoverflow.com/questions/33684970/print-2-d-array-in-clock-expanding-spiral-from-center  (Solo en sentido contrario a las agujas del reloj, en lugar de en el sentido de las agujas del reloj. Además, la array dada podría ser rectangular, por lo que también tuvo que encargarse de los casos en los que al final quedan filas/columnas. Estos también tenían que imprimirse en orden. Se le pidió que codificara correctamente toda la solución).
  4. https://practice.geeksforgeeks.org/problems/x-xor-a-is-minimum-and-set-bits-in-xb/0/
  5. ^Variación de esto. Dados A y B, devuelve X tal que X tiene el mismo número de bits establecidos que B y es justo mayor que A, es decir, el siguiente número más alto posible con el mismo número de bits establecidos que en B.)
  6. Explicar el modo dual en el sistema operativo. Explique el significado de cada modo.

  

Como se estaba haciendo tarde, nos pidieron que nos fuéramos a casa y nos dijeron que nos informarían de las siguientes rondas, si las había. Al día siguiente, yo (y otro candidato) recibimos una llamada de Recursos Humanos, informándome que había superado todas las rondas técnicas.

Esta llamada supuestamente era mi ronda de Recursos Humanos (Ronda 4) , que no era una ronda de eliminación, como me informaron. Sin embargo, HR dijo que no garantizaba mi selección, ya que también tendrían que encontrar un equipo adecuado para mí. Esta llamada duró 40 minutos y fue más una discusión sobre mi personalidad y preferencias que una entrevista. Me dieron varios escenarios diferentes y me preguntaron cómo reaccionaría y qué haría en tales situaciones. También me preguntaron si era un tomador de riesgos y si estaba más inclinado hacia la investigación que al desarrollo de software. También estaban interesados ​​en saber por qué estaba dispuesto a renunciar a mi otra oferta por Adobe. 

Aproximadamente 10 días después de esta entrevista (una espera larga y ansiosa), recibí un correo electrónico de RH confirmando mi selección (el otro candidato también fue seleccionado). Dentro de 2 meses, me uniré a Adobe en el puesto de MTS1 (Desarrollo de productos, específicamente), en el equipo de Document Cloud. 

  

¡Espero que esto ayude! 🙂 

  

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *