it-swarm.it

Woes of a Junior Developer - è possibile non essere tagliato fuori per la programmazione?

(Vorrei iniziare chiedendo: per favore, sii gentile, so che è soggettivo, ma ha lo scopo di stimolare la discussione e fornire informazioni per gli altri. Se necessario, può essere convertito in wiki della comunità.)

Di recente sono stato assunto come sviluppatore junior presso un'azienda che mi piace molto. Ho iniziato sul campo facendo il controllo qualità e sono passato a sempre più lavori di sviluppo, che è quello che voglio davvero fare. Mi piace, ma sempre più mi chiedo se sono davvero bravo o no. Parte di questo sta ancora diventando il ruolo di sviluppatore junior, lo so, ma quanto? Cosa si aspettano gli sviluppatori junior, cosa dovrebbero fare e non fare? Cosa posso fare per migliorare e dimostrare alla mia azienda che sono serio riguardo a questa opportunità? Odio il fatto che sto costando loro tempo alzandomi alla velocità. Mi è stato detto da altri che le aziende fanno investimenti in sviluppatori Junior e non si aspettano che paghino per un po ', ma quanto è vero? Ci deve essere un punto in cui è evidente se l'investimento pagherà o meno.

Finora ho cercato di porre quante più domande possibile, ma sono ossessionato da un semplice problema da qualche tempo e gli altri lo sanno, arriva un momento in cui è abbastanza imbarazzante dover chiedere aiuto dopo aver lottato così a lungo. Ho anche cercato di essere il più aperto possibile al suggerimento e di lavorare con gli altri per cercare di riformattare il mio codice, ma a volte questo può essere difficile scontrarsi con le opinioni personali dei vari membri del team (quando qualcuno mi dice di scriverlo in un modo, e poi avere qualcun altro ti fa riscrivere).

Spesso sono troppo stressato e mi giudico troppo duramente, ma non voglio semplicemente lottare per il resto della mia vita cercando di far funzionare le cose se non ho il talento. Nella tua esperienza, la programmazione è qualcosa che quasi tutti possono imparare, o qualcosa che alcune persone non capiscono? Gli altri la pensano così o la pensavi così all'inizio? Mi spaventa non avere altre competenze lavorative se non dovessi essere adatto per avere le competenze necessarie per programmare bene.

59
user575158

Alcune persone hanno un talento per la programmazione? Assolutamente.

Se non hai un talento per questo, puoi ancora essere un grande programmatore? Sì, ma ci vorrà più pratica.

Ad ogni modo, essere veramente bravo nella programmazione richiede tempo . È un po 'come suonare uno strumento. Alcune persone sono naturalmente dotate? Sì. Ma molti dei grandi si sono semplicemente esercitati più a lungo e più duramente. La programmazione è allo stesso modo: ci vuole pratica.

Per il resto della tua carriera di programmatore, il campo cambierà. Sarai in molti punti della tua vita il nuovo ragazzo, non importa se tu fossi l'esperto. Oggi molti programmatori "junior" in C # erano esperti di Foxpro o di altre lingue. Gli esperti C # di oggi saranno programmatori junior in un'altra lingua. Tutti commettiamo errori e facciamo cose stupide che gli altri segnaleranno. Con il passare del tempo arriverai a comprendere il buon codice e il cattivo. Sarai in grado di divertirti con le persone nella revisione del codice e di eseguire il backup del perché il tuo codice è migliore del loro suggerimento e di ogni altro, ma ci vuole tempo, determinazione e persistenza. Il talento aiuta, ma a volte il talento viene camuffato da duro lavoro nel tempo.

Non scoraggiarti come programmatore junior. Fai quegli errori. Impara da loro. Sporcarsi. Divertiti. Siamo stati tutti lì e veniamo ancora ai punti del nostro codice in cui dobbiamo chiedere aiuto. Ecco perché StackOverflow e altri siti online sono così popolari. Molte volte noi programmatori abbiamo grandi ego. Preferiremmo chiedere online dove nessuno può ridere di noi (e sapere chi siamo) piuttosto che chiedere al nostro collega, quindi non sentirti male per non sapere qualcosa. Dopotutto, i programmatori sono risolutori di problemi, non di tutto, ecco perché abbiamo le competenze di Google!

alt text

