Nonostante le affermazioni fatte da Joel in quell'articolo - e ammette lui stesso il punto - molte delle aree tematiche che possono essere perse da una "JavaSchool" non sono necessarie per molti lavori.
Ho partecipato a qualcosa che suppongo assomigli a una JavaSchool in quanto passiamo la maggior parte del nostro tempo a concentrarci su linguaggi di alto livello come C # e Java, ma ciò non cambia il fatto che "Algorithms & Data Structures" fa ancora parte dell'elenco di classi richiesto - per non parlare di tutte le altre classi orientate alla teoria. Concesso che non tutti "JavaSchools" sono uguali, ma non è questo il punto.
Secondo me, più importante della comprensione di alcuni dei più grossi argomenti di sviluppo è la capacità di risolvere i problemi in modo efficace quando sorgono sfide uniche. Come ingegneri del software facciamo la stragrande maggioranza del nostro apprendimento sul lavoro e, come tale, due dei più grandi aspetti della nostra descrizione del lavoro sono in grado di risolvere problemi e essere in grado di raccogliere concetti non familiari. Se, durante un'intervista, non si è in grado di compiere un tentativo logico e logico di risolvere un problema che è nuovo per loro, allora la loro incompatibilità per una data posizione probabilmente si rivelerà.
Ovviamente, quando si assume qualcuno per una posizione che richiede una costante esposizione e l'utilizzo di alcuni argomenti complessi che potrebbero non essere presenti in una JavaSchool, è spesso la scelta logica andare con qualcuno che abbia una comprensione precedente, ma la mancanza di esperienza non dovrebbe precludere sempre l' idoneità al lavoro .
Molto probabilmente, il ragazzo Java di 50 anni nella tua azienda che è stato lì per tutto il tempo che chiunque può ricordare non ha avuto alcuna comprensione di Java fino a quando il suo lavoro (attuale o precedente) non gli ha chiesto di impararlo - e lo ha fatto. A rigor di termini, è una cattiva pratica licenziare "il vecchio" in modo che un candidato più giovane e più "aggiornato" possa prendere il suo posto; detto questo, se la descrizione del lavoro per un dipendente giovane o vecchio cambia, è responsabilità di quel dipendente farsi prendere o trovare un nuovo lavoro. Solo perché un individuo (specialmente un programmatore con esperienza passata) non capisce alcuni concetti, non significa che non siano disposti o incapaci di impararlo. In effetti, se non sono disposti a imparare, probabilmente non appartengono a nessun lavoro , tanto meno al tuo.
È corretto affermare che alcuni "JavaSchools" sono migliori di altri, e questo fatto dovrebbe certamente essere preso in considerazione quando si seleziona un candidato per una posizione, ma ci sono tratti personali molto più importanti di quelli in cui qualcuno è andato a scuola.
È nostra attitudine affrontare un problema e trovare una soluzione che ci definisce ingegneri, quasi tutto il resto è secondario.