Woes of a Junior Developer - è possibile non essere ritagliati per la programmazione? [duplicare]

59

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

Recentemente sono stato assunto come sviluppatore junior presso un'azienda che mi piace molto. Ho iniziato sul campo a fare QA e sono passato a un sempre maggiore lavoro 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 crescendo nel 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 mostrare alla mia azienda? Sono serio riguardo a questa opportunità? Odio il fatto che sto perdendo tempo. Mi è stato detto da altri che le società fanno investimenti negli sviluppatori Junior e non si aspettano che paghino per un po ', ma quanto è vero? Deve esserci un punto in cui è chiaro se l'investimento pagherà o meno.

Finora ho cercato di farti tutte le domande possibili, ma per un po 'hai ossessionato un semplice problema e gli altri lo sanno, arriva un momento in cui è piuttosto imbarazzante avere per ottenere aiuto dopo aver lottato così a lungo. Ho anche cercato di essere il più possibile aperto al suggerimento e lavorare con gli altri per cercare di ridefinire il mio codice, ma a volte può essere difficile scontrarsi con le opinioni personali di vari membri del team (qualcuno viene detto da qualcuno che lo scrive in un modo e poi avere qualcun altro ti fa riscriverlo).

Spesso mi esageriamo e mi giudico troppo duramente, ma non voglio dover lottare per il resto della mia vita cercando di far funzionare le cose se proprio non ne ho il talento. Nella tua esperienza, sta programmando qualcosa che quasi tutti possono imparare, o qualcosa che alcune persone semplicemente non capiscono? Gli altri si sentono in questo modo, o ti senti in quel modo quando inizi? Mi spaventa che non ho altre capacità lavorative se non sono adatto per avere le competenze necessarie per codificare bene.

    
posta gnat 14.01.2011 - 04:05
fonte

11 risposte

45

Alcune persone hanno un talento per la programmazione? Assolutamente.

Se non hai un talento per questo, puoi comunque essere un ottimo programmatore? Sì, ma richiederà più pratica.

In ogni caso, essere veramente bravi in programmazione richiede tempo . È come suonare uno strumento. Alcune persone sono naturalmente dotate? Sì. Ma molti dei grandi si esercitavano più a lungo e più duramente. La programmazione è allo stesso modo: richiede pratica.

Per il resto della tua carriera di programmatore, il campo cambierà. In molti punti della tua vita sarai il nuovo ragazzo, non importa se fossi una volta l'esperto. Molti programmatori "junior" in C # oggi erano esperti in Foxpro o in altre lingue. Gli esperti di C # di oggi un giorno saranno programmatori junior in un'altra lingua. Tutti commettiamo errori e facciamo cose stupide che altri faranno notare. Nel corso del tempo capirai bene il codice e il male. Sarai in grado di avere discussioni divertenti con le persone nella revisione del codice e di eseguire il backup del motivo per cui il tuo codice è migliore del loro suggerimento e di ogni altro, ma richiede tempo, determinazione e persistenza. Il talento aiuta, ma a volte il talento è 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 tutti ancora a punti nel nostro codice in cui dobbiamo chiedere aiuto. Ecco perché StackOverflow e altri siti online sono così popolari. Molte volte noi programmatori abbiamo un grande ego. Preferiamo chiedere online dove nessuno può ridere di noi (e sapere chi siamo) che chiedere al nostro collega, quindi non stare male per non sapere qualcosa. Dopotutto, i programmatori sono risolutori di problemi, non know-it-alls, ecco perché abbiamo le competenze di Google!

Senonhaifattoclicsull'unicolinknellamiarisposta,tisuggeriscocaldamentedileggerehtttttttthttps://www.norvig.com/21-days.html"> Insegnare te stesso al programma di Peter Norvig in dieci anni .

    
risposta data 14.01.2011 - 04:30
fonte
19

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

