Annuncio

La programmazione è duro. Le uniche persone che dicono il contrario sono quelle che hanno anni di esperienza di programmazione alle spalle. Va bene essere sopraffatti! C'è un quantità imparare e probabilmente dimenticherai le cose non appena le impari. Fidati di me: è normale.

Ma solo perché è normale non significa che non sia frustrante. A dire il vero, imparare a programmare Come imparare a programmare senza tutto lo stressForse hai deciso di dedicarti alla programmazione, per lavoro o solo per hobby. Grande! Ma forse stai iniziando a sentirti sopraffatto. Non così eccezionale. Ecco un aiuto per facilitare il tuo viaggio. Per saperne di più può essere estremamente stressante se non lo affronti con la mentalità e l'atteggiamento giusti.

Vuoi imparare quel nuovo linguaggio, libreria o framework il prima possibile, giusto? È comprensibile. Fortunatamente, ci sono una manciata di suggerimenti che possono aiutarti a conservare meglio tutte quelle pesanti informazioni di programmazione che continuano a volare in un orecchio e fuori dall'altro.

instagram viewer

Niente più sessioni di pasticcio

Nessuno vuole ascoltarlo, ma il cramming è il modo peggiore per imparare a programmare. Se sei come me, il cramming era tuo modus operandi tutto durante la scuola e l'università. È l'unico modo in cui sai studiare.

Ma impara dai miei errori: più provi a stipare, meno ricorderai. Questo è più o meno vero per qualsiasi argomento basato sulla conoscenza, ma è particolarmente vero quando si tratta di programmazione.

La base di questa affermazione viene da uno studio del 2008 dall'Università della California, San Diego:

"Gli studenti ottengono risultati migliori quando dividono le loro sessioni di studio piuttosto che quando cercano di stipare tutto nelle loro cosce durante una sola seduta."

Come mai? Molto probabilmente a causa del effetto posizione seriale:

"L'effetto della posizione seriale è la tendenza di una persona a ricordare meglio il primo e l'ultimo elemento di una serie e peggio gli elementi intermedi".

In altre parole: in una data sessione di studio, è più probabile che conservi le informazioni che hai appreso vicino l'inizio e la fine della sessione ed è più probabile che dimentichi le informazioni dalla metà del sessione.

Vuoi massimizzare il numero di inizi e di fine. Ecco perché è meglio avere più sessioni brevi invece di poche sessioni lunghe quando si tratta di apprendere e assorbire nuovo materiale.

La prossima volta che ti siedi per imparare il codice, affronta un argomento alla volta e fai una breve pausa tra ogni argomento. (Assicurati solo di evitare che le tue pause si trasformino in procrastinazione!)

Rivedere, Rivedere, Rivedere

Un altro motivo per cui il cramming è antitetico alla conservazione della conoscenza a lungo termine è perché la memoria svanisce nel tempo. Questo non è sempre vero - sono sicuro che tutti abbiamo alcuni ricordi d'infanzia che non scompariranno mai - ma sembra essere il caso generale dei ricordi che non sono legati alle emozioni.

C'è un certo dibattito sul fatto che la memoria stessa decada a causa del tempo (teoria del decadimento) o semplicemente viene espulso e sostituito da nuovi ricordi nel tempo (teoria dell'interferenza). Qualunque sia la teoria a cui ti iscrivi, il risultato è che i ricordi più vecchi hanno maggiori probabilità di svanire.

È qui che entra in gioco la revisione.

newbie-coder-tips-memory-review

Pensalo come camminare attraverso una foresta di ricordi. Ogni volta che vuoi accedere a un ricordo, devi tracciare il percorso neurale per trovarlo. Ogni volta che ripercorri quel ricordo, il percorso viene inciso un po' di più, proprio come un percorso sterrato si forma naturalmente quando le persone percorrono lo stesso percorso più e più volte. Se smetti di percorrere il sentiero, può svanire e il ricordo finisce per perdersi da qualche parte nella foresta.

Mettendo da parte tutta la psicologia pop, ecco il punto: quando si tratta di programmazione, non è sufficiente imparare un argomento solo una o due volte. Devi rivisitarlo decine o addirittura centinaia di volte. Ogni recensione incide quell'argomento nel tuo cervello un po' più a fondo.

So quanto possa essere difficile se sei un crammer naturale, ma rimarrai sorpreso dalla velocità con cui inizi a trattenere il materiale una volta che fai uno sforzo per rivederlo regolarmente.

