Risposte:
L'autodidatta non è solo buona , ma essenziale se vuoi essere uno sviluppatore sopra la media.
L'unica persona responsabile del tuo progresso professionale sei tu . Certo, l'istruzione formale, i corsi di formazione, ecc. Possono essere d'aiuto, ma alla fine è la tua carriera.
Sono abbastanza fortunato da aver beneficiato di un'ottima educazione, e ho avuto buoni datori di lavoro che hanno supportato il mio apprendimento in tutti i modi. Tuttavia, la stragrande maggioranza di ciò che ho imparato sulla programmazione mi è venuta in mente, leggendo molto e facendo pratica di più.
Generalmente, più conosci e più l'autoapprendimento diventa l'unico modo efficace per insegnare cose a te stesso.
I corsi sono fantastici quando hai appena iniziato come calcio d'inizio, ma successivamente ottieni un ritorno decrescente per giorni seduti in una classe mentre il corso si muove al ritmo del partecipante più lento. Una volta che hai un ragionevole livello di esperienza che non è quasi mai tu, quindi perderai sempre tempo.
L'autoapprendimento invece ti consente di darti un ritmo. Se ottieni qualcosa velocemente puoi scorrere, se non lo capisci torna indietro e ripassaci. Se ritieni che un argomento sia irrilevante, puoi ignorarlo.
Cosa ho insegnato a me stesso? In termini di cose che ho imparato da zero: HTML, ASP, VB.NET, JavaScript, LotusScript, un po 'di Python, un po' di Java.
Ma in realtà quasi tutto ciò che è utile è autodidatta sul posto di lavoro. Puoi imparare le basi di un corso, ma dove impari davvero lo sta usando, quindi direi che il 95% di ciò che so (se non di più) è autodidatta.
Ho imparato .NET, C #, ASP.NET e ASP.NET MVC con successo da solo.
Non è che qualcuno me lo avrebbe insegnato.
L'autoeducazione è il nucleo dell'apprendimento programmatore. Università, colleghi, tutti ti danno consigli e suggerimenti quando ne hai bisogno, ma devi ancora imparare la parte più grande da solo. Libri, blog, articoli, documentazione, sperimentazione sul tuo tempo personale, ecco come impari.
Esistono diversi aspetti dell'autoapprendimento, il primo ovviamente è lo studio indipendente in cui si cercano conoscenze e si inizia a metterle in pratica. Ciò potrebbe significare acquistare alcuni libri, studiare il codice open source, sperimentare fino alle prime ore del mattino o (di solito) tutto quanto sopra.
Ad un certo punto, tuttavia, avrai bisogno di uno o più tutor che ti guideranno attraverso avvertenze, argomenti difficili, migliori pratiche e solidi principi di ingegneria. Un autodidatta efficiente cercherà questi mentori molto prima che poi e metterà il suo codice di fronte a quante più persone di grande esperienza possibile.
Ho imparato BASIC, Pascal, C, PHP, rudimentale assemblea x86 senza prendere lezioni, ma ciò non significa che non avevo un insegnante a cui rivolgersi quando ne avevo bisogno. Quindi, dato il fatto che ho imparato molto dai mentori che ho trovato nella comunità free / open source .. Sarebbe difficile dire che ho imparato qualcosa da solo o da solo .
Questo metodo di apprendimento è l'unico metodo che funziona per me, andando ben oltre lo studio della programmazione.
Penso che impariamo sempre insieme con il lavoro.
Ho imparato Struts, Spring e una miriade di altri framework Java open source e ho anche usato Tomcat da solo quando stavo lavorando a progetti Java / JSP. La società non avrebbe pagato per questo;)
E ora queste sono le tecnologie che utilizzo quotidianamente nel mio lavoro.
Un paio di divagazioni casuali sull'argomento ...
Come tutti gli altri hanno già detto, dovrai fare molto auto-studio man mano che la tua carriera avanza. Una cosa che non ho mai visto chiaramente qui è, però, la realtà è che troverai molto difficile trovare quel primo lavoro senza un'istruzione formale in un campo correlato, specialmente in una recessione. Molti curriculum passano sopra il "desk di filtraggio" e se non c'è nulla con un'istruzione correlata, è probabile che venga passato. Puoi scricchiolare se hai molta esperienza correlata, ma dipende da quanto attentamente qualcuno legge il tuo curriculum (che, al primo turno, sfortunatamente non è molto probabile). Non è chiaro se questo si applica a te, ma si applicherà a qualcuno, ne sono sicuro.
Su una nota (in qualche modo non correlata), lo studio personale è fantastico, ma avere il tempo di farlo è ancora più grande (e più raro, direi). Ci adattiamo tutti in qualche modo, ma se ti viene data la possibilità di dedicare un po 'di tempo ogni giorno a lavorare sull'apprendimento di qualcosa, afferralo e resisti con tutte le tue forze.
Delphi. Ho imparato Pascal al liceo e vedo una volta che l'IDE, mi piace, scarica alcuni tutorial e inizia a imparare. E oggi, proseguendo il processo di apprendimento. Quando autoapprendimento ci sono parti buone e parti cattive: 1) l'autoapprendimento è il metodo migliore per imparare, perché capisci davvero cosa sta succedendo lì (parte buona) 2) puoi fare grossi errori fraintendendo qualcosa / ottenendo un male abitudine e quindi se si continua in questo modo, è molto difficile correggerlo. (parte negativa)
i migliori saluti,
Radu
È necessario ottenere il punto in cui non è necessario tenere la mano. Devi essere nel punto in cui puoi ritirare un libro, guardare un file di aiuto, trovare un tutorial, ecc. E imparare i principi di cui hai bisogno per il tuo lavoro.
A proposito, ne hai bisogno per qualsiasi lavoro, non solo per la programmazione. Il mezzo di come autoapprendi può essere diverso ma devi farlo.
Ho imparato la maggior parte delle mie conoscenze C / C ++ in classe, ma tutti gli altri miei linguaggi di programmazione, tutta la mia teoria, tutta la mia gestione del progetto e tonnellate di altre conoscenze che mi rendono l'hacker sono autodidatta.
Come altri hanno già detto, l'autoeducazione nel nostro settore non è solo buona, è necessaria . Non è come essere un idraulico o cuocere il pane: la tecnologia è in continua evoluzione e dobbiamo muoverci con essa o diventare irrilevanti.
Vale la pena chiedere: quali sono le implicazioni di questo? I migliori hacker non sono solo scimmie di codice che sputano codice - ci prendiamo il tempo per imparare le cose in grande. Gli algoritmi, la complessità, il design del linguaggio, ecc. Rimarranno con noi e ci serviranno bene indipendentemente dal linguaggio che ci troviamo a utilizzare o per cui ci troviamo ad usarlo. Ho visto questo tipo di hacker passare da una parte del settore tecnologico a una completamente diversa, senza sforzo.
Troppe persone pensano che i concetti di "quadro generale" siano al di sopra di tutti, tranne gli accademici, e io non sono affatto d'accordo. Quando ti prendi il tempo per impararli, scoprirai che alcuni sono già praticati intuitivamente da buoni programmatori, e il resto ha senso una volta che hai familiarizzato con loro.
L'autoeducazione è necessaria a meno che tu non abbia un benefattore generoso disposto a sostenere la formazione formale più e più volte. Ho dovuto imparare molte cose da solo fuori da una classe, per nominarne alcune più grandi:
ASP e ASP.Net sarebbero cose che dovevo imparare sul lavoro poiché dove lavoravo volevo che il nuovo sito riscrivesse usasse questi e quindi dovevo prenderlo da solo piuttosto che in una classe.
IIS e MS-SQL Server sarebbero un altro paio di cose che ho imparato di cui avevo bisogno e quindi direi che qui mi sono autodidatta. Mentre avevo dei colleghi che potevano aiutarmi con le domande se mi fossi davvero bloccato solo a farmi girare la testa era qualcosa di diverso nei primi giorni della mia carriera.
AJAX avrebbe fatto qualcosa che un pugno di anni fa ho appreso sul lavoro nella ricerca di framework e cercando di portarlo dove ho lavorato poco prima del lancio di Microsoft ASP.Net AJAX.
Allo stesso tempo, fare solo l'autoeducazione può essere pericoloso in quanto non tutti vogliono fare tutto in questo modo. Per alcune persone potrebbero desiderare più struttura e non essere così indipendenti nel farsi strada attraverso l'apprendimento di qualcosa.
@Kramii è corretto; i programmatori dovranno autoeducarsi durante la loro carriera
D: Cosa ho imparato con successo da solo?
L'insegnamento è un mito; l'insegnante può solo rendere disponibili le informazioni, lo studente deve ascoltare e decidere di apprendere o meno e cosa imparare. L'insegnante può solo mostrarti il percorso. In altre parole, tutta l'educazione è fondamentalmente autoeducazione
Ora, se intendi semplicemente "cosa hai imparato al di fuori di un'aula utile", la mia risposta sarebbe
perché quando ero a scuola le università erano in genere 12-15 anni indietro rispetto al mercato in ciò che insegnavano. Ad esempio, durante il giorno l'università mi insegnava la programmazione procedurale usando PL / 1 e di notte scrivevo un linguaggio di programmazione orientato agli oggetti in Assembly.
Da allora, libri e google sono i miei insegnanti.
Apparentemente tutte le risposte concordano sul fatto che l'autoeducazione è tutto. Non penso sia del tutto giusto. Un buon insegnante può insegnarti molto e soprattutto può insegnarti velocemente. Ovviamente a un certo punto devi prendere le cose nelle tue mani e iniziare a ricercare, leggere, provare. Anche un libro è scritto da qualcuno (un insegnante) e cerca di insegnarti qualcosa. Quella stessa persona potrebbe essere in piedi nella stanza e rispondere a tutte le tue domande invece di farti perdere tempo nella ricerca. Cercare e sbattere la testa contro il muro d'altra parte renderà le lezioni apprese molto preziose e difficilmente dimenticabili.
Soprattutto per iniziare una nuova materia, penso che un buon insegnante sia molto, molto, molto utile. E coloro che sono così appassionati di autoeducazione dovrebbero autoeducare senza wikipedia, senza stackoverflow, senza libri e senza blog ;-)