Qual è la differenza tra gli sviluppatori entry level / Jr / Sr? [chiuso]


198

Oltre al titolo e alla retribuzione, qual è la differenza?

  • Quali diverse responsabilità hanno.

  • Quanto sono esperti / esperti?

  • Qual è la misura di base per determinare dove uno sviluppatore si adatta a questa struttura di base?

Risposte:


341

Questo varierà, ma è così che lo vedo in un posto abbastanza grande da avere distinzioni tra i tipi di programmatori.

Direi che entry level e Junior sono la stessa cosa. Sono appena fuori dalla scuola e hanno meno di due anni di esperienza lavorativa. A loro sono assegnati compiti meno complessi e dovrebbero essere controllati abbastanza attentamente. Generalmente sanno circa il 10% di ciò che pensano di sapere. Di solito non hanno attraversato l'intero ciclo di sviluppo e così spesso fanno delle scelte molto ingenue se gli viene data l'opportunità di scegliere. Purtroppo molti di loro non si preoccupano davvero di quale sia il requisito, vogliono costruire le cose a modo loro. Spesso hanno scarse capacità di debug.

Il livello intermedio è dove cadono molti programmatori. Hanno più di due anni di esperienza e generalmente meno di dieci, anche se alcuni possono rimanere a questo livello per tutta la loro carriera. Possono produrre codice di lavoro con meno supervisione purché siano assegnati ad attività relativamente di routine. Generalmente non hanno il compito di progettare ad alto livello o compiti altamente complicati che richiedono un livello di conoscenza approfondito. Tuttavia, potrebbero essere incaricati della progettazione di un pezzo dell'applicazione, soprattutto perché si trovano nella zona per diventare uno sviluppatore senior. Sono bravi nelle attività di manutenzione o nelle attività in cui possono concentrarsi solo sul loro pezzo del puzzle, ma di solito non sono tenuti a considerare l'applicazione nel suo complesso a meno che non lavori con sviluppatori senior o non siano preparati per la promozione a senior. Di solito possono fare un lavoro decente di risoluzione dei problemi e debug, ma devono davvero fare uno sforzo per ottenere quelli difficili. Non hanno ancora abbastanza esperienza per vedere i modelli nei problemi che li indicano il luogo probabile in cui si stanno verificando. Ma stanno acquisendo tali competenze e raramente hanno bisogno di chiedere aiuto per il debug. Probabilmente hanno attraversato l'intero ciclo di sviluppo almeno una volta e hanno visto i risultati dei problemi di progettazione e stanno imparando come evitarli in futuro. Di solito tendono ad essere più propensi a prendere un requisito al valore nominale e non respingerlo quando ha ovvi problemi o lacune. Hanno imparato abbastanza per sapere ciò che non sanno e stanno iniziando ad acquisire quella conoscenza. Sono i cavalli di battaglia del mondo della programmazione,

Nessuno che sia di livello senior deve anche porre questa domanda. Sono esperti nelle pile tecnologiche prescelte. A loro vengono dati i compiti difficili (quelli che nessuno sa come risolvere) e spesso ottengono responsabilità di progettazione. Spesso lavorano in modo indipendente perché hanno una comprovata esperienza nella consegna delle merci. Si prevede che guideranno gli sviluppatori Junior e intermedi. Spesso sono straordinari strumenti per la risoluzione dei problemi. Si sono già imbattuti in quegli stessi problemi in precedenza e hanno un'ottima idea di dove cercare prima. Gli anziani spesso mentono anche al di fuori del posto di lavoro. In genere hanno almeno dieci anni di esperienza e sono quasi sempre stati in almeno una marcia della morte e sanno esattamente perché alcune cose devono essere evitate. Sanno come consegnare un prodotto funzionante e rispettare una scadenza. Sanno quali angoli possono essere tagliati e quali angoli non devono mai essere tagliati. Conoscono almeno una e spesso diverse lingue a livello di esperti. Hanno visto un sacco di "nuove tecnologie calde" colpire il luogo di lavoro e scomparire, quindi tendono ad essere un po 'più prudenti nel saltare sul carro per il prossimo eccitante nuovo strumento di sviluppo (ma non completamente resistenti ai cambiamenti - quelli sarebbero i sviluppatori intermedi più anziani che non fanno mai il salto in Senior). Capiscono che il loro lavoro è fornire software funzionante che fa ciò che gli utenti desiderano, non giocare con strumenti divertenti. Spesso sono più esigenti su dove lavoreranno perché possono essere e perché hanno visto in prima persona quanto possono essere cattivi alcuni posti. Cercano i luoghi che hanno i compiti più interessanti da svolgere. Spesso sanno di più sui prodotti della loro azienda di chiunque altro, anche se sono stati lì solo per pochi mesi. Sanno che hanno bisogno di qualcosa di più della semplice conoscenza della programmazione e sono bravi a ottenere la conoscenza del dominio aziendale che supportano. Sono spesso a conoscenza di problemi che i giovani non considerano mai e gli intermedi spesso non pensano a questioni normative e legali nel settore aziendale che supportano. Possono e respingeranno un requisito perché sanno quali saranno i problemi e possono spiegare lo stesso ai laici.


