1) La farsa delle app aziendali :
Penso che l'intera cosa dei quadri "Enterprise" sia fumo e specchi. J2EE, .NET, la maggior parte dei framework Apache e la maggior parte delle astrazioni per gestire tali cose creano molta più complessità di quanto non risolvano.
Prendi qualsiasi normale ORM Java o .NET o qualsiasi framework MVC apparentemente moderno per entrambi che fa "magia" per risolvere compiti noiosi e semplici. Finisci per scrivere enormi quantità di brutte targhe XML che è difficile convalidare e scrivere rapidamente. Hai enormi API in cui la metà di queste sono solo per integrare il lavoro delle altre API, interfacce impossibili da riciclare e classi astratte necessarie solo per superare l'inflessibilità di Java e C #. Semplicemente non abbiamo bisogno di gran parte di questo.
Che ne dite di tutti i diversi application server con la loro sintassi maledetta descrittore, i database eccessivamente complessi e i prodotti groupware?
Il punto di ciò non è che complessità == cattiva, è quella complessità non necessaria == cattiva. Ho lavorato in installazioni aziendali di grandi dimensioni dove era necessario in parte, ma anche nella maggior parte dei casi sono necessari pochi script sviluppati in casa e un semplice frontend Web per risolvere la maggior parte dei casi d'uso.
Proverei a sostituire tutte queste app enterprise con semplici framework Web, DB open source e banali costrutti di programmazione.
2) N-anni di esperienza richiesti:
A meno che tu non abbia bisogno di un consulente o un tecnico per gestire un problema specifico relativo a un'applicazione, API o framework, non hai davvero bisogno di qualcuno con 5 anni di esperienza in quell'applicazione. Ciò di cui hai bisogno è uno sviluppatore / amministratore in grado di leggere la documentazione, che abbia conoscenza del dominio in qualunque cosa tu stia facendo e che possa apprendere rapidamente. Se hai bisogno di sviluppare in qualche tipo di linguaggio, uno sviluppatore decente lo prenderà in meno di 2 mesi. Se hai bisogno di un amministratore per il web server X, tra due giorni avrebbe dovuto leggere le pagine man e i newsgroup ed essere al passo con i tempi. Niente di meno e quella persona non vale ciò che viene pagato.
3) Il curriculum comune di laurea in "informatica":
La maggior parte dei diplomi in informatica e ingegneria del software sono tori. Se il tuo primo linguaggio di programmazione è Java o C #, stai facendo qualcosa di sbagliato. Se non ottieni diversi corsi pieni di algebra e matematica, è sbagliato. Se non approfondisci la programmazione funzionale, è incompleta. Se non puoi applicare invarianti di loop a un banale per loop, non valga la pena di essere un presunto scienziato informatico. Se esci con esperienza nelle lingue xey e orientamento dell'oggetto, è pieno di s ***. Un vero informatico vede un linguaggio in termini di concetti e sintassi che utilizza e vede le metodologie di programmazione come una tra le tante e ha una buona comprensione delle filosofie sottostanti sia che la scelta di nuovi linguaggi, metodi di progettazione o linguaggi di specifica dovrebbero sii banale.