In un mondo ideale:
In un eccellente articolo Non definirti un programmatore e altri consigli sulla carriera , Patrick McKenzie spiega, tra le altre cose, che la lingua non ha importanza:
Uno sviluppatore è una persona che risolve i problemi, in generale. Uno sviluppatore non è una persona che scrive codice in una lingua specifica.
Alle aziende non interessano le lingue che conosci. Se hanno bisogno di assumere uno sviluppatore per un progetto scritto in una lingua specifica e hanno un candidato che ha molta esperienza ma non ha mai scritto una riga di codice in questa lingua, verrebbe comunque assunto.
Secondo la mia esperienza sia come sviluppatore che come persona che ha dovuto assumere altri sviluppatori, l'osservazione è molto simile:
L'esperienza N anni in Java o N anni esperienza in C # non ha importanza. Ciò che conta è che il candidato sappia come risolvere i problemi, sappia la differenza tra codice spaghetti e codice pulito con un'architettura ben ponderata, ecc.
Non mi importa delle lingue che hai usato prima. Per un progetto C #, preferirò assumere uno sviluppatore professionista che ha trascorso la sua vita a scrivere codice Java, Python e Ruby on Rails piuttosto che un principiante che conosce solo C # e lo conosce male.
Le conoscenze e l'esperienza acquisite utilizzando una lingua sono riutilizzabili principalmente 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 a scrivere applicazioni desktop Java utilizzando Oracle, si adatta perfettamente a un progetto ASP.NET MVC utilizzando Microsoft SQL Server. Perché questa persona conosce già tutto ciò di cui ha bisogno per questo lavoro , a parte alcune cose specifiche e differenze di sintassi.
D'altra parte, una persona che ha realizzato solo alcuni piccoli siti Web ASP.NET MVC non si adatta affatto, perché potrebbe non comprendere completamente l'architettura MVC, potrebbe sapere cos'è la profilazione SQL e potrebbe mancare qualche altro elemento essenziale conoscenza.
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 prima.
In pratica:
In pratica, quando cerco lavori freelance e quando vedo le offerte di lavoro in generale, sono molto specifiche della lingua.
Alcuni sarebbero alla ricerca di uno sviluppatore PHP con due anni di esperienza in Magento. Altri cercheranno una persona con esperienza VB.NET di almeno tre anni e se invii loro un curriculum che menziona che hai fatto lo sviluppo di C # per sei anni, ma senza menzionare VB.NET, non si preoccuperanno rispondere. Se chiedono una persona con un'esperienza con Firebird, non ascolteranno la tua esperienza decennale con Oracle.
Perché esiste una tale differenza tra la teoria e ciò che Patrick McKenzie e io descriviamo come buonsenso e il mondo reale delle offerte di lavoro?
<rant>...</rant>
. Seriamente, c'è una vera domanda qui?
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.
Mentre sei perfettamente in grado di risolvere il problema, se la causa principale è CodeIgniter (una delle poche stranezze del framework, o uno dei suoi numerosi bug aperti), ci vorrà molto più tempo per risolvere il problema.