Usa diverse risorse diverse

L'aspetto più difficile della programmazione, almeno per i programmatori nuovi di zecca, è l'ampiezza dei dettagli e delle sfumature che devono essere interiorizzati. Fino a quando non accadrà quell'interiorizzazione, sarai in uno stato perpetuo di grattarsi la testa.

A seconda della lingua, dovrai memorizzare centinaia di regole di sintassi (ad esempio parole chiave, punto e virgola, spazi). Alcuni linguaggi sono più rigorosi, altri lo sono meno e altri ancora hanno i loro approcci unici alla sintassi che non vengono utilizzati da nessun'altra parte. Tutto questo può essere fonte di confusione se non hai esperienza di programmazione precedente.

newbie-coder-suggerimenti-codice-confusione

Per non parlare di tutte le informazioni concettuali che trascendono i singoli linguaggi. Argomenti come la programmazione orientata agli oggetti, i sistemi di componenti di entità e i modelli di osservatore possono davvero farti girare la testa la prima volta che provi ad impararli.

Ho già condiviso questa illustrazione in precedenza, ma è così puntuale che vale la pena ripeterlo:

“Supponiamo che qualcuno ti mostri la fotografia di una statua. Potrebbe fornire un'immagine sufficiente per avere un'idea adeguata della statua, ma non otterresti l'intera immagine. Una foto ingrandita perderebbe dettagli complessi mentre una foto ingrandita perderebbe il senso della prospettiva. Tuttavia, con ulteriori fotografie scattate da altre angolazioni, puoi davvero iniziare a vedere il pienezza della statua nella trama, nelle dimensioni, nei dettagli, da davanti a dietro, da lato a lato, e dall'alto al basso."

Imparare a programmare può essere sorprendentemente arbitrario. Tutti potrebbero elogiare la risorsa A come il modo migliore per imparare la lingua X, ma forse non ha senso per te. Forse tutti odiano la risorsa B, ma dai un'occhiata e ha perfettamente senso! Per quanto riguarda qualcun altro, forse si escludono quando studiano le risorse A e B, ma traggono grandi benefici dalla risorsa C.

Ecco perché è così importante che tu sia disposto a consumare tutti i tipi di risorse là fuori. Ognuno impara in modo diverso. Se hai problemi con un argomento particolare, cerca un'altra risorsa. Forse quello sarà più adatto a te. Forse no.

Anche se pensi di comprendere determinati argomenti, è possibile che ci sia altro da imparare al riguardo. È anche possibile che la spiegazione di qualcun altro consolidi il concetto nella tua mente per sempre. Non si sa mai, quindi perché non consumare quante più risorse possibile?

Nota che i giochi possono essere una risorsa estremamente utile! Dai un'occhiata a questi giochi di programmazione divertenti ed educativi I 9 migliori giochi di programmazione per sviluppare le tue abilità di programmazioneI giochi di programmazione ti aiutano a imparare più velocemente con la pratica e l'esperienza pratica. Inoltre, sono un modo divertente per testare le tue abilità di programmazione! Per saperne di più .

Insegna i concetti mentre li impari

C'è un bellissimo concetto nella programmazione chiamato debug dell'anatra di gomma I principi di programmazione più strani di cui non hai mai sentito parlareI seguenti principi ti insegneranno ad essere saggio con il tuo codice. Alcuni sono strani e molti sono divertenti, ma sono tutti ugualmente pratici e importanti. Badate! Per saperne di più , che descrive la tecnica per spiegare il proprio codice, riga per riga, a una paperella di gomma inanimata. Viene utilizzato quando un particolare segmento di codice viene interrotto, ma non c'è una ragione ovvia per questo.

Stranamente, la maggior parte dei programmatori ha un "Eureka!" momento nel mezzo della spiegazione del codice mentre improvvisamente vedono dove si verifica l'errore nella logica di codifica. La verbalizzazione attiva un'area diversa del cervello, costringendoti a vedere il problema da una nuova prospettiva.

Questo concetto può essere utilizzato anche per aiutarti ad apprendere nuovo materiale. Potresti esserti imbattuto in questa citazione popolare che viene spesso attribuita ad Albert Einstein:

“Se non puoi spiegarlo semplicemente, non lo capisci abbastanza bene.”

