A pesar de las afirmaciones hechas por Joel en ese artículo, y él mismo lo admite, muchas de las áreas temáticas que una "Escuela Java" puede pasar por alto no son necesarias para muchos trabajos.
Asistí a algo que supongo que se parece a una JavaSchool en la que pasamos la mayor parte de nuestro tiempo enfocándonos en lenguajes de alto nivel como C # y Java, pero eso no cambia el hecho de que "Algorithms & Data Structures" todavía es parte de la lista de clases requerida - sin mencionar todas las otras clases orientadas a la teoría. Por supuesto, no todas las "JavaSchools" son iguales, pero ese no es el punto.
En mi opinión, más importante que comprender algunos de los temas más complejos del desarrollo es poder resolver problemas de manera efectiva cuando surgen desafíos únicos. Como ingenieros de software, hacemos la gran mayoría de nuestro aprendizaje en el trabajo y, como tal, dos de los aspectos más importantes de nuestra descripción del trabajo son la resolución de problemas y la capacidad de captar conceptos desconocidos. Si, durante una entrevista, uno no puede hacer un intento discernible y lógico para resolver un problema que es nuevo para ellos, entonces su incompatibilidad para un puesto dado probablemente se revelará.
Obviamente, cuando se contrata a alguien para un puesto que requiere una exposición constante y el uso de algún tema intrincado que una escuela Java puede pasar por alto, a menudo es la opción lógica ir con alguien que tiene una comprensión previa, pero la falta de experiencia no debería siempre excluye la elegibilidad laboral .
Lo más probable es que el chico Java de 50 años en su empresa que ha estado allí durante el tiempo que nadie pueda recordar no entendía Java hasta que su trabajo (actual o anterior) le pidió que lo aprendiera, y lo hizo. Hablando estrictamente, es una mala práctica despedir al "viejo" para que un candidato más joven y "actualizado" pueda tomar su lugar; Dicho esto, si la descripción del trabajo para cualquier empleado joven o viejo cambia, es responsabilidad de ese empleado quedar atrapado o encontrar un nuevo trabajo. El hecho de que un individuo (especialmente un programador con experiencia pasada) no entienda algún concepto, no significa que no esté dispuesto o sea incapaz de aprenderlo. De hecho, si no están dispuestos a aprender, probablemente no pertenezcan a ningún trabajo , mucho menos al suyo.
Es justo decir que algunas "JavaSchools" son mejores que otras, y ese hecho ciertamente debe considerarse al seleccionar un candidato para un puesto, pero hay rasgos personales mucho más importantes que solo el lugar donde alguien fue a la escuela.
Es nuestra aptitud abordar un problema y encontrar una solución que nos defina como ingenieros, casi todo lo demás es secundario.