Actualmente estoy trabajando como pasante de ingeniería de software en IBM. La entrevista realmente depende del puesto / equipo al que se postula.
Por ejemplo, actualmente estoy trabajando en IBM Presence Zones, que es esencialmente WebSphere Commerce, y mi entrevistador hizo más preguntas de comportamiento que técnicas, pero hizo muchas preguntas sobre las experiencias que figuran en mi currículum. (Incluso me pidió que hiciera una demostración de uno de mis proyectos en vivo en su computadora portátil)
Después de mi período con WebSphere Commerce, planeo ir al equipo de Optimización del compilador y me contacté con el gerente de ese departamento. Me dijo que fuera a su oficina para conversar rápidamente sobre los puestos disponibles, y terminó tomando una entrevista puramente técnica de 2 horas haciendo muchas preguntas relacionadas con estructuras de datos, punteros (aritmética de punteros, inversión de listas enlazadas), manipulación de bits y Optimización de código.
- ¿Qué empresas o startups debo solicitar para una pasantía?
- ¿Cómo encontrar el número de subcadenas que son anagramas de palíndromos en una cadena en tiempo lineal?
- Se le da una lista de N intervalos. ¿Encuentra la longitud del subconjunto más grande de intervalos de modo que no haya tres intervalos en el subconjunto que compartan un punto común?
- ¿Cuál es su respuesta completa a la crítica de David Hansson a la codificación de entrevistas?
- ¿Hay una lista de tareas completa que necesito aprender antes de poder escribir 'Conocimiento (puede usar / implementar) de estructuras de datos y algoritmos' en mi currículum?
Tuve una entrevista con amigos para otros puestos (DB2, WAS, etc.) y realmente dependía de la descripción del trabajo, diría. Si la descripción dice que necesita C ++ para el trabajo, revise sus conceptos de programación orientados a objetos y C ++, si dice que necesita tener conocimiento de bases de datos relacionales, revise su SQL y álgebra relacional. Si está entrevistando para compiladores, revise sus trucos de manipulación de bits, estructuras de datos y conceptos de compilador (cuando corresponda, no necesariamente un requisito previo para los puestos de pasantía)
Preparación técnica general:
– estructuras de datos, algoritmos
– métodos de desarrollo de software (ágil, cascada, programación extrema, TDD, etc.)
– conceptos de programación orientados a objetos
– C ++ / Java
– SQL
– conceptos de subprocesamiento múltiple / SO (cuando corresponda, por ejemplo, algunos puestos de DB2)
Si está postulando para puestos de prueba, supongo que sería útil conocer algunos conceptos sobre las pruebas de software (pruebas de regresión, pruebas de verificación funcional, verificación de sistemas y pruebas de integración, seguimiento de defectos, etc.), pero no se preocupe si no duele si no sabes sobre esto en tu entrevista hasta donde yo sé.
Algunos recursos útiles:
– puerta de cristal (preguntas anteriores de la entrevista)
– descifrar la entrevista de codificación (aparentemente buen libro, especialmente para aprender los trucos de manipulación de bits)
Todo esto puede parecer un poco abrumador, pero realmente si tienes buenos fundamentos en informática y tienes buena experiencia en tu currículum, no debería ser difícil conseguir una pasantía.