Ad eccezione di alcuni campi che si occupano di conoscenze teoriche avanzate, questo detto è vero. Più capisci un argomento, più sei attrezzato per spiegarlo in modo tale che qualcuno che non ha conoscenza di tale argomento possa comunque capirlo.

newbie-coder-tips-rubber-duck

È vero anche il contrario di questo. Quando provi a insegnare un argomento, ti imbatterai in alcuni concetti che non riesci a spiegare in modo chiaro. Non solo è un modo fantastico per diagnosticare i punti deboli nelle tue conoscenze, ma il processo effettivo per trovare la spiegazione corretta può aiutarti a consolidare il concetto nella tua mente.

Si chiama apprendimento attraverso l'insegnamento ed è fondamentalmente una svolta nel debugging della paperella di gomma.

Ora, non sto dicendo che dovresti in realtà insegnare agli altri; piuttosto, ogni nuovo argomento di programmazione che impari, prova a insegnarlo a una papera di gomma (o un amico invisibile). All'inizio può sembrare sciocco, ma potresti trovarlo incredibilmente fruttuoso quando si tratta di ritenzione di memoria.

La pratica deliberata rende perfetti

La nozione di talento è una completa sciocchezza. Nessuno esce dal grembo materno come violinista, lottatore o programmatore di livello mondiale. Certo, alcune persone potrebbero essere più inclini a certe discipline, ma il talento senza esperienza è inutile Non lasciare che i tuoi talenti nascosti muoiano: 7 modi per andare e ritrovarliLa cattiva notizia è che devi lavorare sodo con l'intenzione di lucidare i tuoi talenti nascosti. La buona notizia è che ci sono più opportunità che mai per mettere in luce i tuoi talenti. Per saperne di più . Allo stesso modo, il duro lavoro è sempre più prezioso del talento.

Detto ciò, non tutte le forme di duro lavoro sono uguali. Malcolm Gladwell ha coniato la famigerata Regola delle 10.000 ore, che dice che devi investire almeno 10.000 ore in una materia per diventarne un maestro. Sebbene il sentimento possa essere vero, molte persone interpretano male ciò che stava cercando di dire.

newbie-coder-suggerimenti-pratica-deliberata

Per farla breve, un impegno di 10.000 ore in realtà non garantisce la padronanza. Conosci il detto: "La pratica non rende perfetti. La pratica perfetta rende perfetti.” Per essere significativo, la pratica deve essere intenzionale Vuoi diventare un esperto in qualcosa? Prova la pratica deliberataÈ fin troppo facile sentirsi abbattuti quando si sta strenuamente cercando di migliorare una certa abilità. Usa il potere della "pratica deliberata" per superare quegli altipiani esasperanti. Per saperne di più . La maestria può essere raggiunta solo attraverso 10.000 ore di pratica deliberata.

Il modo in cui ti eserciti conta molto di più del tempo che dedichi alla pratica.

La lettura è passiva. Guardare le lezioni su YouTube è passivo. Ascoltare i podcast è passivo. Come programmatore principiante potresti essere tentato di passare da un tutorial all'altro, affrontando un argomento dopo l'altro senza applicare effettivamente nessuna di queste conoscenze in modo pratico. Resisti a questa tentazione.

Una cosa è capire un esempio davanti a te, ma un'altra è sintetizzare una soluzione da zero. Se vuoi accelerare il processo di apprendimento, devi essere disposto a essere attivo anziché passivo. La pratica attiva è l'unico tipo che conta alla fine.

Sperimenta con progetti personali

Per me, i compiti erano la parte peggiore della scuola. Sembrava solo uno stratagemma elaborato per uccidere il divertimento e tenere occupati gli studenti, il che, per essere onesti, a volte era vero. Ma ora che mi guardo indietro, l'importanza dei compiti ha finalmente un senso. Mi ha costretto ad applicare in modo attivo le nuove conoscenze acquisite.

Se sei iscritto a corsi e lezioni di programmazione Gli 11 migliori siti per corsi di programmazione informatica online gratuitiUtilizzando questi corsi di programmazione informatica online gratuiti, puoi diventare un grande programmatore senza una laurea in informatica. Per saperne di più , non sottovalutare l'efficacia dei compiti a casa. Prendilo sul serio, trattandolo sempre come un'opportunità per cementare ulteriormente ciò che hai imparato nella memoria a lungo termine.

Ma molte volte, i compiti non sono ancora sufficienti. (E se stai imparando a programmare da solo senza un vero istruttore, probabilmente non hai compiti a casa per cominciare.)

