In un mondo ideale:
In un eccellente articolo Non chiamarti un programmatore, e altro Consigli per la carriera , Patrick McKenzie spiega, tra le altre cose, che il linguaggio non ha importanza:
-
Uno sviluppatore è una persona che risolve problemi, in generale. Uno sviluppatore non è una persona che scrive codice in una lingua specifica.
-
Le aziende non si preoccupano delle lingue che conosci. Se hanno bisogno di assumere uno sviluppatore per un progetto scritto in una lingua specifica e hanno un candidato con esperienza elevata, ma non hanno mai scritto una riga di codice in questa lingua, sarà comunque assunto.
In base alla mia esperienza sia come sviluppatore che come persona che ha dovuto assumere altri sviluppatori, l'osservazione è molto simile:
-
L'esperienza di N anni in Java o N anni di esperienza in C # non ha importanza. Ciò che conta è che il candidato sappia come risolvere i problemi, conosce la differenza tra codice spaghetti e codice pulito con un'architettura ben pensata, ecc.
-
Non mi interessa le lingue che hai usato prima. Per un progetto C #, preferisco assumere uno sviluppatore professionista che ha speso la sua vita scrivendo codice Java, Python e Ruby on Rails piuttosto che un principiante che conosce solo C # e lo conosce male.
-
La conoscenza e l'esperienza acquisite utilizzando una lingua sono per lo più riutilizzabili in qualsiasi altra lingua.
Uno sviluppatore esperto che ha utilizzato Ruby on Rails per lo sviluppo Web e ha trascorso il resto della sua carriera scrivendo applicazioni desktop Java utilizzando Oracle si adatta perfettamente a un progetto ASP.NET MVC utilizzando Microsoft SQL Server. Perché questa persona sa già tutto ciò di cui ha bisogno per questo lavoro , a parte alcune cose specifiche e le differenze di sintassi.
D'altra parte, una persona che ha fatto solo pochi siti Web ASP.NET MVC non si adatta affatto, perché potrebbe non comprendere completamente l'architettura MVC, potrebbe sapere cosa è il profilo SQL e potrebbe non avere qualche altra conoscenza essenziale.
Non dirmi che non sono in grado di risolvere un piccolo problema con un sito Web PHP che utilizza CodeIgniter solo perché non ho mai usato CodeIgniter in precedenza.
In pratica:
In pratica, quando cerco lavori freelance e quando vedo le offerte di lavoro in generale, sono molto specifici della lingua.
Alcuni potrebbero cercare uno sviluppatore PHP con due anni di esperienza in Magento. Gli altri cercheranno una persona con esperienza VB.NET di almeno tre anni e se invii loro un curriculum che menzioni che hai sviluppato C # per sei anni, ma senza menzione di VB.NET, non si preoccuperanno rispondere. Se chiedono una persona con esperienza con Firebird, non ascolteranno i tuoi dieci anni di esperienza con Oracle.
Perché c'è una tale differenza tra la teoria e ciò che Patrick McKenzie e io descriviamo come un buon senso e il mondo reale delle offerte di lavoro?