Quanto è importante l'autoapprendimento nel campo della programmazione? [chiuso]

74

Ho 16 anni. Ho iniziato a programmare circa un anno fa, quando stavo per iniziare il liceo. Sto andando per una carriera in programmazione, e sto facendo del mio meglio per imparare il più possibile. Quando ho iniziato, ho imparato le basi del C ++ da un libro e da lì ho iniziato a imparare le cose da solo. Al giorno d'oggi sono molto più esperto di un anno fa. Sapevo che dovevo studiare da solo perché il liceo non mi insegnerebbe (probabilmente) qualcosa di prezioso sulla programmazione, e voglio essere preparato.

La domanda qui è: quanto è importante studiare la programmazione da soli?

    
posta Bugster 04.10.2012 - 22:16
fonte

17 risposte

100

È fondamentale. Non penso di aver mai conosciuto un buon programmatore che non fosse autodidatta a un certo livello. In qualità di gestore delle assunzioni presso una grande azienda, posso dire che un candidato che descrive progetti personali e un desiderio di apprendere ne supererà ogni volta con un grado impressionante. (Anche se è meglio avere entrambi.)

Ecco la cosa sul college: i corsi di informatica insegnano teoria, non tecnologia. Ti insegneranno la differenza tra una tabella hash e un albero B e le basi su come funziona un sistema operativo. In genere non insegnano linguaggi informatici, sistemi operativi o altre tecnologie oltre un livello poco profondo.

Ricordo di nuovo nella notte dei tempi quando ho preso la mia prima classe di strutture dati e abbiamo ottenuto un manuale sottile per questo nuovo linguaggio chiamato "C ++" che avevano deciso di iniziare ad apprendere. Abbiamo avuto due settimane per raccoglierlo abbastanza da scrivere codice. Questa è stata una buona lezione di per sé. Questo è il modo in cui andrà la tua carriera.

Probabilmente la tua scuola non ti insegnerà ciò di cui hai bisogno per ottenere un buon lavoro. Le scuole spesso trascinano ciò che fa caldo nel settore da molti anni. Allora avrai un lavoro. Qualunque compagnia tu vada, quasi certamente non spenderà nessuno sforzo particolare per addestrarti. Le cattive compagnie sono troppo economiche, e francamente le buone compagnie assumono solo persone abbastanza intelligenti da poterle prendere mentre vanno.

Mi sono laureato in college nel 1987. Sono andato a lavorare come programmatore C con esperienza in programmi DOS, NetBIOS e "Terminate-and-Stay-Resident". Negli anni successivi, ho avuto poco o nessun vero allenamento. Guarda le offerte di lavoro ... non molte richiedono quelle capacità! L'unica ragione per cui posso essere impiegato oggi è perché ho trascorso gli anni che mi hanno seguito costantemente. Per avere successo come ingegnere, devi avere l'abitudine di imparare. Accidenti, andrei oltre: devi avere l'amore per imparare. Devi essere il tipo di persona che scherza con WebGL o Android o iOS perché sembra divertente. Se sei quel tipo di persona e mantieni l'abitudine di imparare, andrai molto lontano nel settore.

    
risposta data 04.10.2012 - 22:53
fonte
29

L'auto-insegnamento è molto importante. Non puoi fare affidamento su un'istruzione formale per insegnarti tutto ciò che devi sapere sul tuo campo. Tuttavia, detto questo, un'educazione formale è anche molto importante se vuoi entrare in quel campo professionale ben preparato e ben equipaggiato.

Sono in procinto di andare al college e ho trascorso gli ultimi quattro anni insegnando a me stesso lo sviluppo del software, di conseguenza ora lavoro per una grande azienda ben nota che gestisce applicazioni aziendali. Non ci vuole un sacco di talento ma ci vuole un sacco di lavoro e motivazione. Penso che la letteratura e la pratica siano la soluzione migliore quando si tratta di apprendimento. È anche importante scegliere un campo specifico in quanto, sebbene sia possibile trasportare le lingue e la logica in tutti i campi, è possibile diventare veramente "grandi" solo con una pratica e una comprensione sufficienti in un campo specifico.

    
risposta data 07.05.2012 - 05:27
fonte
11

Imparare da solo è molto importante. Avere la disciplina per ricercare e raccogliere le conoscenze necessarie per svolgere un compito ti porterà molto più avanti di molti altri che si basano su una formazione formale per svolgere lo stesso compito. Questo vale per qualsiasi settore, non solo per l'industria del software.

