Nonostante le affermazioni fatte da Joel in quell'articolo - e concede il punto lui stesso - molte delle aree tematiche che potrebbero mancare a una "JavaSchool" non sono necessarie per molti lavori.
Ho partecipato a qualcosa che suppongo che assomigli a una JavaSchool in cui trascorriamo la maggior parte del nostro tempo concentrandoci su linguaggi di alto livello come C # e Java, ma ciò non cambia il fatto che "Algoritmi e strutture di dati" fa ancora parte dell'elenco di classi richiesto, per non parlare di tutte le altre classi orientate alla teoria. Certo, non tutti i "JavaSchools" sono uguali, ma non è questo il punto.
Secondo me, più importante della comprensione di alcuni degli argomenti di sviluppo più grigi è la capacità di risolvere efficacemente i problemi quando sorgono sfide uniche. Come ingegneri del software, facciamo la maggior parte del nostro apprendimento sul lavoro e in quanto tali, due dei più grandi aspetti della nostra descrizione del lavoro sono in grado di risolvere i problemi e di essere in grado di raccogliere concetti non familiari. Se, durante un'intervista, uno non è in grado di fare un tentativo comprensibile e logico per risolvere un problema che è nuovo per loro, allora la loro incompatibilità per una determinata posizione probabilmente si rivelerà.
Ovviamente, quando assumi qualcuno per una posizione che richiede una costante esposizione e l'uso di qualche argomento intricato che potrebbe essere sfuggito a una JavaSchool, è spesso la scelta logica per andare con qualcuno che ha una comprensione precedente, ma la mancanza di esperienza non dovrebbe sempre precludere l'idoneità al lavoro .
Più che probabile, il ragazzo di 50 anni della tua compagnia che è stato lì per tutto il tempo che qualcuno può ricordare non ha avuto alcuna comprensione di Java fino a quando il suo lavoro (attuale o precedente) gli ha chiesto di impararlo - e lui fatto così. 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 di qualsiasi 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 un concetto, non significa che non è disposto o incapace di apprenderlo. Infatti, se non sono disposti a imparare, probabilmente non appartengono a nessun lavoro - molto meno ai tuoi.
È giusto dire 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 caratteristiche personali molto più importanti del solo dove qualcuno andava a scuola.
È nostra attitudine affrontare un problema e trovare una soluzione che ci definisce come ingegneri, la maggior parte di tutto il resto è secondario.