7 trucchi utili per padroneggiare un nuovo linguaggio di programmazione
La programmazione è difficile. Gli unici a dire il contrario sono quelli che hanno anni di esperienza nella codifica. Va bene essere sopraffatti! C'è un lotto per imparare e probabilmente dimenticherai le cose così velocemente come le impari. Fidati di me: è normale.
Ma solo perché è normale non significa che non sia frustrante. A dire il vero, imparare a codificare Come imparare a programmare senza tutti gli stress Come imparare a programmare senza lo stress Forse hai deciso di perseguire la programmazione, sia per una carriera che per un semplice hobby. Grande! Ma forse stai iniziando a sentirti sopraffatto. Non così eccezionale. Ecco l'aiuto per facilitare il tuo viaggio. Leggi di più può essere estremamente stressante se non ti avvicini con la giusta mentalità e l'atteggiamento.
Vuoi imparare quel nuovo linguaggio o libreria o struttura 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 a destra fuori dall'altro.
No More Cram Sessions
Nessuno vuole sentirlo, ma cramming è il modo peggiore per imparare a programmare. Se sei come me, cramming era il tuo modus operandi tutto durante la scuola e l'università. È l'unico modo in cui sai come studiare.
Ma impara dai miei errori: più cerchi di stipare, meno ricorderai. Questo è praticamente vero per qualsiasi argomento basato sulla conoscenza, ma è particolarmente vero quando si tratta di programmazione.
La base di questa affermazione proviene da uno studio del 2008 dell'Università della California, a San Diego:
“Gli studenti si comportano meglio quando spaziano le loro sessioni di studio piuttosto che quando cercano di stipare tutto nei loro noggin durante una seduta.”
Perché? Molto probabilmente a causa dell'effetto di posizione seriale:
“L'effetto di posizione seriale è la tendenza di una persona a richiamare il primo e l'ultimo elemento di una serie al meglio e gli elementi intermedi peggiori.”
In altre parole: in qualsiasi sessione di studio, è più probabile che manterrai le informazioni che hai appreso all'inizio e alla fine della sessione e più probabilmente dimenticherò le informazioni dal centro della sessione.
Vuoi massimizzare il numero di inizi e fini. Ecco perché è meglio avere più sessioni brevi invece di alcune lunghe sessioni quando si tratta di apprendere e assorbire nuovo materiale.
La prossima volta che ti siedi per imparare il codice, prendi un argomento alla volta e fai una breve pausa tra ogni argomento. (Assicurati solo di evitare che le tue pause si trasformino in procrastinazione!)
Revisione, revisione, revisione
Un altro motivo, perché il cramming è antitetico alla conservazione della conoscenza a lungo termine è perché la memoria svanisce nel tempo. Questo non è sempre vero - sono sicuro che tutti noi abbiamo alcuni ricordi d'infanzia che non scompariranno mai - ma sembra essere il caso generale per i ricordi che non sono legati alle emozioni.
Si discute se la memoria stessa decada a causa del tempo (teoria del decadimento) o venga semplicemente espulsa e sostituita da nuovi ricordi nel tempo (teoria delle interferenze). Qualunque teoria tu sottoscrivi, il risultato è che i ricordi più vecchi hanno maggiori probabilità di svanire.
È qui che entra in gioco la recensione.
Pensa ad esso come camminare attraverso una foresta di ricordi. Ogni volta che vuoi accedere a una memoria, devi tracciare il percorso neurale per trovarlo. Ogni volta che rintraccia questa memoria, il percorso si incide un po 'di più, proprio come si forma naturalmente un sentiero sterrato quando le persone percorrono lo stesso percorso ripetutamente. Se smetti di camminare sul sentiero, può svanire e il ricordo finisce per essere perso da qualche parte nella foresta.
Mettendo da parte tutta la psicologia del pop, ecco il takeaway: quando si tratta di programmazione, non è sufficiente imparare un argomento solo una o due volte. Devi rivederlo dozzine o anche centinaia di volte. Ogni recensione incide l'argomento nel tuo cervello un po 'più a fondo.
So quanto può essere difficile se sei un crammer naturale, ma rimarrai sorpreso dalla velocità con cui inizi a conservare il materiale una volta che ti sforzi di esaminarlo regolarmente.
Usa diverse risorse diverse
L'aspetto più difficile della programmazione, almeno per i programmatori nuovi di zecca, è l'ampiezza di dettagli e sfumature che devono essere interiorizzati. Fino a quando questa interiorizzazione non avverrà, sarai in uno stato perenne di grattacapi.
A seconda della lingua, è necessario memorizzare centinaia di regole di sintassi (ad es. Parole chiave, punto e virgola, spazio bianco). Alcune lingue sono più rigide, altre meno e altri ancora hanno i loro approcci alla sintassi unici che non vengono utilizzati da nessun'altra parte. Tutto ciò può creare confusione se non si ha esperienza di codifica precedente.
Per non parlare di tutte le informazioni concettuali che trascendono le singole lingue. Argomenti come la programmazione orientata agli oggetti, i sistemi di componenti di entità e gli schemi di osservazione possono davvero far girare la testa la prima volta che provi ad apprenderli.
Ho già condiviso questa illustrazione in precedenza, ma è così evidente che ripete:
“Supponiamo che qualcuno ti abbia mostrato una fotografia di una statua. Potrebbe fornire un'immagine sufficiente per ottenere un senso adeguato della statua, ma non otterresti l'intera immagine. Una foto ingrandita perderebbe dettagli complessi mentre una foto ingrandita perderebbe un senso di prospettiva. Tuttavia, con fotografie aggiuntive prese da altri angoli, puoi davvero iniziare a vedere la pienezza della statua nella trama, nelle dimensioni, nei dettagli, da fronte a retro, da lato a lato e dall'alto verso il basso.”
Imparare a programmare può essere sorprendentemente arbitrario. Tutti possono 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 puoi dare un'occhiata e ha perfettamente senso! Per quanto riguarda qualcun altro, forse si allontanano quando studiano le risorse A e B ma traggono grandi benefici dalla risorsa C.
Ecco perché è così importante per te essere disposto a consumare tutti i tipi di risorse là fuori. Tutti imparano in un 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 capire certi argomenti, è possibile che ci sia ancora qualcosa da imparare a riguardo. È anche possibile che la spiegazione di qualcun altro rafforzi definitivamente il concetto nella tua mente. 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 divertenti ed educativi giochi di codifica I 10 migliori giochi di programmazione per testare e sviluppare le tue abilità di codifica I 10 migliori giochi di programmazione per testare e sviluppare le tue abilità di programmazione I giochi di programmazione ti aiutano a imparare più velocemente con esercizi pratici ed esperienza sei davvero divertente! Leggi di più .
Insegna i concetti man mano che li impari
C'è un bellissimo concetto in programmazione chiamato rubber duck debugging I più strani principi di programmazione che non hai mai sentito dei più strani principi di programmazione che non hai mai sentito I seguenti principi ti insegneranno a essere saggio con il tuo codice. Alcuni sono strani e molti sono divertenti, ma sono tutti ugualmente pratici e importanti. Badate! Leggi altro, che descrive la tecnica di spiegare il proprio codice, riga per riga, a un'anatra di gomma inanimata. È usato quando un particolare segmento di codice è rotto, ma non c'è una ragione ovvia per questo.
Stranamente, la maggior parte dei programmatori ha un “Eureka!” momento nel mezzo di spiegare il codice mentre improvvisamente vedono dove si verifica l'errore nella logica di codifica. La verbalizzazione innesca una diversa area del cervello, costringendoti a vedere il problema da una nuova angolazione.
Questo concetto può anche essere usato per aiutarti a imparare nuovo materiale. Potresti aver imbattuto in questa citazione popolare che è spesso attribuita a Albert Einstein:
“Se non puoi spiegarlo semplicemente, non lo capisci abbastanza bene.”
Ad eccezione di alcuni campi che trattano di conoscenze teoriche avanzate, questo detto è vero. Più comprendi un argomento, più sei capace di spiegarlo in modo tale che qualcuno che non ha conoscenza di tale argomento può ancora arrivare a capirlo.
L'opposto di questo è altrettanto vero. Mentre cerchi di insegnare un argomento, ti imbatterai in alcuni concetti che non riesci a spiegare in modo chiaro. Non solo è un modo fantastico per diagnosticare le debolezze nelle tue conoscenze, l'effettivo processo di trovare la spiegazione giusta può aiutarti a solidificare il concetto nella tua mente.
Si chiama learning-by-teaching ed è fondamentalmente una svolta sul debugging dell'anatra di gomma.
Ora, non sto dicendo che dovresti in realtà insegnare agli altri; piuttosto, ogni nuovo argomento di programmazione che impari, prova ad insegnarlo ad una paperella di gomma (o ad un amico invisibile). All'inizio può sembrare sciocco, ma potresti trovarlo incredibilmente fruttuoso quando si tratta di conservazione della memoria.
Pratica deliberata rende perfetti
La nozione di talento è completa spazzatura. Nessuno esce dall'utero come violinista, lottatore o programmatore di livello mondiale. Certo, alcune persone potrebbero essere più inclini verso certe discipline, ma il talento senza esperienza è inutile Non lasciare che i tuoi talenti nascosti muoiano: 7 modi per andare e ritrovarli di nuovo Non lasciare che i tuoi talenti nascosti muoiano: 7 modi per andare e trovare Di nuovo la cattiva notizia è che devi lavorare sodo con l'intenzione di levigare i tuoi talenti nascosti. La buona notizia è che ci sono più opportunità che mai di sputare il tuo talento. Leggi 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 di 10.000 ore, che dice che devi investire almeno 10.000 ore in un argomento per diventare un maestro. Mentre il sentimento può essere vero, molte persone interpretano male ciò che stava cercando di dire.
Per farla breve, un impegno di 10.000 ore non garantisce effettivamente 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 Pratica deliberata Vuoi diventare un esperto in qualcosa? Prova Pratica deliberata È fin troppo facile sentirsi abbattuto quando stai cercando ardentemente di migliorare una certa abilità. Usa il potere della "pratica deliberata" per superare quegli altopiani infurianti. Leggi di più . La maestria può essere raggiunta solo attraverso 10.000 ore di pratica deliberata.
Il modo in cui ti eserciti è molto più importante di quanto tempo dedichi la pratica.
La lettura è passiva. Guardare le lezioni su YouTube è passivo. Ascoltare i podcast è passivo. Come programmatore newbie potresti essere tentato di passare dal tutorial al tutorial, affrontando soggetto dopo soggetto senza effettivamente applicare alcuna conoscenza in modo pratico. Resisti a questa tentazione.
Una cosa è capire un esempio prima di te, ma è un altro sintetizzare una soluzione da zero. Se vuoi accelerare il processo di apprendimento, devi essere disposto ad 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 un elaborato stratagemma per uccidere il divertimento e tenere occupati gli studenti - il che, per essere onesti, a volte era vero. Ma ora che guardo indietro, l'importanza dei compiti ha finalmente un senso. Mi ha costretto ad applicare le conoscenze appena acquisite in modo attivo.
Se sei iscritto a corsi e corsi di programmazione 11 I migliori siti per corsi di programmazione di computer online gratuiti 11 I migliori siti per corsi di programmazione computer online gratuiti In questi giorni, puoi diventare un master coder senza aver conseguito una laurea in informatica tradizionale. Dove sono tutte queste eccellenti risorse di apprendimento, chiedi? Grande domanda. Continua a leggere e ti mostreremo. Per saperne di più, non sottovalutare l'efficacia dei compiti a casa. Prendilo sul serio, trattandolo sempre come un'occasione per cementare ulteriormente ciò che hai imparato nella memoria a lungo termine.
Ma molte volte, i compiti non sono ancora abbastanza. (E se stai imparando come programmare da solo senza un vero istruttore, probabilmente non hai nessun compito per cominciare.)
Qual è la soluzione? Crea un paio di progetti secondari "usa e getta"!
Pensa ad alcune idee di progetto 5 Idee di progetto per aiutarti a imparare a programmare le idee di progetto più veloci 5 per aiutarti ad imparare la programmazione più velocemente Ci sono alcuni modi per facilitare la curva di apprendimento per la programmazione. Metti le mani sporche e impara più velocemente con i progetti collaterali che puoi iniziare in qualsiasi momento. Gioca con questi cinque. Leggi altro che vorresti implementare. Per i principianti assoluti, potresti considerare un gioco di Tic-Tac-Toe o Hangman. Per i programmatori esperti che cercano di apprendere un nuovo framework, prova a programmare una semplice app per dispositivi mobili o un gioco web. Finché ti interessa a livello personale, fallo!
La bellezza di questo approccio è duplice.
Innanzitutto, è più probabile che tieni la tua attenzione. Gli studi hanno dimostrato che gli studenti imparano meglio quando possono perseguire argomenti che li interessano. Questo è esattamente ciò che offre un progetto personale. Hai un obiettivo finale che in realtà vuoi raggiungere, quindi è più probabile che conservi le informazioni che ti porteranno lì.
In secondo luogo, non c'è alcuna pressione per il successo. Mentre il successo sarebbe bello, la mancanza di formalità ti permette di essere sperimentale e creativo. Inevitabilmente avrai problemi, ma è più come giocare con Lego che con i compiti. È più divertente e meno stressante.
Relax e segnalibro Tutto
La verità è che nessun programmatore ricorda qualunque cosa hanno imparato. Anche dopo aver lavorato per un po 'con una particolare libreria o framework, non è raro che non riesca a ricordare ogni funzione o variabile dalla cima della tua testa.
In effetti, cercare di memorizzare tutto potrebbe finire per essere un enorme spreco di tempo e fatica. I fogli di riferimento esistono per una ragione. Perché dedicare una intera enciclopedia alla memoria quando puoi semplicemente aprirla quando ne hai bisogno?
Quindi, quando memorizzare e quando fare riferimento?
Quando si tratta di materiale concettuale, interiorizzalo sempre al meglio delle tue capacità. Con ciò intendo la comprensione della 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 a memoria. Sentiti libero di rimandare a un foglio di riferimento. A volte fai riferimento a qualcosa così spesso che finisci per memorizzarlo. Se ciò accade, bene. Se no, va bene anche questo.
Personalmente, ho centinaia di segnalibri Internet per varie API, guide ed esercitazioni. Se ho bisogno di implementare un qualche tipo di algoritmo di individuazione dei percorsi, potrei fare riferimento a una guida per aiutarmi a farlo codificare prima di dimenticarlo nuovamente. Aiuta a capire 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 esso. Ho programmato come hobby per oltre un decennio e mi trovo ancora intimidito quando ho nuovi concetti da apprendere.
Non picchiarti se non riesci a ricordare tutto subito. Speriamo che i suggerimenti di cui sopra possano rivelarsi utili, e anche se non lo fossero, puoi sempre fare affidamento sui riferimenti segnalati come ultima risorsa.
Trovi che la programmazione sia difficile? Che tipo di trucchi e suggerimenti sai che potrebbe essere utile ai novizi programmatori? Condividi la tua saggezza con noi nei commenti qui sotto!
Crediti immagine: programmatore binario Via Shutterstock, Memory Eraser Via Shutterstock, Codice offuscato Via Shutterstock, Rubber Ducky Via Shutterstock, Tastiera Typist Via Shutterstock, codice sorgente PHP Via Shutterstock, File Folders Via Shutterstock
Scopri di più su: Programmazione.