Se non hai fatto clic sull'unico link nella mia risposta, ti consiglio vivamente di leggere Peter Norvig's Insegnati a programmare tra dieci anni .

45
Ryan Hayes

Risposta breve: Sì, è possibile che qualcuno non ottenga il software.

Tuttavia, sarebbe presuntuoso da parte mia dire che ti trovi in ​​quello scenario. Mi sembra che tu non sia in un ambiente molto educativo. Idealmente, gli sviluppatori più anziani dovrebbero portarti sotto la loro ala e mostrarti le corde. Sembra che ti stiano buttando nel profondo senza supporto vitale. C'è spesso una grande curva di apprendimento che va dal college all'industria o dal tester allo sviluppatore e può essere intimidatorio soprattutto perché ti rendi conto di quanto poco conosci davvero ... almeno questa è stata la mia esperienza.

Fare domande è la cosa migliore per dimostrare che sei serio. Mi rendo conto che a volte potresti pensare che la domanda sia sciocca o banale, ma siamo stati tutti lì. Inoltre, comunica con il tuo capo! Esprimi che vuoi sapere come migliorare e impostare un piano. Qualsiasi buon capo sarà pronto ad aiutarti a stabilire obiettivi concreti rispetto allo sviluppo della carriera.

Inoltre, quando i colleghi ti aiutano a ricodificare il codice o a risolvere un problema, assicurati di capire perché ti stanno dicendo certe cose. Non solo codificarlo in un modo perché lo hanno detto. Se due colleghi hanno opinioni diverse, chiedi loro di dirti perché la pensano diversamente.

Sono fermamente convinto che una serie di obiettivi chiari e una certa direzione faranno miracoli per la tua situazione attuale.

19
Pemdas

Sai che dicendo "chiunque abbia scoperto l'acqua, non era certo un pesce"? È praticamente impossibile per te distinguere tra questi tre scenari:

  • proprio sulla buona strada, fare domande, migliorare, tutto sarà fantastico
  • lavorare con i cretini, avere il talento per crescere in un ambiente migliore, condannato qui
  • semplicemente non è un programmatore e non lo otterrà

Ho impiegato qualcuno in quest'ultima categoria. Abbiamo trascorso sei mesi a giungere alla conclusione che anche se era simpatico, ci piaceva, era intelligente e stava provando da morire, semplicemente non sarebbe successo.

Se c'è qualcuno di cui ti puoi fidare in questa conversazione, fai loro questa domanda: "So che faccio errori e ci sono cose che non so, ma sto facendo gli stessi errori? C'è qualcosa che costantemente non so ?". Una risposta onesta a ciò ti dirà ciò che devi sapere. Ho avuto ragazzi che non hanno mai commesso lo stesso errore due volte. Fanno bene. E il bravo ragazzo che alla fine ho licenziato? Aveva una raccolta di 3 o 4 errori ricorrenti, ricorrenti e ricorrenti. Non ha visto lo schema, non importa quante volte gli è stato detto e quante post mortem abbiamo avuto.

