Se lavoro come sviluppatore in una lingua (ad es. Java) e mi spingo fino a Senior Developer, ciò mi qualificherebbe come Senior Developer per una posizione che utilizza un'altra lingua (ad esempio Ruby)?
Se lavoro come sviluppatore in una lingua (ad es. Java) e mi spingo fino a Senior Developer, ciò mi qualificherebbe come Senior Developer per una posizione che utilizza un'altra lingua (ad esempio Ruby)?
Risposte:
Il modo migliore per rispondere a questo è guardare quale sia la differenza tra uno sviluppatore e uno sviluppatore senior. Supponendo che non sia solo una cosa utile, in genere mi aspetto che gli sviluppatori e gli sviluppatori senior siano in grado di:
Inoltre, mi aspetto che uno sviluppatore senior:
Quindi, la domanda diventa allora soddisfare i criteri estesi per la tua seconda (o terza o quarta) lingua? Suggerirei che fintanto che sei tecnicamente abbastanza competente nella lingua in cui ti stai trasferendo, sì, poiché la maggior parte delle cose dello sviluppatore senior tende ad essere trasferibile.
Puoi candidarti per qualsiasi posizione presso qualsiasi azienda che ti piace, indipendentemente dal tuo stato attuale.
Spetterà a te dimostrare nel tuo CV / lettera di presentazione / colloquio che sei l'uomo giusto per il lavoro.
Cerco le seguenti qualità quando ho intervistato Sr. Developers.
Ci sono una miriade di altre cose che cerco, ma questi sono i punti principali.
Mentre ho raccomandato di assumere Sr. Developers che non erano esperti nella lingua usata al lavoro, erano esperti in lingue simili.
Potresti candidarti, ma almeno se stavo facendo l'assunzione, potrei o meno assumerti.
L'anzianità riguarda (almeno) due aree. Competenza di sviluppo generale e competenza linguistica / quadro. (Al momento lascio intenzionalmente fuori la conoscenza dello spazio commerciale). Essere uno sviluppatore senior nei miei libri includerebbe anche un livello di competenza in progettazione / architettura. Come costruire un sistema buono / testabile, ecc.
Arrivare a questo livello in Java dovrebbe metterti in condizione di conoscere altre lingue (simili / procedurali).
Ma in questa era di prevista produttività immediata, è improbabile che tu sappia quasi tanto su Ruby quanto Java. Come suddividere il sistema in costrutti compatibili con Ruby anziché in costrutti compatibili con Java. Probabilmente conosci alcuni framework Java e non Rails o altre cose specifiche di Ruby.
Se dovessi chiederti di scrivere la lavagna in codice in Ruby durante l'intervista, potresti farlo?
Tutto ciò andrebbe nella mia decisione di assumerti o meno, a qualsiasi livello; ma in particolare per un ruolo senior .
In bocca al lupo
No.
Questa è una delle grandi differenze tra la nostra professione e altre professioni più "formali". Se hai lavorato come avvocato facendo testamenti e proprietà per 20 anni, allora avrai un alto grado di controllo perché hai 20 anni di conoscenza accumulata in quel dominio .
Se fai C ++ / Win32 / MFC da 15 anni, questo non ti qualifica davvero per un posto senior come sviluppatore di Rails, anche se stai ancora risolvendo gli stessi problemi nello stesso dominio ... fatturazione, ad esempio.
Ancora peggio, la maggior parte delle aziende non ti considererà nemmeno per una posizione approssimativamente simile ... Ad esempio, se hai fatto C ++ / MFC per 5-7 anni, dovresti essere in grado di accelerare su C # /.NET molto rapidamente, almeno per il desktop. Sfortunatamente la maggior parte delle aziende non la vede così.
Dipende
Elimina la "programmazione". Fingi invece di essere un traduttore professionista.
Supponiamo che l'inglese sia la tua prima lingua e che tu sia anche in francese. Probabilmente imparerai lo spagnolo abbastanza facilmente.
Tuttavia, non è altrettanto probabile padroneggiare rapidamente i molti dialetti del cinese. Mentre la tua esperienza di linguista ti aiuterà a imparare la (e) lingua (e), dandoti un vantaggio su qualcuno che non ha mai studiato una lingua straniera, ti richiederà comunque molto più tempo per diventare un "esperto" (cioè "senior" ) traduttore in quella lingua.
Sì e no.
Se le lingue sono simili , diciamo C ++, Java o Ruby, che dovresti prendere in considerazione. A seconda di quanto siano flessibili le persone sedute in quegli uffici, hai una possibilità di combattere.
Tuttavia, se le lingue sono molto diverse , e con questo intendo dire che sei un ragazzo COBOL che ha preso a calci su Haskell, nonostante i tuoi oltre 10 anni di probabilità COBOL sono convinti che potresti non essere in grado di ottenere un'intervista.
COPPIA DI COSE CHE VERRANNO A FAVORE IN TALI SITUAZIONI:
Raramente ho visto un titolo "senior" basato sul linguaggio. Conosco alcuni programmatori senior di sistemi , un paio di programmatori web senior e un programmatore COBOL senior.
La programmazione è multiforme e ha parecchie discipline da offrire. Mi aspetto che uno sviluppatore web senior (in titoli, programmatore e sviluppatore sembri essere intercambiabile) sia esperto in diversi linguaggi tradizionali usati nello sviluppo web. Questo rende un guru Python e PHP un esperto istantaneo in C #? No. D'altra parte, non tutti i guru di C # hanno imparato l'arte della gestione e della leadership del progetto.
Ho ricoperto il ruolo di CTO in un'azienda, oltre a essere il programmatore di sistemi senior. Tuttavia, sarei felicemente rinviato a uno schema oa un esperto LISP se incontrassimo un progetto che lo rendesse necessario. Parte di essere un buon leader è capire i propri limiti e le carenze prima .
Non sono sicuro che mi piacerebbe lavorare in un'azienda o addirittura in un dipartimento incentrato su una sola lingua. Sembra che farebbe quello che dicevano sempre che fumare sigarette avrebbe fatto: arrestare la crescita quando la realtà è in realtà molto peggio.
Non inseguire i titoli, inseguire la conoscenza. Ma, per essere onesti, il tuo ruolo in una precedente posizione di leadership probabilmente ti darebbe un vantaggio in più, a condizione che tu abbia dimostrato competenza nella lingua a portata di mano.
Penso che dipenda da cosa percepisci come sviluppatore senior? Se è più un ruolo di architetto, molti dei principi e dei modelli di progettazione saranno a tua disposizione dalla tua esperienza di sviluppatore, indipendentemente dalla lingua. Quindi questo è un vantaggio ;-)
Tuttavia, quando si cerca di creare un'applicazione o un codice nel modo più produttivo e gestibile possibile (il roll up dei bit sleaves), non penso che si possa accedere allo stesso livello di esperienza quando si cambia lingua, IDE e / o framework.
Ma come diceva Runrun, questo non ti impedisce di fare domanda per nulla
Ciò dipenderà in larga misura dalla società in cui intervisti, in quanto in genere sono le procedure interne relative alle risorse umane a guidare il modo in cui i nuovi dipendenti vengono coinvolti. Le aziende più grandi tendono ad essere molto rigide e se dicono che devi avere n anni di esperienza in una determinata lingua per essere considerato di livello senior, potresti scoprire che ti porteranno solo in uno sviluppatore di medio livello.
Detto questo, ciò non dovrebbe impedirti di candidarti per la posizione e se ti coinvolgono per un colloquio è qualcosa di cui dovresti discutere.
Direi che più il linguaggio è basso o intuitivo, più sei esperto.
Le competenze Java / C # sono meno pagate delle competenze ASM / C / C ++.
Questi ultimi linguaggi gestiscono la memoria e altre cose che in realtà sono rilevanti durante la programmazione.
Ma per altre lingue "facili", dovresti fare un rapido confronto sulle funzionalità che le rendono "più facili", ma lo trovo inutile. Le esperienze con linguaggi semplici sono meglio misurate con CMS / altri codici creati che hai usato per svolgere il tuo lavoro, come accenditore di codice o django o Apache o RoR.
Per me, gli sviluppatori senior sono persone che programmano kernel, sistemi, hardware incorporato, ecc. I programmatori che usano lingue che non sono amichevoli per la macchina non sono anziani per me. Fanno solo il lavoro, ma questo è tutto.