2
esiste un titolo (in inglese) per il "livello intermedio" Il traduttore di Google utilizza "Sviluppatore completo". Ma non è una fonte preziosa =)
Michel Ayres,

23
Eccellente spiegazione da racconto. Mi è piaciuto leggerlo.
Saeed Neamati,

1
Grazie per questa spiegazione Sono autodidatta negli sviluppatori iOS (nessuna educazione comp-sci) e ho rilasciato la mia prima app che ha alcune caratteristiche non banali (ad esempio JSON di CRUD, alcune componenti social, un buon design). Non penso di essere un grande programmatore, ma ho scritto l'app di nuovo in primo piano e ho capito cosa ci voleva per spedire. Dove metteresti qualcuno come me, ipoteticamente?
SamYoungNY

1
@NYCTechEngineer, mi viene in mente lo overflow dello stack. Anche gruppi di utenti locali, blog, articoli di scrittura e libri.
HLGEM,

1
@BrianHaak Thx - è interessante quello che dici. Dall'anno scorso ho lavorato a un progetto molto più ampio di prima. Ho avuto la sensazione di dare un'occhiata al codice che ho scritto solo pochi mesi fa e dire "wtf? Chi ha pensato che fosse una buona idea?" :) - L'avvio di questo progetto da un piccolo kernel in un progetto che può essere esteso facilmente e in grado di soddisfare anche i non sviluppatori che vogliono aggiungere contenuti mi ha costretto a pensare a una struttura di livello superiore. L'associazione con un programmatore più esperto mi ha mostrato che mi mancano molti opp. usare le astrazioni. Ho anche problemi con lo spazio dei nomi.
SamYoungNY

43

Livello di accesso - deve dare loro istruzioni esplicite, controllare tutto ciò che fanno, poca o nessuna responsabilità di progettazione, nessuna responsabilità di analisi

Junior: meno istruzioni esplicite, meno controlli, alcune responsabilità minori di progettazione e analisi; aiuta le persone entry-level a trovare il compilatore e utilizzare il repository

Anziano - la responsabilità principale di progettazione e analisi dovrebbe correggere le sviste da sola, controllo minimo / nessun controllo, poca / nessuna istruzione; aiuta le persone di livello junior ad apprendere / migliorare le capacità di analisi e progettazione


20
Bello, tranne che non so che sono completamente d'accordo con "nessun controllo / istruzioni" per il livello senior. A meno che tu non stia lavorando o con una squadra, nessuno dovrebbe essere completamente un'isola.
Wonko the Sane,

@WonkotheSane ne abbiamo uno che unisce i codici con gli errori senza alcuna richiesta di revisione o pull. Non discute molto dell'architettura delle app se non di usare il modello di osservazione ovunque. Prende tutte le decisioni da solo in modo da non adattarsi a nulla di nuovo . Tutto perché è lui stesso un'isola. Non ci è dentro. Lui è l'isola :(
Honey

16

Davvero, penso che dipenda da quanto tempo lavori. Se hai 10 anni di esperienza sei un senior dev, se sei un laureato allora probabilmente sei entry level. Ho visto molti sviluppatori "senior" che difficilmente potevano programmare e non sapevano davvero cosa stessero facendo e molti sviluppatori junior che erano fantastici.


7
Questo fa eco alle mie esperienze. "Senior" significa tempo con l'azienda e di solito nient'altro; l'abilità non tiene conto di una iota. Ho lavorato con molti sviluppatori "senior" (e gestori del caso) che non sapevano nulla del software oltre allo sviluppo di tentativi ed errori, ma erano stati con l'azienda per oltre 5 anni, o è stato il primo programmatore assunto quando il il posto è stato avviato e quindi è stato promosso a causa del possesso.
Wayne Molina,

8

Penso che le slot di apprendista, giornalista e maestro artigiano della vecchia scuola si adattino bene a queste slot per entry level, junior (o semplicemente senza prefisso) e senior.