Non fraintendetemi, ottenere un po 'di formazione o istruzione formale è utile, ma la vostra motivazione per migliorare le vostre abilità vi aiuterà a diventare uno sviluppatore di software migliore. C'è sempre qualcosa da imparare: nuove piattaforme o linguaggi di programmazione da sperimentare, metodologie di sviluppo da implementare, strumenti e algoritmi da utilizzare, la lista continua. Non tutto ti sarà presentato attraverso la formazione formale e quindi spetta a te conoscere altri argomenti e idee che potrebbero interessarti che ti aiuteranno durante la tua carriera nella programmazione.

    
risposta data 06.05.2012 - 19:32
fonte
6

Nella programmazione, l'auto-insegnamento è ciò che farai ogni giorno. Dovrai insegnare a te stesso un sacco di cose, non solo linguaggi e strumenti informatici che continuano a cambiare. Dovrai imparare il codice scritto da altre persone e dovrai correggerlo con una minima istruzione e supervisione. È raro in alcune organizzazioni ottenere una vera formazione più di 1 volta l'anno (se mai!). Assicurati di poterlo fare (e divertiti), altrimenti, considera una carriera diversa mentre sei ancora giovane.

    
risposta data 04.10.2012 - 22:50
fonte
4

L'autoistruzione è un'abilità indispensabile per un programmatore. Troppi non lo fanno. Se sei bravo, userai questa abilità per il resto della tua carriera.

    
risposta data 06.05.2012 - 20:03
fonte
3

Lo studio individuale è molto importante perché non avrai sempre opportunità di formazione formale. Quando inizi a cercare un progetto, un tirocinio o un lavoro, trova quelli con solidi sviluppatori senior che possono davvero insegnarti qualcosa. Essere in un ambiente che fa le cose nel modo giusto può essere la via diretta verso il codice di qualità.

    
risposta data 06.05.2012 - 20:10
fonte
3

Posso dirti che ci sono stati diversi posti in cui ho lavorato dove non avrebbero nemmeno considerato qualcuno che non aveva i propri progetti al di fuori del lavoro. Esibisce l'amore per la programmazione oltre a mostrare un lavoro e collezionare un assegno. Sto per uscire su un ramo qui e dire questo: tutti i programmatori che non amano programmare succhiano il loro lavoro. Ancora peggio, non hanno nulla da aggiungere a nessuna squadra a cui potrebbero unirsi.

Prenderei uno sviluppatore junior inesperto che ama quello che fa così tanto che gioca con il codice nel suo tempo libero su tre sviluppatori di livello medio che stanno solo facendo le cose: quel piccolo sviluppatore sarà grande un giorno, e gli altri non saranno mai migliori di loro.

Se non stai imparando nuove cose, stai semplicemente dimenticando ciò che sai.

    
risposta data 07.05.2012 - 02:09
fonte
2

Il talento è sopravvalutato

Occorrono almeno 10 anni di pratica prima che si possa diventare grandiosi in qualsiasi area. Quindi è importante iniziare presto.

Il fatto che tu abbia iniziato in una fase precoce della tua vita facendo qualcosa che ti sembra ti fa già guadagnare un vantaggio. Quindi, a meno che tu non abbia un ripensamento sull'area in cui lavorerai, non smettere ... non smettere mai!

Considero l'autoapprendimento una delle migliori abilità di un determinato sviluppatore e il secondo una laurea. Un buon diploma è importante solo perché aggiunge tanta qualità alla tua conoscenza che probabilmente non sarai in grado di raccogliere da solo. Ci sono certamente delle eccezioni a questa regola, ma questo è tutto ciò che sono; eccezioni.

Inoltre, più esperienza accumuli presto meglio ti piacerà il college e meglio assorbirai i nuovi concetti presentati a te. All'inizio lo troverai tutto così facile e inutile, ma molto rapidamente ti sentirai sfidato e desideroso di saperne di più.

Dopo aver lasciato il college non smettere mai di imparare in quanto sarà una delle migliori caratteristiche. Raccomando di leggere "Talent is Overrated". Puoi dare un'occhiata a questo breve articolo su quel libro:

link

    
risposta data 07.05.2012 - 01:05
fonte
2