newbie-coder-consigli-progetti-personali

Qual è la soluzione? Crea un paio di progetti collaterali usa e getta!

Pensa a un poche idee di progetto 5 idee di progetto per aiutarti a imparare a programmare più velocementeCi sono alcuni modi per facilitare la curva di apprendimento per la programmazione. Sporcati le mani e impara più velocemente con i progetti collaterali che puoi iniziare in qualsiasi momento. Gioca con questi cinque. Per saperne di più che vorresti implementare. Per i principianti assoluti, potresti prendere in considerazione un gioco di Tic-Tac-Toe o Hangman. Per i programmatori esperti che cercano di imparare un nuovo framework, prova a codificare una semplice app mobile o un gioco web. Finché ti interessa a livello personale, fallo!

La bellezza di questo approccio è duplice.

Innanzitutto, è più probabile che attiri la tua attenzione. Gli studi hanno dimostrato che gli studenti imparano meglio quando possono approfondire argomenti che li interessano. Questo è esattamente ciò che offre un progetto personale. Hai un obiettivo finale che vuoi effettivamente raggiungere, quindi è più probabile che conservi le informazioni che ti porteranno lì.

In secondo luogo, non c'è alcuna pressione per te per avere successo. Anche se il successo sarebbe bello, la mancanza di formalità ti permette di essere sperimentale e creativo. Inevitabilmente incontrerai problemi, ma è più come giocare con i Lego che come compiti a casa. È più divertente e non così stressante.

Rilassati e aggiungi tutto ai segnalibri

La verità è che nessun programmatore ricorda Tutto quanto hanno imparato. Anche dopo aver lavorato con una particolare libreria o framework per un po', non è raro se non riesci a ricordare ogni funzione o variabile dalla parte superiore della tua testa.

In effetti, cercare di memorizzare tutto potrebbe finire per essere un'enorme perdita di tempo e fatica. I fogli di riferimento esistono per un motivo. Perché affidare un'intera enciclopedia alla memoria quando puoi semplicemente aprirla ogni volta che ne hai bisogno?

newbie-coder-suggerimenti-riferimento-tutto

Quindi, quando memorizzare e quando fare riferimento?

Quando si tratta di materiale concettuale, interiorizzalo sempre al meglio delle tue capacità. Con questo intendo comprendere la teoria anche se non puoi convertirla in codice reale (e la teoria dovrebbe essere abbastanza chiara per te da insegnarla chiaramente).

Per tutto il resto, come nomi di funzioni specifiche, elenchi di parametri o persino stranezze linguistiche, Non mi preoccuperei di impegnarmi nella memoria. Sentiti libero di rimandare a un foglio di riferimento. A volte farai riferimento a qualcosa così spesso che finirai per memorizzarlo. Se ciò accade, bene. Se no, va bene lo stesso.

Personalmente, ho centinaia di segnalibri Internet per varie API, guide e tutorial. Se ho bisogno di implementare un qualche tipo di algoritmo di ricerca del percorso, potrei fare riferimento a una guida per aiutarmi a codificarlo prima di dimenticarmene di nuovo. Aiuta a comprendere i concetti sottostanti, ma cerco di non preoccuparmi dei dettagli di implementazione.

Pensieri finali

Lo ripeterò un milione di volte se devo: la programmazione è difficile e va bene se si lotta con essa. Ho programmato per hobby per oltre un decennio e mi ritrovo ancora intimidito quando ho nuovi concetti da imparare.

Non picchiarti se non ricordi tutto subito. Si spera che i suggerimenti di cui sopra si rivelino utili e, anche se non lo fanno, puoi sempre fare affidamento sui riferimenti ai segnalibri come ultima risorsa.

Trovi difficile la programmazione? Che tipo di trucchi e suggerimenti conosci che potrebbero essere utili ai programmatori principianti? Condividi la tua saggezza con noi nei commenti qui sotto!

Crediti immagine: Programmatore binario tramite Shutterstock, Cancellazione della memoria tramite Shutterstock, Codice offuscato tramite Shutterstock, Paperella di gomma tramite Shutterstock, Dattilografo tramite Shutterstock, Codice sorgente PHP tramite Shutterstock, Cartelle di file tramite Shutterstock

Joel Lee ha un B.S. in Informatica e oltre sei anni di esperienza di scrittura professionale. È l'editore capo di MakeUseOf.