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?
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:
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.
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
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.
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.
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.
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.
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.
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.
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.