Qual è la differenza tra il livello di abilità tra i programmatori? [chiuso]

3

Sono un programmatore principiante e in 5-10 anni mi piacerebbe essere un esperto. Adoro programmare perché è un insieme di abilità distinte su cui puoi continuamente migliorare. Ma poi ho pensato, come puoi migliorare continuamente? Ad un certo punto, non basta "sapere" come programmare? Immagino, proprio come nella maggior parte delle cose si può essere bravi, che, in cima, la differenza di abilità è probabilmente minima. Quindi cosa rende un programmatore migliore? Codice più chiaro? Comprensione più rapida dei concetti? Essere in grado di scrivere un post su SO senza essere chiuso? (Mi sento come se questo post fosse condannato, ma è davvero una domanda che mi stavo chiedendo.)

    
posta Kewigro 07.10.2011 - 01:11
fonte

4 risposte

2

Come per qualsiasi abilità è un po 'come una foto frattale. Guardando da lontano sembra semplice. Più ti avvicini e più ti rendi conto di quanto sia complesso.

Quanto migliori sei tanto più ti rendi conto di quanto c'è da sapere e quanto poco sai. Man mano che migliorerai (finché manterrai il desiderio di migliorare) scoprirai nuovi modi di guardare alla programmazione e troverai modi per migliorare anche le vecchie tecniche.

Otterrai più velocemente, meglio a trasmettere le tue intenzioni attraverso il layout del codice sorgente, e meglio a risolvere i problemi.

Ovviamente si applica la legge dei rendimenti decrescenti. Ci vorrà più tempo per migliorare dello stesso importo quando hai fatto 10 anni rispetto a quando hai fatto 1.

    
risposta data 07.10.2011 - 01:52
fonte
3
how can you continually improve?

Migliora continuamente lavorando sodo e impostando la barra un po 'più in alto ogni volta.

At a certain point, don't you just "know" how to program?

Ad un certo punto (intorno ai 3-5 anni), tutti gli atleti di livello mondiale imparano l'abilità più basilare della loro carriera, ovvero correre. Ma ciò non significa che un sei anno vecchio può rompere qualsiasi record mondiale di atletica. Ancora una volta sono richieste pratica e disciplina costanti.

at the top, the difference in skill is probably minimal

Sì, non ci sono dubbi. Ma dai un'occhiata più da vicino e vedrai che top NON è una cosa abbastanza stazionaria. Ogni pochi anni, i principali domini cambiano, e con esso l'abilità imposta per cavalcare il cambiamento. Puoi avere il tuo pranzo, o essere il pranzo di qualcuno.

So what makes a better programmer?

Tre parole:

  • atteggiamento: capacità di attenersi a un problema quando bloccato
  • attitudine: capacità di chiedere agli altri (e di aiutare anche gli altri) in caso di dubbio, e si rimane bloccati per molto tempo. Essere umili è importante.
  • attitudine: capacità di restare abbastanza. (il più importante, imho)

Cose come scrivere codice più chiaro e una più rapida comprensione dei concetti arrivano facilmente dopo che hai codificato per un po 'di tempo, e hai attraversato il ciclo di comprensione e implementazione di qualcosa per le prime volte. E alla fine, il codice che scrivi oggi non funzionerà tra qualche anno. Crescere per un po 'di programmers.stackexchange e stackoverflow mi ha insegnato che c'è un lotto di possibilità di miglioramento per me. A volte, solo leggendo le risposte delle persone ti porta a intuizioni che altrimenti non avresti raggiunto. Queste cose mi ricordano (almeno) che più si migliora, maggiori sono le possibilità di miglioramento.

    
risposta data 07.10.2011 - 01:50
fonte
2

Immagina quali sarebbero state le risposte se avessi fatto questa domanda 30 o 40 anni fa.

Il mondo dello sviluppo non smetterà mai di spostarsi (se non altro, Microsoft vuole vendere nuove versioni di C #).
Anche se in qualche modo riesci a imparare tutte le tecniche di sviluppo conosciute (programmazione funzionale, coroutine, stile di passaggio di continuazione, strutture di dati senza blocco, ...), ne sorgeranno ancora di nuove.

Nuovi campi di sviluppo nasceranno anche con hardware migliorato. Schermi multi-touch, display 3D, tracciamento del movimento, sensori biometrici e altre tecnologie IO creano tutti nuove sfide di interfaccia utente e funzionalità.

    
risposta data 07.10.2011 - 01:19
fonte
2

Anche se i fondamenti della programmazione potrebbero non cambiare, molte altre cose cambiano e questo fa parte del mio credo. Guarda che tipi di architetture e hardware abbiamo ora che non avevamo 10 anni fa. Che tipo di idee software creeranno il cloud e i social media come ciò che rende un computer ancora più sfocato.

La conoscenza del dominio di apprendimento ti aiuterà a scegliere un tipo specifico di software come un CRM o ERP. Anche allora ci possono essere progressi nelle piattaforme, quindi di solito ci sono cose nuove da imparare o cambiamenti nei requisiti che le persone vorranno.

Ci sarà sempre spazio per migliorare in quanto non bisogna sottovalutare la creatività umana. Considera quanto sono creativi gli hacker e coloro che scrivono software nel tentativo di catturare o battere gli hacker, assumendo il significato generale dell'hacker come qualcuno che irrompe nei sistemi senza autorizzazione ed esegue azioni dannose.

    
risposta data 07.10.2011 - 01:26
fonte

Leggi altre domande sui tag