A qualcuno al livello base vengono assegnati compiti relativamente semplici che non hanno conseguenze profonde e il loro lavoro viene controllato da un junior o da un senior. Nel tempo ottengono maggiori responsabilità e ricevono compiti più complessi, imparando le corde lungo il cammino.

A un junior (o semplicemente alla rimozione di "entry level" / "junior" dal titolo / descrizione) hai completato il tuo apprendistato e hai coperto le principali aree di sviluppo per la tua azienda, essendoti tuffato in ogni area principale in modo da essere familiarità con ciascuno di essi. Ora aiuti a fornire indicazioni e input per l'equivalente dell'apprendista, ma il tuo lavoro è ancora rivisto dal maestro / senior, anche se forse non tanto quanto quando eri un giovane.

Con il passare del tempo e la consegna di progetti di successo alla fine diventi senior. A livello senior hai imparato tutto ciò che è coperto nella tua area, coprendo l'intero processo di sviluppo e tutti gli strumenti e le tecnologie che sono coinvolti. Hai il potere di prendere decisioni tecniche significative e sei tenuto a fornire informazioni dettagliate sulla gestione del processo di sviluppo del software.

Quindi, date queste linee guida, dovresti essere in grado di guardare una persona o una posizione e determinare in quale dei tre contenitori atterrano.


6

Si ridurrà alle aspettative dell'azienda per il programmatore.

Se sono la società di assunzione e assumo un programmatore entry level, so che quella persona non sa quasi nulla e supponiamo che debba imparare tutto. Se assumo una persona di livello Senior, in teoria, saranno autosufficienti, dal punto di vista tecnico.


4

Questo dipende strettamente dalla compagnia. Ma le parole sono abbastanza ovvie: entry level è qualcuno che sta appena entrando nel campo, junior è qualcuno che è oltre il entry level e conosce le tecnologie di alcune lingue. Infine, sono senior quelli che sono più responsabili del progetto e siedono ad un livello superiore. Di solito possono delegare quanto codificano.


Lo capisco, ma a che punto sei "oltre il livello base" o "oltre il livello junior"? Se impari sempre, allora ogni giorno sei oltre ciò che eri il giorno prima.
JD Isaacks,

Il livello di ingresso è facile, ma sto cercando di più esempi di esperienza / conoscenza che suggerirebbero junior o senior.
JD Isaacks,

Come ho detto, questo dipende dall'azienda, dal contesto della tecnologia / lingue in questione e, più specificamente, è una questione di opinione a meno che non si parli di titoli di lavoro ufficiali. Non credo che mi considererò mai un esperto in nessuna lingua se non ho scritto da solo la cosa maledetta.
Chris,

Inoltre, se sei in un'azienda, guarda jr, sr developer e confronta / confronta te stesso. Questo è un buon indicatore nel contesto specifico di detta società.
Chris,

4

Come molti hanno già detto, varia da azienda a azienda e da lavoro a lavoro.

Ad esempio, una volta ho lavorato in una società che considerava chiunque che lavorasse lì per più di 5 anni un "Senior Software Engineer". All'altro estremo, un altro posto in cui ho lavorato aveva definizioni molto rigorose (e relative scale salariali).

Alcuni posti possono considerare "entry level" e "junior" come la stessa cosa.

Può variare in base a anni di esperienza, conoscenza generale, conoscenza specifica (ovvero conoscenza delle caratteristiche di un determinato linguaggio), esperienza manageriale e / o di leadership, tutte le combinazioni di questi e certamente molto altro.


3

Vado con la risposta davvero semplice qui: gli sviluppatori senior (in generale) sono persone che possono vedere la foresta per gli alberi. Pensano oltre il problema immediato di fronte ai loro volti e hanno una comprensione di quali cambiamenti architettonici potrebbero o debbano verificarsi a seguito della risoluzione del problema che devono affrontare.

La maggior parte delle società di software che ho visto hanno persone entry level che scrivono quotidianamente i codici mentre gli sviluppatori senior supervisionano ciò che fanno le nuove persone e affrontano i problemi davvero brutti e spinosi.

Ovviamente questa è solo la mia opinione, e non una regola rigida. YMMV.


2

In poche parole e dalle osservazioni personali trovate sui siti di annunci di lavoro e riguardanti solo i livelli di esperienza.

Voce = Il tuo nuovo probabilmente è il tuo primo lavoro.

Junior = Il tuo bene ma non dovrebbe essere il migliore, anche tu di solito meno di 5 anni e più di 2 anni di esperienza.

Senior = Dovresti essere il migliore e avere più di 5 anni di esperienza.


Hai perso un intermedio.
Neolisk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.