1) La farsa de aplicaciones comerciales :
Creo que todo el marco de trabajo "Enterprise" es humo y espejos. J2EE, .NET, la mayoría de los marcos de Apache y la mayoría de las abstracciones para administrar tales cosas crean mucha más complejidad de la que resuelven.
Tome cualquier Java ORM regular o .NET, o cualquier marco MVC supuestamente moderno para cualquiera que haga "magia" para resolver tareas tediosas y simples. Terminas escribiendo enormes cantidades de repetitivo XML feo que es difícil de validar y escribir rápidamente. Tiene API masivas donde la mitad de ellas son solo para integrar el trabajo de las otras API, interfaces que son imposibles de reciclar y clases abstractas que solo se necesitan para superar la inflexibilidad de Java y C #. Simplemente no necesitamos la mayoría de eso.
¿Qué hay de todos los diferentes servidores de aplicaciones con su propia sintaxis de descriptor, la base de datos demasiado compleja y los productos de groupware?
El punto de esto no es esa complejidad == mala, es esa complejidad innecesaria == mala. He trabajado en instalaciones empresariales masivas en las que era necesario, pero incluso en la mayoría de los casos, todo lo que se necesita para resolver la mayoría de los casos de uso es solo unos pocos scripts locales y una interfaz web simple.
Intentaría reemplazar todas estas aplicaciones empresariales con marcos web simples, bases de datos de código abierto y construcciones de programación triviales.
2) Los n años de experiencia requeridos:
A menos que necesite un consultor o un técnico para manejar un problema específico relacionado con una aplicación, API o marco, entonces realmente no necesita a alguien con 5 años de experiencia en esa aplicación. Lo que necesita es un desarrollador / administrador que pueda leer la documentación, que tenga conocimiento de dominio en lo que sea que esté haciendo y que pueda aprender rápidamente. Si necesita desarrollar algún tipo de lenguaje, un desarrollador decente lo recogerá en menos de 2 meses. Si necesita un administrador para el servidor web X, en dos días debería haber leído las páginas man y los grupos de noticias y estar al día. Algo menos y esa persona no vale lo que le pagan.
3) El currículo común de titulación de "informática"
La mayoría de las carreras de ciencias de la computación e ingeniería de software son toro. Si su primer lenguaje de programación es Java o C #, entonces está haciendo algo mal. Si no obtienes varios cursos llenos de álgebra y matemáticas, está mal. Si no profundiza en la programación funcional, está incompleta. Si no puede aplicar invariantes de bucle a un bucle trivial para bucle, no vale la pena como supuesto científico de la computación. Si sale con experiencia en lenguajes x e y y orientación a objetos, está lleno de s ***. Un verdadero científico de la computación ve un lenguaje en términos de los conceptos y sintaxis que usa, y ve las metodologías de programación como una entre muchas, y tiene una comprensión tan buena de las filosofías subyacentes de ambos que elegir nuevos lenguajes, métodos de diseño o lenguajes de especificación debería sé trivial