Tuttavia, sarebbe presuntuoso da parte mia dire che ci si trova in quello scenario. Mi sembra che tu non sia in un ambiente molto educativo. Idealmente, gli sviluppatori più esperti dovrebbero portarti sotto la loro ala e mostrarti le corde. Sembra che tu sia appena stato gettato nella profondità senza alcun supporto vitale. C'è spesso una grande curva di apprendimento che va dal college all'industria o dal tester allo sviluppatore e può intimidire soprattutto perché ti rendi conto di quanto poco lo sappia davvero ... almeno questa è stata la mia esperienza.

Fare domande è il modo migliore per dimostrare che sei serio. Mi rendo conto che a volte ti sembra 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à disposto ad aiutarti a stabilire obiettivi concreti in relazione allo sviluppo della carriera.

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

Credo fermamente che una serie chiara di obiettivi e qualche direzione faranno meraviglie per la tua situazione attuale.

    
risposta data 14.01.2011 - 04:44
fonte
8

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

  • sempre in pista, facendo domande, migliorando, sarà tutto fantastico
  • lavorare con cretini, avere il talento per crescere in un ambiente migliore, condannato qui
  • non è un programmatore e non lo otterrà

Ho assunto qualcuno in quest'ultima categoria. Abbiamo passato sei mesi arrivando alla conclusione che anche se era carino, ci piaceva, era intelligente, e ci stava provando da morire, non sarebbe successo.

Se c'è qualcuno di cui fidarsi di questa conversazione, chiedi loro questa domanda: "So di fare errori e ci sono cose che non conosco, ma sto facendo gli stessi errori? C'è qualcosa che faccio costantemente lo sai? ". Una risposta onesta ti dirà quello che devi sapere. Ho avuto juniores che non fanno mai lo stesso errore due volte. Loro fanno bene. E il bravo ragazzo che alla fine ho licenziato? Aveva una raccolta di 3 o 4 errori che si ripresentavano e si ripresentavano e si ripresentavano. Non ha visto il modello, non importa quante volte gli sia stato detto e quanti post mortem avessimo.

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

    
risposta data 14.01.2011 - 13:57
fonte
3

Quanto grande e complesso è il codebase in cui sei stato appena introdotto? Questo può giocare un grosso fattore (specialmente se c'è una mancanza di documentazione)

Spesso sento che c'è una guerra silenziosa in corso tra junior e senior. Si tratta di cose meschine come le persone che cercano di mettersi su un piedistallo e di metterti giù nel tentativo di mostrare il loro valore.

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

Queste persone non sono insegnanti; sono territoriali come tutti 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 vieni licenziato mesi lungo la strada, ci saranno molte domande. Se stai zitto potrebbe sembrare che non ti interessi (cosa che fai chiaramente)

La cosa migliore da fare è ucciderli con gentilezza e fare in modo che i contributi del codice sorgente siano quanto più puliti possibile in modo che nessuno possa dire nulla. Minore è la tua critica, più ti avvicini a diventare uno sviluppatore senior.

    
risposta data 14.01.2011 - 06:22
fonte
3

Resta lì dentro! Il fatto che tu ti stia interrogando è per me un buon segno. Sono un senior manager e i migliori segnali da junior sono che accettano che hanno bisogno di tenersi aperti e sapendo che hanno bisogno di saperne di più.

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

Spesso do questa analogia per aiutare i juniores, spesso sembra che tu stia per salire su una grande montagna. Si vede l'altezza con picchi innevati e nessun percorso visibile verso l'alto. La maggior parte della gente pensa, giusto ho bisogno di equipaggiarmi con tutte le attrezzature da arrampicata di cui ho bisogno, così inizio a stressare su quell'attrezzatura prima che partissero. 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 necessario per dotare yourselve di un "professionista" e iniziare a camminare.

    
risposta data 14.01.2011 - 07:11
fonte
1

La prima domanda che dovresti porci 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 tu lo facessi per il prestigio o pensavi che avresti fatto un sacco di soldi), allora hai la tua risposta. Se fai vuoi essere un programmatore, quindi continua a leggere perché ti mostrerò ciò che resta da fare.

