it-swarm.it

Sono un cattivo programmatore o tutti hanno questa sensazione?

Tendo a capire le cose piuttosto rapidamente, ma dopo 2 anni di programmazione in Python mi imbatto ancora in cose (come Flask oggi) che mi stupiscono. al codice, non ho idea di cosa stia succedendo e poi mi sento molto umiliato. Mi sento un esperto assoluto ogni volta che succede, fino al momento in cui accade. Poi, per circa 2 settimane, mi sento un principiante assoluto.

Succede spesso o indica che ho ancora molto da imparare prima di poter essere considerato un "buon" programmatore?

77
orokusaki

Lo chiamo "Freshman Feeling". Quando sembra che tutti gli altri lo abbiano insieme, stiano andando più veloci, conoscano tutti gli edifici del campus, non stiano lottando, ecc. Nella programmazione, sono disorientato, a disagio, incerto se rispetterò o meno la scadenza - è paura.

La sensazione scompare quando riconosco la paura per quello che è, quindi la ignoro, mi immergo e inizio ad imparare, lottando attraverso ogni problema uno alla volta.

Il fatto è che ora lo uso come indicatore per dirmi quando sto davvero imparando. Se non lo sento di tanto in tanto, so di non andare avanti - sono stagnante.

Uno dei programmatori al lavoro ha questo motto: "Il comfort è il nemico".

Quella sensazione di cui parli può essere il tuo migliore amico se vuoi migliorare.

67
codeyoung

Non sarai mai, mai, mai, mai, per tutta la tua carriera, in una posizione in cui comprendi immediatamente ogni tecnologia di programmazione semplicemente guardandola. C'è semplicemente troppo lì. È l'accumulo di ricerca e conoscenza di milioni di persone nel corso di molti decenni. Se ti ritrovi mai a pensare di essere a quel punto, cerca un terapista per discutere delle tue delusioni.

La caratteristica di cui hai più bisogno è la capacità e la volontà di imparare. Se lo hai, niente sarà oltre te.

73
GrandmasterB

No, questo non è il segno di un cattivo programmatore. Dovresti sempre imparare e generalmente dovresti presumere che ci sia qualcos'altro da imparare su un determinato argomento.

Il cattivo programmatore è colui che crede di conoscere già il modo migliore per fare tutto e non è aperto alla possibilità di avere qualcosa da imparare.

32
Kirk Broadhurst

L'unica costante nel mio percorso di programmatore è stata che ho sempre altro da imparare. Sembra un cliché, ma è vero.

Questo non vuol dire che non sento in ogni momento, anche adesso, come se avessi imparato la maggior parte di ciò che imparerò nella mia vita. Il fatto è che ho sentito che l'anno scorso, guardando indietro a quel punto ora, avevo chiaramente ancora molto da imparare. Stessa cosa per l'anno precedente e quello precedente.

Stai sempre imparando, esponendoti a un codice davvero buono e gli sviluppatori sono un ottimo modo per ricordartelo.

10
Fishtoaster

Esiste un modello di apprendimento in cui ti muovi attraverso quattro fasi:

  1. Inconsciamente incompetente: non sai di non sapere.
  2. Consapevolmente incompetente: sai di non sapere.
  3. Consapevolmente competente: sai di sapere.
  4. Inconsciamente competente: non sai di sapere.

Chiaramente il livello 1 è un problema, ma è da dove iniziano tutti, ma è passato rapidamente. Man mano che impari fino a quando non raggiungi il punto in cui lo fai al livello 4. Con qualcosa come un altro modulo o libreria su una piattaforma esistente, passi inevitabilmente indietro a 1 o 2 (si spera 2). Questo è normale.

(BTW. Fase 4 può essere un problema, troppo facile per non riuscire a tenere il passo con le ultime tecniche.)

9
Richard

Fai una passeggiata in una biblioteca. Se non ti fa sentire molto, molto piccolo, non lo capisci. Se lo vuoi in parole secchioni, è tutto sulla derivata, non sulla quantità effettiva delle tue conoscenze. Va bene sentirsi meglio su ciò che stai imparando rispetto a ciò che sai, anche se non dovresti esagerare. Avendo imparato qualcosa è un risultato, è solo che non puoi mai considerarlo completo.

A proposito, due anni non sono molta esperienza. Ho avuto più di tanta esperienza prima di uscire dal college (senza contare le lezioni), anche se ho avuto la fortuna di ottenere quelle opportunità.

7
Randall Schulz

Sto scrivendo e spegnendo il codice da oltre 20 anni, ci sono stati momenti in cui mi sono considerato inattaccabile per abilità e competenza, ma ho scoperto che c'è sempre qualcuno di meglio. Quello che devi tenere a mente è che c'è una moltitudine che è anche peggio, molto peggio di te. L'ingegneria del software non è un campo statico, nuovi approcci, tecniche e persino linguaggi vengono sviluppati continuamente e sarebbe impossibile tenere il passo con tutto questo.

La cosa che di solito mi fa sedere, sbalordito da qualche nuovo codice che ho appena aperto è lo stile del codice. Di solito è una funzione di quanto il programmatore fosse a proprio agio con lo spazio problematico, più comfort tende verso un codice più astratto nella mia esperienza. Se apri un pezzo di codice e non passa alla comprensione, allora non ti sbattere, siediti, leggilo attentamente, prendi appunti (sì, sulla carta) e passa manualmente al codice (se hai tempo) . La comprensione arriverà ed è necessario capirlo che ti rende un buon programmatore! :)

4
Lazarus

Questo è successo a me. Poi si è fermato. Non perché ho smesso di progredire e non ho esaminato il codice difficile, ma perché alla fine sono diventato molto bravo. Questo da usare succede in C++ per me. Boost (codice sorgente) non mi spaventa.

1
user2528

Non so se sei un cattivo programmatore o no, ma mi considero un buon programmatore: D, anche io non so tutto. Per me, la differenza tra programmatore buono e cattivo è la capacità e la metodologia per portare a termine il lavoro. Se avessi un programmatore BASICA, in grado di compilare l'applicazione di cui ho bisogno in tempo che funzioni bene, e di essere in grado di mantenere la sua base di codice per apportare modifiche ragionevoli in base alla richiesta, quindi lo considererei un buon programmatore anche lui/lei conosce solo BASICA e nient'altro.

Tuttavia, sentirsi umili è anche una buona cosa per i programmatori: la carriera che ha bisogno di un apprendimento costante in ogni momento.

1
tia