Essere uno sviluppatore senior che usa una lingua ti qualifica come Senior Developer utilizzando un'altra lingua? [chiuso]

27

Se lavoro come uno sviluppatore in una lingua (ad es. Java) e lavoro fino allo sviluppatore senior, questo mi qualificherebbe come sviluppatore senior per una posizione che utilizza un'altra lingua (ad es. Ruby)?

    
posta Philip 20.01.2011 - 14:35
fonte

11 risposte

33

Il modo migliore per rispondere a questa domanda è vedere quale sia la differenza tra uno sviluppatore e uno sviluppatore senior. Supponendo che non sia solo una cosa da tempo, in genere mi aspetterei che sia gli sviluppatori che gli sviluppatori senior siano in grado di:

  • Scrivi con competenza il codice nelle lingue richieste dal ruolo
  • Diagnostica e correggi bug
  • Scrivi test unitari
  • Seguire gli standard e le migliori pratiche ragionevoli (controllo della versione, documentazione)
  • Avere un'ampia competenza tecnica di base
  • Agisci in modo professionale

Inoltre, mi aspetto uno sviluppatore senior per:

  • Mentori altri membri dello staff nelle migliori pratiche
  • Sii e riconosci il punto di riferimento per almeno alcune delle lingue utilizzate dal team
  • Cerca attivamente e promuovi nuove aree di best practice
  • Assumi la proprietà tecnica di problemi / aree di codice più complessi e fornisci solide soluzioni

Quindi, la domanda diventa allora soddisfi i criteri estesi per la tua seconda (o terza o quarta) lingua? Ti suggerirei a condizione che tu sia tecnicamente competente abbastanza nella lingua in cui ti stai spostando, quindi sì, poiché la maggior parte delle cose degli sviluppatori senior tende a essere trasferibile.

    
risposta data 20.01.2011 - 15:16
fonte
5

Puoi fare domanda per qualsiasi posizione in qualsiasi azienda che ti piace, indipendentemente dal tuo stato attuale.

Spetterà a te dimostrare nel tuo CV / lettera di presentazione / intervista che sei l'uomo giusto per il lavoro.

    
risposta data 20.01.2011 - 15:01
fonte
5

Cerco le seguenti qualità quando ho intervistato Sr. Developers.

  • Ha funzionato in più lingue
  • Esperto in almeno uno, competente in almeno un altro, preferibilmente in un diverso paradigma
  • Consapevole delle tecnologie attuali, stato dell'arte, ecc. nell'area prescelta
  • Buona base CS cioè (algoritmi, calcolo dei costi algoritmici, strutture dati, ecc.)
  • La possibilità di passare tra i dettagli di un problema specifico e l'immagine grande
  • Esprimere quando le cose si stanno muovendo nella direzione sbagliata e perché; e quindi essere in grado di continuare nella direzione sbagliata (ovvero professionalità)
  • Abilità al mentore
  • Capacità di lavorare all'interno e con un team

Ci sono una miriade di altre cose che cerco, ma questi sono i punti principali.

Mentre ho consigliato di assumere Sr. Sviluppatori che non erano esperti nella lingua utilizzata al lavoro, erano esperti in lingue simili.

    
risposta data 20.01.2011 - 22:13
fonte
3

Potresti candidarti, ma almeno se stavo facendo l'assunzione, potrei o non potrei assumerti.

La preesistenza si riferisce a (almeno) due aree. Competenze generali di sviluppo e competenza linguistica / quadro. (Sto volutamente escludendo la conoscenza dello spazio degli affari) al momento. Essere uno sviluppatore senior nei miei libri includerebbe anche un livello di esperienza in design / architettura. Come costruire un buon sistema verificabile, ecc.

Arrivare a questo livello in Java dovrebbe essere d'aiuto per altre lingue (simili / procedurali).

Ma in questa era di produttività immediata prevista, è improbabile che tu sappia quasi altrettanto su Ruby come Java. Come dividere il tuo sistema in costrutti compatibili con Ruby invece di costrutti compatibili con Java. Probabilmente conosci alcuni framework Java e non Rails o altri elementi specifici di Ruby.

Se dovessi chiederti di scrivere codice in whiteboard in Ruby durante l'intervista, potresti farlo?

Tutti questi elementi andrebbero nella mia decisione di assumerti o meno, a qualsiasi livello; ma in particolare per un ruolo senior .

Good Luck

    
risposta data 20.01.2011 - 15:14
fonte
3

No.

Questa è una delle grandi differenze tra la nostra professione e altre professioni più "formali". Se hai lavorato come avvocato facendo testamenti e amp; proprietà per 20 anni, quindi avrai una percentuale elevata perché hai 20 anni di conoscenza costruito in quel dominio .

Se hai fatto C ++ / Win32 / MFC per 15 anni, questo non ti qualifica per un ruolo senior come sviluppatore di Rails, anche se stai ancora risolvendo gli stessi problemi nello stesso dominio ... ad esempio la fatturazione medica.

Ancora peggio, la maggior parte delle aziende non ti considera nemmeno per una posizione all'incirca simile ... Ad esempio, se hai fatto C ++ / MFC per 5-7 anni, dovresti essere in grado di arrivare rapidamente su C # /. NET molto velocemente, almeno per il desktop. Sfortunatamente la maggior parte delle aziende non la vedono in questo modo.

    
risposta data 20.01.2011 - 15:37
fonte
3