Ho letto le Le avventure di Johnny Bunko di Daniel Pink (è un libro di carriera dal momento che probabilmente non puoi dire dal titolo). In esso ci sono 6 lezioni. Tre di essi sembrano particolarmente rilevanti:

  1. Pensa ai punti di forza, non alle debolezze.
  2. La persistenza vince il talento.
  3. Fai degli errori eccellenti.

La prima lezione è il punto di partenza. Se ti concentri sulle cose che stai facendo male, non arriverai mai da nessuna parte. Non importa quello che fai, avrai sempre gli stessi punti di forza e di debolezza. Non c'è alcun motivo per picchiarti sulle tue debolezze. Quindi, piuttosto che attenuare 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 "contabile"). Vai più in profondità di quello. Sei bravo a definire i processi logici? Venire con nuove idee? Esecuzione delle idee altrui? Quando sai quali sono i tuoi punti di forza, scopri come applicarli alla programmazione (di nuovo, assumendo che sia ciò che vuoi fare).

Il prossimo è quel talento di persistenza briscola. Chiunque sia appassionato di ciò che fa arriverà al punto che sei ora. C'è sempre che sarà qualcuno che sarà un oppositore per una ragione o per l'altra, che sia minacciato da te o che tu non abbia abbastanza talento. Inoltre, le sfide si presentano sempre, non importa quanto tu sia talentuoso. 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), commetti errori eccellenti. Provare qualcosa di nuovo che non funziona è un errore eccellente perché puoi imparare da esso. Andare in prigione per aver hackerato il server di un datore di lavoro e rendersi disoccupati non lo è. Spesso gli anziani cercano di impedirti di commettere errori. Sebbene siano ben intenzionati, possono essere come genitori iperprotettivi che non lasciano mai uscire i loro figli. Per imparare veramente le cose, devi fare gli stupidi da solo. Probabilmente scoprirai che molte volte il consiglio degli anziani non si applica, non perché è un cattivo consiglio, ma più perché è un consiglio su misura per loro e non per te.

    
risposta data 14.01.2011 - 08:31
fonte
1

In your experience, is programming something that almost everyone can learn, or something that some people just don't get?

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

Quando ricomincio la mia carriera, qualche anno fa, sono arrivato anche a situazioni in cui penso di poter sopravvivere in questo campo, ma con il passare del tempo e mi sforzo di imparare divento parte essenziale della mia squadra, quindi impara e concentrati È difficile migliorare le tue capacità leggendo libri, studiando post di blog, segui i guru della tua tecnologia su twitter

    
risposta data 14.01.2011 - 08:33
fonte
1

"Se ti concentri sulle cose che stai sbagliando, non potrai mai arrivare da nessuna parte."

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

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

Trova le cose che ti fanno male e pratica precisamente quelle cose.

    
risposta data 18.06.2013 - 22:11
fonte
1

Questa è una discussione precedente, ma volevo aggiungere i miei 2 centesimi nel caso in cui qualcuno si imbattesse in questa ricerca in Google.

Gli sviluppatori con cui lavoro sono piuttosto utili e sono aperti a dare una mano. Abbiamo tutti punti di forza in luoghi diversi, quindi siamo praticamente aperti ad aiutarci l'un l'altro. Se riesci a imparare qualcosa che le altre persone della tua squadra non sanno ma potrebbero essere utili a loro, potrebbe allentarli e renderli più disposti a dare e prendere. Se ti trovi in una posizione entry level, lo farei succhiare e non lasciare che ti disperdano. Quando lasci questa posizione, la prossima sarà con una lavagna pulita. Quindi, mi piacerebbe andare in giro e imparare il più possibile e avere quanta più esperienza possibile in modo che nel tuo prossimo concerto, sarai più esperto e con un piede migliore.

Non credo davvero nel presentare reclami con il management sul tuo repertorio con i colleghi. La direzione ti guarderà come una chiacchiera 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 la direzione entri con una risposta magica per costringere i tuoi colleghi a rispettarti. Sono stato in alcune posizioni in cui non mi sentivo veramente in sintonia con la squadra. Ho appena fatto le valigie e andare avanti. Qualunque siano i loro limiti culturali, questo non mi permetterà 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ì dappertutto.