Rispetto a quasi tutti gli altri campi a cui posso pensare, la programmazione è fondamentalmente tutto sull'autoeducazione. L'educazione formale all'ingegneria informatica e all'ingegneria del software è utile, ma in realtà non si impara a programmare.

Quello che dovresti veramente fare è iniziare a lavorare sui progetti: costruire qualcosa che vuoi esistere. E poi unisciti a un progetto open source per lavorare su qualcosa che vuoi essere ancora migliore. L'apprendimento arriva gratis allora ...

    
risposta data 07.05.2012 - 05:11
fonte
2

Devi imparare cose nuove da soli - vai dove ti porta la tua curiosità.

Ottieni anche un'istruzione formale: il 90% di ciò che ti viene insegnato in un'istruzione formale non verrà utilizzato sul posto di lavoro. Ma il 10% che verrà usato sarà una cosa strana e oscura che a quel tempo pensavi non sarebbe mai stata di alcuna utilità.

Senza l'educazione formale, si soffre del problema descritto come "non sai cosa non sai". L'educazione formale ti offre una vasta e ampia copertura di molte cose nella piena consapevolezza che nessuno uscirà mai e userà tutto. Perché quello che userai è qualcosa che non saprai finché non ne avrai bisogno, si tratta di essere preparati in modo da sapere dove andare a cercare.

La cosa di autoapprendimento / curiosità è ciò che ti rende una persona molto più competente e a tutto tondo. Per non parlare di più prezioso per un datore di lavoro.

Nota a margine: ho trascorso la mia intera carriera, da quando ho cominciato a programmare circa 15 anni (sheesh, oltre 25 anni ... più vicino a 30 anni) a scoprire che oltre alla mia formazione universitaria, la maggior parte dei corsi di formazione (sai ... imparare BLAH in 3 giorni a tempo pieno) sono abbastanza inutili. Questi sono generalmente superficiali, e per quanto riguarda il tanto promosso mantra "mantenere le tue abilità", non molto utile per chi ha bisogno di entrare in dettagli tecnici profondi. Comprare libri, usare internet, approfondire la matematica / fisica / architettura / qualunque cosa mi abbia reso utile e prezioso. Ad un certo punto ero una delle circa 10 persone al mondo con competenze specifiche su un argomento particolare: tutta quella conoscenza era acquisita dall'autodidatta e dall'apprendimento sul posto di lavoro.

L'unico momento in cui smettere di imparare è quando sei 6 piedi sotto in una scatola di pino.

    
risposta data 07.05.2012 - 05:57
fonte
2

C'è una buona parabola a riguardo:

The annual world championship held in British Columbia. The finalists were Canadian, and Norwegian.

Their task was as follows. Each of them that a certain portion of the forest. The winner is the one who could knock down the largest number of trees from 8 am until four o'clock in the afternoon.

At eight o'clock whistle blew and two woodcutters took their positions. They cut down a tree behind a tree, while the Canadian had not heard that the Norwegian stop. Realizing that this was his chance, Canadian redoubled his efforts.

At nine o'clock in the Canadian heard that the Norwegian again went to work. And again, they worked almost simultaneously, when ten to ten Canadians have heard that the Norwegian stopped again. And again, the Canadian went to work, wanting to take advantage of the weakness of the enemy.

At ten o'clock in the Norwegian re-enter the work. Until ten minutes to eleven, he briefly not interrupted. With the growing sense of jubilation Canadian continued to work in the same rhythm, already feeling the smell of victory.

It lasted all day. Every hour of the Norwegian stayed for ten minutes, and the Canadian continued to work. When you hear about the end of the competition, at four o'clock in the afternoon, the Canadian was quite sure that the prize in his pocket.

You can imagine how he was surprised to learn that he lost.

  • How did that happen? - He asked the Norwegian. - Every hour, I heard you for ten minutes stops. Like, Damn you, you managed to cut more wood than I do? It is impossible.

  • In fact, everything is very simple - just said Norwegian. - Every hour, I stopped for ten minutes. And while you continue to chop wood, I was sharpening my ax.

Quindi dovresti studiare tutto il tempo per mantenere il tuo ascia nitido .

    
risposta data 07.05.2012 - 21:46
fonte
1
  • È fondamentale, altrimenti resterai indietro

  • Imparo tutti i giorni, al lavoro, qui, leggendo libri, chiedendo e rispondendo alle domande. Più imparo e più capisco quanto poco lo so.

risposta data 06.05.2012 - 23:29
fonte
1