Volere fare bene è un buon segno. Per il momento, fai del tuo meglio, impara dove puoi e fidati di coloro che ti circondano per valutarti. Tieni presente che se decidono che non sei tagliato per questo, potrebbero sbagliarsi. Potresti prosperare in un ambiente diverso. (Il ragazzo che ho licenziato è in vendita e supporto ora e un po 'una superstar da quello che sento.) Cavolo, potresti iniziare a prosperare in questo domani. Quando scatta, sarai molto più felice.

8
Kate Gregory

Quanto è grande e complessa la base di codice a cui sei appena stato introdotto? Ciò può svolgere un ruolo importante (soprattutto se manca la documentazione)

Sento spesso che c'è una guerra silenziosa in corso tra juniores e senior. Si tratta di cose meschine come le persone che cercano di mettersi su un piedistallo e ti mettono giù nel tentativo di mostrare il proprio valore.

Pensa a qualsiasi mancanza di documentazione come una battuta pratica che ti hanno giocato prima ancora di diventare uno sviluppatore junior.

Queste persone non sono insegnanti; sono territoriali come gli altri semi e non lo mettono in discussione per un secondo. Chiaramente nessuno ti ha preso sotto la loro ala e hai ancora un lavoro da fare. Potresti voler andare dal capo degli anziani ed esprimere alcune delle tue preoccupazioni generali. Se lo fai e poi sei licenziato lungo la strada, ci saranno molte domande. Se stai zitto potrebbe sembrare che non ti interessi (cosa che chiaramente fai)

La tua scommessa migliore è ucciderli con gentilezza e rendere i contributi del codice sorgente il più puliti possibile, quindi nessuno ha niente da dire. Meno critiche ascolti, più ti avvicini all'essere uno sviluppatore senior.

3
user13203

Tenere duro! Il fatto che ti stai interrogando, è per me un segnale davvero positivo. Sono un senior manager ora e i migliori segnali da junior sono che stanno accettando che devono tenersi aperti e sapendo che hanno bisogno di saperne di più.

Ricordo quando ho iniziato la mia vita come programmatore junior, e tutto sembra così grande ed enorme e gli altri membri del team sembrano sapere così tanto e questo è naturale per loro. Quella percezione della conoscenza è solo esperienza. Il tempo e la mente aperta te lo daranno.

Spesso do questa analogia per aiutare i giovani, spesso mi sento come se stessi per salire su una grande montagna. Vedi l'altezza con cime innevate e nessun percorso visibile verso l'alto. Molte persone pensano, giusto che devo equipaggiarmi con tutte le attrezzature da arrampicata di cui ho bisogno, quindi inizia a stressarmi prima di partire. Dico loro solo di guardare i primi 100 metri che possono vedere e di dirmi di cosa avrebbero bisogno e di camminare. Noterai quindi che la parte ha un percorso ben calpestato e ha un sacco di mappe disponibili.

Perdi tutto il bisogno di equipaggiarti da "professionista" e inizia a camminare.

3
jpg

La prima domanda che dovresti porti non è "Sono abbastanza bravo da essere un programmatore?", È "Voglio davvero voler essere un programmatore?". Se non vuoi essere un programmatore (come in, i tuoi genitori volevano che lo facessi a causa del prestigio o pensavi di fare un sacco di soldi), allora hai la tua risposta. Se tu vuoi vuoi essere un programmatore, continua a leggere perché ti mostrerò cosa resta da fare.

Ho letto Daniel Pink's Le avventure di Johnny Bunko (è un libro di carriera poiché probabilmente non puoi dirlo dal titolo). In esso ci sono 6 lezioni. Tre di loro sembrano particolarmente rilevanti:

  1. Pensa ai punti di forza, non ai punti deboli.
  2. La persistenza batte il talento.
  3. Fai degli errori eccellenti.

La prima lezione è il punto di partenza. Se ti concentri sulle cose che stai facendo di sbagliato, non arriverai mai da nessuna parte. Non importa quello che fai, avrai sempre gli stessi punti di forza e di debolezza. Non ha senso battere te stesso sulle tue debolezze. Pertanto, piuttosto che appianare le tue debolezze, il tuo obiettivo primario deve essere basato sui tuoi punti di forza. Siediti e scopri cosa sono. Non intendo in termini di campo ("programmatore" o "ragioniere"). Vai più in profondità. Sei bravo a definire i processi logici? Vieni con nuove idee? Eseguendo le idee degli altri? Quando sai quali sono i tuoi punti di forza, scopri come puoi applicarli alla programmazione (di nuovo, supponendo che sia quello che vuoi ).

Il prossimo è che la persistenza supera il talento. Chiunque sia appassionato di ciò che fanno arriverà al punto in cui sei adesso. C'è sempre sempre qualcuno che diventerà un negligente per un motivo o per l'altro, sia che siano minacciati da te o che ti sentano non sono abbastanza talentuosi. Inoltre, le sfide si presentano sempre, non importa quanto tu abbia talento. Se sei persistente, probabilmente avrai un vantaggio su persone che non sono persistenti ma hanno talento.

Infine (e penso che questo sia quello che gli anziani dimenticheranno), fanno degli errori eccellenti. Provare qualcosa di nuovo che non funziona è un errore eccellente perché puoi imparare da esso. Andare in prigione per aver violato il server di un datore di lavoro e renderti disoccupato non lo è. Gli anziani cercheranno spesso di impedirti di commettere errori. Se ben intenzionati, possono essere come genitori iperprotettivi che non lasciano mai andare fuori i propri figli. Per imparare davvero le cose, devi fare tu stesso gli stupidi errori. Probabilmente scoprirai che molte volte i consigli degli anziani non si applicano, non perché sono cattivi consigli, ma più perché sono consigli su misura per loro e non per te.

1
Jason Baker

Nella tua esperienza, la programmazione è qualcosa che quasi tutti possono imparare, o qualcosa che alcune persone non capiscono?

Secondo me non tutti possono diventare programmatori. Ma una cosa è certa che la programmazione è un campo che richiede molta pazienza e concentrazione e, se ce l'hai, ci sarai sicuramente.

Quando ho iniziato la mia carriera un paio di anni fa, ho anche avuto situazioni in cui penso di poter sopravvivere in questo campo, ma con il passare del tempo e cerco di imparare divento una parte essenziale della mia squadra, quindi impara e concentra duro per migliorare le tue abilità leggendo libri, studiando post di blog, seguendo i guru della tua tecnologia su Twitter

1
Fraz Sundal

Questo è un vecchio thread, ma volevo aggiungere i miei 2 centesimi nel caso in cui qualcuno si imbattesse in questo in una ricerca su Google.

Gli sviluppatori con cui lavoro sono molto utili e sono aperti a dare una mano. Tutti abbiamo punti di forza in luoghi diversi, quindi siamo quasi tutti aperti ad aiutarci a vicenda. Se riesci a imparare qualcosa che le altre persone della tua squadra non conoscono ma potrebbero essere utili a loro, potrebbe allentarle e renderle più disponibili a dare e prendere. Se ti trovi in ​​una posizione di livello base, lo succherei e non ti lascerei fare a pezzi. Quando lasci questa posizione, quella successiva sarà con una lavagna pulita. Quindi, vorrei andare in giro e imparare il più possibile e ottenere quanta più esperienza possibile in modo che nel tuo prossimo concerto, sarai più esperto e avrai una base migliore.

Non credo davvero nel presentare reclami alla direzione del tuo repertorio con i colleghi. La direzione ti guarderà come una favola che non può andare d'accordo con gli altri. I tuoi supervisori non sono baby-sitter, quindi se c'è un grosso problema culturale con il tuo ambiente, non vuoi farne parte. Non puoi aspettarti che il management arrivi con una risposta a proiettile magico per costringere i tuoi colleghi a rispettarti. Sono stato in alcune posizioni in cui non mi sentivo davvero in sintonia con la squadra. Faccio le valigie e vado avanti. Qualunque siano i loro limiti culturali che non mi permetteranno di essere trattato come se fossi uguale ... questo è il loro problema. Chi sono io per entrare e provare a cambiarli per adattarmi a me? La tua situazione sembra un'eccezione alla norma, quindi non darei per scontato che sarà così ovunque.

La mia esperienza è che la maggior parte dei programmatori è ESTREMAMENTE pretenziosa. Anche se sai assolutamente cosa stai facendo, se non lo fai a modo loro ti colpiranno tutto in faccia e si comporteranno come se fossi uno stupido idiota che non sa cosa stai facendo. La maggior parte delle risposte che vedi nelle bacheche sono indicative. Per ogni risposta utile che vedi a un problema di sviluppo su una bacheca, vedrai 10 risposte pretenziose da individui arroganti che vogliono prendersi in giro e dire tutto ciò che possono per rafforzare il proprio ego in rovina. In effetti, sono convinto che 3/4 di ogni risposta a una domanda in una bacheca critica la formazione della domanda, si lamenta che la domanda non è stata posta nel posto giusto, si lamenta che la domanda sia già stata posta a molto tempo fa e quindi non dovrebbe mai essere chiesto di nuovo, o è un collegamento a un'altra bacheca in cui si risponde alla domanda con una sorta di commento come "Scopri come usare Google, STUPID !!!" Non faccio domande sui forum a meno che non sia assolutamente necessario. I forum sono un ottimo posto per trovare risposte, ma è un posto orribile per porre domande (se questo ha senso). I forum hanno queste regole e linee guida ridicole che vogliono che tu segua se fai domande ... fondamentalmente si aspettano che tu sia il calibro dell'utente che troll di quel forum tutto il tempo e viene utilizzato per le loro restrizioni di formattazione e contenuto. Ho avuto delle domande perfettamente normali direttamente cancellate ... anche dallo scambio di stack ... tutto perché "non è stato formattato correttamente".

Una cattiva programmazione è il risultato di 1 di 2 cose: o non capisci i concetti o non conosci la sintassi. Non sono convinto che nessuno possa imparare entrambi questi principi. La programmazione non è un talento naturale con cui devi nascere. È una pratica appresa. Non sono nemmeno sicuro che ci voglia davvero tanta intelligenza. Devi solo essere paziente e impegnato nell'apprendimento. Se la gente capisce PERCHÉ una certa pratica di programmazione è un problema, penso che prenderanno le misure necessarie per correggersi. Non hanno bisogno di un assurdo consiglio di revisione di stronzi arroganti che li rimproverano.

Imparo di più leggendo e studiando da solo piuttosto che chiedere aiuto agli altri. W3Schools è un ottimo posto per imparare alcune cose nuove. Anche se stai principalmente sviluppando in VB, l'esecuzione di alcuni tutorial su JavaScript o PHP o Entity o MVC può davvero aiutare la tua comprensione di base dei concetti di programmazione orientata agli oggetti. Nella maggior parte dei casi, la tua prima coppia i concerti di sviluppo ti limiteranno a inserire un po 'di codice e in qualche modo ti hackererai finché non riuscirai a farlo funzionare. Potrebbe essere abbastanza buono, ma se non conosci i concetti alla base di ciò che stai facendo, puoi " Mi aspetto davvero che tu lo faccia nel modo "giusto".

IMO, non puoi davvero imparare come essere uno sviluppatore di alto livello prima di arrivare allo sviluppo. Come in ogni altra cosa, la pratica rende perfetti ... e gli sviluppatori più esperti sembrano dimenticarsene.

1
Shonenknife

"Se ti concentri sulle cose che stai facendo di sbagliato, non arriverai mai da nessuna parte."

Sii stanco di questo consiglio. Nella mia esperienza ho trovato l'esatto contrario. Il cattivo codice e il cattivo design possono spesso essere attribuiti a un programmatore semplicemente evitando un approccio con cui si sentono a disagio.

Invece di passare il tempo a migliorare le proprie abilità su tutta la linea, creando una raccolta di strumenti, hanno il loro unico martello e cercano di trasformare tutto in un chiodo. Non cadere in questa trappola.

Trova le cose in cui sei cattiva e pratica proprio quelle cose.

1
JRB

Beh, se sei appena nuovo con alcuni mesi di esperienza di sviluppo non ci si aspetta molto da loro (davvero, sul serio, vedono un po 'di talento in te, ecco perché sei lì, non è colpa tua, quindi smetti di preoccuparti).

Quello che dovresti capire che il compito che ti è stato assegnato è la cosa che ti farà avanzare. si aspettano che tu impari da esso. Prima di qualsiasi compito, cerca di cercarlo per un po 'di tempo e poi vai all'anziano per una sorta di direzione. Assicurati che ti stai muovendo nella giusta direzione, stai usando l'approccio giusto. Forse qualcuno ha gridato sul giusto approccio e inizi a preoccuparti? succede a tutti noi, fa tutto parte della curva di apprendimento.

Quindi rilassati e rilassati e cerca di goderti le giornate senza responsabilità ma lavora sodo

0
maz3tt

Mi sono sentito così molte volte e probabilmente in futuro mi sentirò così tante altre volte. Concesso che ho ansia e depressione che possono renderlo un po 'più difficile, ma con un po' di perseveranza, intelligenza e curiosità può essere interessante vedere dove finirai alla fine. The Guerrilla Guide to Interviewing non sarebbe una cattiva idea di qualcosa da considerare.

Un'altra domanda è quanto ti piace della lotta e delle soluzioni che trovi? Se non ti piace risolvere i problemi, probabilmente suggerirei di uscire dalla programmazione. Allo stesso tempo, so che i miei primi mesi di lavoro sono stati molte volte in cui mi sono sentito un idiota e ho avuto una situazione di "battesimo col fuoco", ma penso che sia normale. Sono sopravvissuto alle lotte e ho avuto i miei momenti di sentirmi come se fossi in cima al mondo, che è una sensazione fantastica che provo spesso a riconquistare con moderato successo.

0
JB King