Hay muchas razones para esto. Sé que la gente piensa que una de las razones es porque la industria se mueve mucho. Estoy en desacuerdo. La mayoría de las entrevistas realmente evalúan el conocimiento de algoritmos fundamentales, conceptos básicos y habilidades para resolver problemas. Estas cosas no cambian con la industria.
Las empresas que preguntan cosas específicas que cambian con la industria (es decir, características del lenguaje, API específicas, etc.) generalmente son empresas de mierda sin talento interno de todos modos. La razón es porque estas cosas se pueden recoger muy rápidamente en el trabajo. Las ideas fundamentales, sin embargo, no pueden.
Aparte de eso, aquí hay una lista de razones en las que puedo pensar:
- ¿Qué hace un oficial de ingeniería naval en la Armada india en sus días de trabajo regulares?
- ¿Qué candidato presidencial de los Estados Unidos podría hacer el mejor trabajo explicando la computación cuántica?
- ¿Qué es, 'Calificado para elección como miembro de la Casa del Pueblo?' ¿Significa esto que ya eres miembro de Lok Sabha?
- ¿Qué puede hacer una persona multilingüe para ganarse la vida?
- Si usted es un empleador, ¿qué buscaría en un diseñador de interfaz de usuario de nivel de entrada?
1 – No existe una prueba estándar para calificar a los ingenieros de software. Por ley, tenemos la barra. Para los médicos, opto, etc., existe el examen de la junta y los requisitos de crédito CE. La licencia de piloto requiere que tome horas escritas, prácticas y que tenga suficiente experiencia documentada. No existe tal cosa para los ingenieros de software. Joe Schmoe, que pasa un fin de semana aprendiendo Javascript, puede afirmar que es un ingeniero de software. La única forma de saberlo es mediante una prueba.
2 – La ingeniería de software y la ingeniería en general requieren un conjunto de habilidades ligeramente diferente al de la mayoría de las otras profesiones. Realmente no se puede obtener simplemente conociendo mucha información. Por esta razón, también es difícil hacerse una prueba como en el n. ° 1. Esta es la razón por la cual las empresas intentaron ser creativas con el proceso de la entrevista (por ejemplo, pelotas de ping pong en un autobús o qué tan grande es la pregunta tipo torre Eiffel). El objetivo es poner a prueba tus habilidades para resolver problemas. La mayoría de estos fallan miserablemente, pero supongo que no puede hacer daño intentarlo.
3 – Grados y GPA ayudan, pero perjudica injustamente a los buenos ingenieros (es decir, genera muchos falsos negativos). Alguien con un BS en CS del MIT es definitivamente un buen ingeniero de software, pero alguien sin ningún título también puede ser tan bueno, si no mejor, ingeniero. La última persona puede no tener los $, los medios o la inclinación para ir al MIT. Debido a que las demandas de ingenieros son altas, todo buen ingeniero cuenta, por lo que disminuir los falsos negativos es algo bueno, de ahí la prueba.
4 – La variación en el tipo de cosas que hacen los ingenieros de software es mayor que cualquier otra profesión. Alguien que piratea Javascript para un sitio web todo el día es un ingeniero de software. Alguien que desarrolla software de simulación de dinámica de fluidos también es ingeniero de software. Incluso afirmar tener 10 años de experiencia con el software de simulación de dinámica de fluidos tampoco es lo suficientemente específico. ¿Escribiste el software de simulación real? ¿Acabas de llamar a una biblioteca? He visto (y entrevisté) a tantos ingenieros de software que afirman ser expertos en visión por computadora que simplemente saben cómo hacer varias cosas usando OpenCV, sin conocer las teorías detrás de ninguna de esas cosas. Incluso con un título muy específico como ingeniero de software de visión por computadora, todavía hay una gran variación en el conjunto de habilidades. ¿Cómo puedes ver de qué tipo? ¡prueba!
5 – Esta es una nueva tendencia, pero los ingenieros de software tienden a embellecer sus hojas de vida con palabras clave. Puede culpar mucho de esto a los reclutadores perezosos. Por esta razón, la única forma de saber si un ingeniero de software realmente conoce, en profundidad, el material que figura en su currículum es mediante una prueba.
6 – Práctica de reclutamiento elitista. A veces, las pruebas ridículas también se utilizan como una herramienta de marketing para atraer a buenos ingenieros. ¿Qué sucede cuando las ridículas preguntas de la entrevista de la compañía X aparecen en las noticias? Más buenos ingenieros con gran ego aplican … solo para presumir (mi pene de codificación es más grande que la mentalidad tuya).
En una nota no relacionada, el problema, sin embargo, es que la variación en el pago no coincide con la variación en el conjunto de habilidades. Algunos afirman que la diferencia en productividad entre un ingeniero de software bueno y uno malo es de hasta 10 veces (Orígenes de 10X: ¿Qué tan válida es la investigación subyacente?). El pago absolutamente no coincide. Un ingeniero de software de mierda probablemente gana 80k. ¿Cuándo ves a un buen ingeniero haciendo 800k?
Debido a este desajuste en la variación, mucha gente (que realmente no tiene nada que ver con el software) ingresa a la profesión por dinero. Esta es otra razón para la prueba (# 7).