Dipende

Prendi "programmazione" al di fuori di esso. Fai finta di essere un traduttore professionista.

Supponete che l'inglese sia la vostra prima lingua e che possiate anche padroneggiare il francese. Probabilmente imparerai lo spagnolo abbastanza facilmente.

Tuttavia, non sei così propenso a padroneggiare rapidamente i molti dialetti cinesi. Mentre la tua esperienza di linguista ti aiuterà ad apprendere la / e lingua / e, dandoti un vantaggio rispetto a qualcuno che non ha mai studiato una lingua straniera, ci vorrà ancora molto più tempo per diventare un "esperto" (cioè "senior" ) traduttore in quella lingua.

    
risposta data 20.01.2011 - 17:24
fonte
2

Sì e No

Se le lingue sono tipo di simile , ad esempio C ++, Java o Ruby, assicurati di essere considerato. A seconda di quanto siano flessibili le persone che siedono in questi uffici, hai una possibilità di combattere.

Tuttavia, se le lingue sono molto diverse , e con questo intendo che sei un ragazzo COBOL che ha preso a calci su Haskell, allora nonostante i tuoi 10+ anni di COBOL ci sono molte probabilità che tu non possa essere in grado persino di assicurare un'intervista.

COPPIA DI COSE CHE ANDRANNO A TUA FAVORE IN TALI SITUAZIONI:

  1. Se conosci già più lingue e hai un'esperienza comprovata sugli stessi. Dì che sei bravo con il C ++, ma conosci anche Perl, Tcl e alcuni Ruby. Sarei disposto a prenderti in considerazione per Java. In effetti conosco persone che hanno un lavoro Java con C ++ nel loro curriculum.
  2. Se la tua esperienza è in un dominio correlato, hai buone possibilità di farcela. Ad es. Se sei un programmatore di giochi C ++, non vedo alcun motivo per cui non puoi essere assunto per un lavoro in C # che ha bisogno di un bel po 'di multi-threading.
risposta data 20.01.2011 - 15:40
fonte
2

Raramente ho visto un titolo "senior" basato sulla lingua. Conosco alcuni programmatori sistemi di alto livello, un paio di programmatori web e uno senior programmatore COBOL senior

.

La programmazione è multiforme e offre diverse discipline. Mi aspetterei che uno sviluppatore web senior (nei titoli, programmatore e sviluppatore sembra essere intercambiabile) per essere competente in diversi linguaggi mainstream utilizzati 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 senior dei sistemi. Tuttavia, sarei felice di rimandare a uno schema o esperto LISP se avessimo incontrato un progetto che necessitava di entrambi. Parte di essere un buon leader è capire i propri limiti e le proprie carenze prima .

Non sono sicuro che mi piacerebbe lavorare in un'azienda, o anche un dipartimento che si concentra su una sola lingua. Sembra che farebbe quello che hanno sempre detto che fumare sigarette farebbe: stunt la tua crescita quando la realtà è molto peggio.

Non inseguire i titoli, inseguire la conoscenza. Ma, per essere onesti, il tuo ruolo in una posizione di leadership precedente ti darebbe probabilmente un vantaggio aggiuntivo, a condizione che tu abbia dimostrato competenza nella lingua a portata di mano.

    
risposta data 20.01.2011 - 15:36
fonte
0

Penso che dipenda da ciò che percepisci come uno sviluppatore senior? Se si tratta più di un ruolo di architetto, molti dei principi di progettazione e dei modelli di progettazione saranno a tua disposizione dalla tua esperienza come sviluppatore, indipendentemente dalla lingua. Quindi questo è un vantaggio; -)

Tuttavia, quando si guarda alla creazione di un'applicazione o di un codice il più produttivamente e manutenibile possibile (il rollio del tuo morso), non penso che potresti inserire lo stesso livello di esperienza quando cambi lingua, IDE e / o framework .

Ma come ha detto runrun, questo non ti impedisce di fare domanda per qualsiasi cosa

    
risposta data 20.01.2011 - 15:21
fonte
0

Ciò dipenderà molto dalla società in cui intervisti poiché sono in genere le procedure interne delle risorse umane che guidano 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 data lingua per essere considerato un livello senior, allora potresti scoprire che ti porteranno solo in uno sviluppatore di medio livello .

Ciò detto, però, questo non dovrebbe impedirti di candidarti per la posizione e se ti fanno partecipare a un'intervista è qualcosa che dovresti discutere.

    
risposta data 20.01.2011 - 15:28
fonte
0

Direi che più la lingua è di basso livello o a misura di macchina, più sei esperto.

Le competenze di Java / C # sono meno pagate delle competenze di ASM / C / C ++.

Questi ultimi linguaggi gestiscono la memoria e altre cose che in realtà contano durante la programmazione.

Ma per altre lingue "facili", dovresti fare un rapido confronto sulle caratteristiche che le rendono "più facili", ma lo trovo inutile. Le esperienze con linguaggi facili sono meglio misurate con CMS / altro codice creato che hai usato per lavorare, come ad esempio l'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 linguaggi non compatibili con le macchine non sono per me anziani. Fanno solo il lavoro, ma questo è tutto.

    
risposta data 20.01.2011 - 17:40
fonte

Leggi altre domande sui tag