La entrevista de trabajo que ya me resigno a no pasar
Quizás sólo me pase a mí, pero llevo años observando cómo los recién licenciados, aquellos que buscan su primer trabajo en el mundo del software, vienen mucho menos preparados. Y año que pasa… la cosa va a peor.
Por supuesto no hay generalizar, y puede ser casualidad mía, pero es que en estos últimos años la cosa llega hasta que, en las entrevistas de trabajo, ya apenas hago preguntas técnicas… porque nadie es capaz de contestarlas. Y si hay que seleccionar a alguien, la elección se acaba basando en la posible capacidad de aprendizaje del candidato (y no en los conocimientos actuales).
Algunos estaréis pensando que “menudas preguntas técnicas serán esas”. “Serán súper difíciles”. Puede ser. Esto siempre es algo subjetivo. Pero no me resigno a ver normal que un recién licenciado en informática no sepan cosas como:
- ¿Qué es una arquitectura en 3 capas y qué tecnologías / lenguajes son más apropiados para cada capa?
- ¿Qué diferencia hay entre una asociación entre clases y una relación de herencia? ¿Conoces algún patrón de diseño?
- ¿Qué tipos de pruebas conoces?
- ¿Me puedes decir un par de ciclos de vida software?
- O ya cosas del tipo… ¿Cuál es el último libro técnico que leíste? (la respuesta más frecuente es ninguno)
Y eso que las anteriores son ya preguntas de nivel, creo, no muy alto.
A modo de anécdota, que ya parece va a quedar para el recuerdo, y por ello, para que no se olvide, he querido escribir este post, no hace muchos años, cuando trabaja en empresas de desarrollo, algunos compañeros fuimos creando un conjunto de preguntas básicas para seleccionar candidatos. En aquellos tiempos un porcentaje importante de candidatos pasaba la entrevista, hoy ya ni me molesto en pasarla. Este es un pequeño extracto:
- ¿Qué es la trazabilidad entre productos del ciclo de vida software? ¿cómo mantendrías, por ejemplo, la trazabilidad entre requisitos y casos de prueba?
- ¿Qué es un riesgo en gestión de proyectos software? ¿algún ejemplo? ¿Puedes decirnos métodos de estimación? (hoy la mayoría de candidatos no responde nada aquí)
- ¿Qué buscarías en una inspección de código? (hoy la mayoría de candidatos no sabe qué es una inspección de código)
- ¿Puedes decirnos malas prácticas de programación o diseño en un programa Java o en otro lenguaje OO? (idem, la mayoría no responde nada)
- ¿Cuándo (en qué fase del ciclo de vida) pueden empezar las pruebas? ¿Cómo harías/diseñarías de la mejor manera la prueba unitaria de un objeto/clase si dicha clase tiene una asociación con otra? ¿cómo sacarías casos de prueba de un caso de uso?
- ¿Puedes decirnos qué métricas conoces? ¿Qué es la complejidad ciclomática? ¿Qué significa que sea alta?
- ¿Has trabajado con alguna herramienta de control de versiones? ¿Qué es una línea base? (os soprendería saber el número de candidatos que nunca han trabajado con una herramienta de control de versiones)
- ¿Qué son las formas normales?
- ¿Puedes escribir el caso de uso de este requisito?
Como habréis podido ver, las anteriores están dentro de lo que yo considero “cultura general” del desarrollo software, nada especializado, no entro ya en preguntar metodologías concretas, modelos de procesos concretos, tecnologías concretas o similar.
El cuestionario anterior es más extenso, y he dejado una última pregunta por si alguien se atreve a contestarla (esta o las anteriores)… Si sólo nos fijamos en optimizar al máximo la mantenibildiad del siguiente diseño ¿qué cambios propondrías?
10 Respuestas to “La entrevista de trabajo que ya me resigno a no pasar”
Trackbacks/Pingbacks
- Bitacoras.com - Información Bitacoras.com...Valora en Bitacoras.com: Quizás sólo me pase a mí, pero llevo años observando cómo los recién licenciados, aquellos que ...
- Lo que le contaría a Dijkstra: cierto, si necesitas un buen desarrollador, ante todo, que sea humilde - Javier Garzás, sobre calidad software y otros temas relacionados - [...] una opinión sobre un equipo de desarrollo, etc., además de unos mínimos técnicos (p.e. te dejo aquella entrevista que ...
- 5 reflexiones que te ayudarán a comprender el sector tecnológico español… y a orientar mejor tu carrera profesional - Javier Garzás | Javier Garzás - [...] 5 – Y, por último, por si algunos de los anteriores te han preocupado, por si no quieres acabar ...





Creo que lo pondré como motivación en la presentación de la asignatura de Ingeniería del Software
Muy buen post!
Un abrazo
Cuando coincidimos profesionalmente, te escuché un día hacer una pregunta de las buenas en una entrevista que tuvo moda que hacer juntos. El candidato no contestó (2003). No podría decir si la media es o no peor, pero la pregunta sigue siendo un hit para saber si se ha leído y comprendido. La pregunta era “Dime la diferencia entre una clase abstracta y un interfaz”
Buen post. Un abrazo.
Gracias David. Que tiempos aquellos!
A ver si nos vemos
Hola Javier, interesante el post. Esto también debe servir de referencia a los estudiantes y profesionales del software y ver cuántas de las preguntas listadas las responden.
Saludos.
Yo estudié la técnica (Sistemas) y no te abría respondido a ninguna pregunta, sin embargo esta año que he hecho el grado especialidad en ingeniería del software y te las respondía todas. Y si no hubiera elegido ese itinerario probablemente pocas hubiera respondido dado que las respuestas a estas preguntas las he obtenido en asignaturas especificas de mi itinerario. Como están organizados en muchas universidades los planes de estudios es muy normal encontrarse conque jamás han oído hablar de nada de eso (no es que no recuerden si no que jamás lo estudiaron)
Yo llevo más de 20 años trabajando en la industria del software. He observado que la gente es “buena” en el dominio de una tecnología o de un entorno de manera aislada, pero desconoce muchas de las cuestiones que se plantean en el post, no comprende las interrelaciones entre las diferentes piezas de un proyecto que marcan la diferencia entre el éxito o el fracaso del mismo.
En mi opinión, ni la carrera universitaria de informática, ni la FP ni los variopintos másters y posgrados preparan para la realidad de la profesión. Hay materias obligatorias que no tienen posterior aplicación (¿Física, Algebra, Estadística?) y en cambio faltan muchas otras de aplicación diaria.
El tema de la normalización de bases de datos es seguramente el más grave. Por su desconocimiento, se diseñan bases de datos sin ton ni son, con nefastas consecuencias en tiempo de respuesta, deadlocks, escalabilidad, mantenimiento evolutivo, etc.
También hay un analfabetismo casi total en el tema de diseño de juegos de pruebas y de tipos de pruebas.
Ya ni hablamos del desconocimiento de las etapas a seguir en un proyecto de software o de como hacer un buen diseño técnico.
Es correcto y terrible lo que cuentas, pero más terrible es que gente que dice que tiene 10 ó 20 años de experiencia y lo sabe todo, no tiene ni pajolera idea de responder a ninguna de esas preguntas (sean ingenieros informáticos o no).
Lo del último libro leído, ya es suficiente para saber que clase de persona es, en mi opinión.
Saludos.
Y lo que es peor: en demasiadas ocasiones no saben (o no están acostumbrados) a pensar, lo cual merma mucho la capacidad de aprendizaje y de resolución de problemas. Pero creo que, si bien ellos (los recién licenciados) son los mayores perjudicados, no son los máximos responsables, lo somos la sociedad en su conjunto. Algo estamos haciendo muy mal para que se esté desperdiciando tanto potencial.
Un abrazo. Dácil.
Muy buen post. De las decenas de entrevistas que he hecho, sólo hice una con preguntas parecidas a las que comentas. Por suerte, acababa de terminar un curso online de UML y me pude defender un poco, aunque la verdad es que me pillo con alguna de ellas (no recordaba que era el Round Robin…) y me saco los colores pero bueno, al final me dijo que tenía una buena base.
Intentaré repasar/estudiar tus preguntas para estar un poco más preparado
Un buen libro para aprender en desarrollo de software?? me acabe uno de J2EE…gracias!