L'autoapprendimento è molto importante per due motivi:

  • dopo gli studi : come già affermato in altre risposte, l'autodidatta è ciò che farai nella tua vita di tutti i giorni come sviluppatore. Non puoi sapere tutto e le aziende lo sanno. Quello che devi sapere è come migliorare te stesso. I migliori sviluppatori hanno la capacità di apprendere nuove lingue, nuove tecnologie rapidamente da soli.
  • durante i tuoi studi : la distanza tra ciò che i corsi universitari ti insegnano e la realtà di quello che sarà il tuo lavoro è enorme. Specificamente sto parlando di manutenzione e manutenibilità. Una parte essenziale del lavoro di uno sviluppatore consiste nel mantenere il codice legacy (correzioni di bug, miglioramenti, aggiunta di funzionalità, ecc.). Puoi leggere La creazione di software nuovo di zecca è generalmente una parte importante della maggior parte dei lavori di programmazione? per ulteriori dettagli.
    Poiché il mantenimento del codice legacy è essenziale, dovrai scrivere anche un codice gestibile, e raramente viene insegnato con lezioni formali (vedi Come migliorare la formazione degli studenti riguardo alla manutenibilità? ). Se non pratichi l'auto-insegnamento e leggi molto durante gli studi, è improbabile che acquisirai le competenze necessarie che ti renderanno uno sviluppatore migliore rispetto alla media.
    Non cercare di imparare molte lingue / tecnologie durante gli studi, ma apprendi buone pratiche e codice pulito. Ad esempio, è meglio leggere "Clean Code" di Robert C. Martin rispetto a "Java The Complete Reference" di Herbert Schildt durante gli studi.
risposta data 12.04.2017 - 09:31
fonte
-1

L'auto-insegnamento è molto importante dal momento che interiorizzi i concetti a modo tuo e questo aiuta davvero. Scegliere una lingua per autoapprendere è molto importante. Linguaggi con una documentazione chiara sono molto importanti e ciò che non vuoi essere è molto ambizioso nel voler imparare troppe lingue popolari troppo velocemente. Visto che hai iniziato con c ++, ti consiglio java per te, funziona sempre così bene per i programmatori autodidatti.

    
risposta data 07.05.2012 - 12:08
fonte
-1

Probabilmente ho imparato il 95% di quello che so correlato alla programmazione provando cose da solo e imparando come funziona. La scuola può aiutare nell'insegnare un buon stile di programmazione e nell'ottimizzare il codice per la velocità, ecc., Ma non diventerai mai un programmatore "buono" semplicemente leggendo un libro di testo. Un ottimo modo per sviluppare competenze di programmazione è trovare i problemi quotidiani che è possibile utilizzare per risolvere un computer e provare a scrivere del codice per farlo. Rimanere bloccato è parte dell'apprendimento. Ho iniziato volendo diventare un web dev, quindi avrei creato siti fittizi abbastanza spesso (non ospitandoli o niente del genere) per testare nuove cose che volevo provare. Ha funzionato abbastanza bene per me!

    
risposta data 07.05.2012 - 17:04
fonte
-1

Ho iniziato a programmare 2 anni fa. La mia scuola non può insegnare bene le lingue, e devo andare online e fare molte ricerche su me stesso. Sono uno studente più lento e quindi mi ci sono voluti 2 anni per scrivere il mio primo programma, mentre tutti i miei compagni di scuola sono ancora in difficoltà o hanno dato alla programmazione.

Questo dimostra che è meglio per un programmatore essere autodidatta piuttosto che dipendere dalla scuola. La scuola nasconderà sempre le informazioni, poiché pensano che non siamo pronti per questo.

    
risposta data 08.05.2012 - 03:20
fonte
-3

Come sempre in matematica e informatica - ci sono 2 punti di vista: 1. Necessario e 2. Contenzioni sufficienti

  1. È necessario (auto-) imparare durante la tua vita. Nessuna altra opzione per essere e rimanere un buon programmatore.
  2. L'alto punto non è una condizione sufficiente - devi avere un strong background in matematica - scuola superiore e poi laurearti in una buona università nel campo dell'informatica. Questa è (forse) la condizione sufficiente. Il tuo cervello deve essere insegnato a pensare algoritmicamente. Questo NON può essere raggiunto con l'autoapprendimento.
risposta data 07.05.2012 - 09:01
fonte

Leggi altre domande sui tag