La mia esperienza è che la maggior parte dei programmatori è ESTREMAMENTE pretenziosa. Anche se sai perfettamente quello che stai facendo, se non lo fai a modo loro ti prenderanno tutto in faccia e si comportano come se fossi uno stupido idiota che non sa cosa stai facendo. La maggior parte delle risposte che vedi su bacheche sono indicative di ciò. Per ogni risposta utile che vedi a un problema di sviluppo su una bacheca, vedrai 10 risposte pretenziose da individui mocciosi che vogliono prendere in giro e dire tutto ciò che possono per aumentare il loro ego in agguato. In effetti, sono convinto che 3/4 di ogni risposta a una domanda su una bacheca critica o critichi la formazione della domanda, lamenta che la domanda non è pubblicata nel posto giusto, lamenta che la domanda è già stata posta a molto tempo fa e quindi non dovrebbe mai essere chiesto di nuovo, o è un link a un'altra bacheca dove la risposta alla domanda con qualche tipo 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 dove porre domande (se questo ha senso). I forum hanno queste ridicole regole e linee guida che vogliono che tu segua se fai domande ... sostanzialmente si aspettano che tu sia il calibro di un utente che controlla continuamente la bacheca e che è abituato alle loro restrizioni di formattazione e contenuto. Ho avuto le domande perfettamente normali, direttamente CANCELLATE ... anche da Stack Exchange ... tutto perché "non era formattato correttamente".

La 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 occorra così tanta intelligenza. Devi solo essere paziente e impegnato nell'apprendimento. Se le persone capiscono perché una certa pratica di programmazione è un problema, penso che prenderanno i provvedimenti necessari per correggersi. Non hanno bisogno di un pessimo comitato di revisione di coglioni 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 alcune esercitazioni 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, il tuo primo paio di sessioni di sviluppo ti getteranno in un codice e tu ti ci colleghi fino a farlo funzionare. Potrebbe essere abbastanza buono, ma se non conosci i concetti che stanno dietro ciò che stai facendo, non puoi davvero aspettarti di farlo nel modo "giusto".

IMO, non puoi davvero imparare come diventare uno sviluppatore di alto livello prima che tu possa mai sviluppare. Come con qualsiasi cosa, la pratica rende perfetti ... e gli sviluppatori più esperti sembrano dimenticarlo.

    
risposta data 02.09.2013 - 15:14
fonte
0

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

Cosa dovresti capire che il compito che ti è stato dato è la cosa che ti sposterà in avanti. si aspettano che tu impari da esso . Prima di qualsiasi compito, diventa un punto di ricerca per un po 'di tempo e poi andare al senior per una sorta di direzione. Assicurati che ti stia muovendo nella giusta direzione, stai usando l'approccio giusto. Forse qualcuno ha gridato l'approccio giusto e inizi a preoccuparti? succede a tutti noi, fa tutto parte della curva di apprendimento.

Quindi rilassati e rilassati e prova a non provare giorni di responsabilità, ma lavora duro

    
risposta data 14.01.2011 - 08:18
fonte
0

Mi sono sentito in quel modo molte volte e probabilmente lo sentirò molte altre volte in futuro. Certo che ho ansia e depressione che possono rendere questo un po 'più difficile, ma con un po' di perseveranza, intelligenza e curiosità può essere interessante vedere dove finirai alla fine. Guida Guerrilla per le interviste 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 ci sono stati molte volte in cui mi sono sentito un idiota e ho avuto una situazione di "battesimo al fuoco", ma penso che sia normale. Sono sopravvissuto alle lotte e ho avuto i miei momenti in cui mi sentivo in cima al mondo, che è una sensazione fantastica che spesso provo a riprendere con un discreto successo.

    
risposta data 24.01.2011 - 22:24
fonte

Leggi altre domande sui tag