He entrevistado a muchas personas de tecnología a lo largo de los años, incluidos muchos programadores de Java. Muchas de las respuestas ya enumeradas tienen buenas preguntas específicas. Sin embargo, lo haría un poco diferente. Mis 5 preguntas tampoco son específicas del lenguaje de programación. Realmente no me importa si responden con Java, PHP, C, Lua o pseudocódigo.
Primero, debe tener la sala de entrevistas preparada. Obtenga una computadora con un IDE y conéctela a un monitor para que los entrevistadores puedan ver. Una computadora portátil es ideal porque el entrevistado tiene su propia pantalla y los entrevistadores pueden ver un monitor grande. Tenga listo el IDE para que el entrevistado pueda sentarse y escribir el código por usted. También tenga algún código para un proyecto en el que el entrevistado probablemente esté listo para trabajar también. También es una buena idea tener una pizarra. Ahora las preguntas …
1. Cuéntame sobre tu proyecto actual o tu proyecto favorito, con el que puedas hablar con la mayor profundidad técnica. (Esto debería ser una discusión de 2 minutos).
- ¿Cuáles son las diferencias entre las versiones de Python 2.4 y 2.7?
- Se le da una matriz de n elementos [1,2, ... .n]. Por ejemplo {3,2,1,6,7,4,5}. Ahora creamos una firma de esta matriz comparando cada par de elementos consecutivos. Si aumentan, escriba I else write D.?
- Programación dinámica (DP): dos jugadores juegan el siguiente juego: eligen un número aleatorio N (menos de 2 mil millones) y luego, a partir de 1, se turnan para multiplicar el número del turno anterior con 2 o 9 (su elección). Quien llegue a N primero gana. ¿Determinar ganador del juego de números 2/9?
- ¿Cómo es una entrevista en Adobe?
- ¿Puedo buscar en Google o buscar recursos en línea durante la entrevista de programación?
2. Tómese unos 10 minutos y demuestre una clase o método rápido que podría crear para ese proyecto utilizando el IDE en la computadora que tiene delante. Puede parecer un poco extraño, pero hable a través de su proceso de pensamiento mientras está codificando. No nos interesa que el código sea 100% correcto, no lo compilaremos ni lo ejecutaremos. Confía en mí, ninguno de nosotros escribe un borrador de código que sea 100% correcto con otras personas respirando por nuestro cuello. 🙂 Tampoco nos interesa saber si conoce los accesos directos para este IDE en particular.
3. ¿Cuáles son algunas formas en que podría mejorar esa clase o método? Puede usar la pizarra o el IDE o lo que sea más natural. (Pase unos 5 minutos aquí).
4. Ahora echemos un vistazo al código que tenemos para un proyecto en el que probablemente estaría trabajando. (En este punto, uno de los entrevistadores debería cambiar al código del proyecto en el IDE). ¿Qué piensa sobre el código? No se preocupe, somos de piel gruesa y el código nos revisamos regularmente. (Esto puede tomar otros 5-10 minutos).
5. ¿Qué preguntas tienes para nosotros? (Probablemente unos 5 minutos, lo que lleva a una entrevista de aproximadamente 30 minutos).
Muchas otras preguntas, como las que menciona Miguel Paraz, surgirán naturalmente de la discusión. El punto es hacer que hablen de algo que saben para que no intenten memorizar preguntas de programación. Hacer que demuestren el código le dirá mucho sobre cómo piensan al codificar. El código no tiene que ser correcto, pero debe ser lógico. Incluso si arruinan completamente la pregunta 2, tienen la oportunidad de redimirse en la pregunta 3. Como dijo Quora User en su respuesta, no es práctico saber todo sobre un idioma todo el tiempo. Hace unos 15 años formé parte de un proyecto que escribió una gran pieza de software empresarial en Java. Hoy probablemente no podría responder demasiadas preguntas técnicas específicas sobre algunas de las cosas que usamos en ese momento, pero sabría dónde buscar si tuviera que construir algo con ellas. Me sentiría perfectamente cómodo burlándose de un código relacionado con el proyecto usando cosas con las que he trabajado más recientemente también.