Come massimizzare le conoscenze acquisite da un libro di programmazione? [chiuso]


26

Non perché mi interessa quanto tempo impiega qualcuno a leggere un libro, ma di più perché sono interessato a come le persone ottengono la conoscenza da un libro (o immagino altre fonti) nel loro cervello nel modo migliore ed efficiente.

Personalmente seguo un approccio multi-pass (dalla mia risposta alla domanda originale):

  1. Scorri i contenuti, immergiti e leggi qualsiasi cosa con un'intestazione dall'aspetto interessante e infine osserva tutti i diagrammi e le illustrazioni. Non mi accontenterò molto in questa fase, ma mi dà una visione mentale del libro (circa un'ora al massimo)
  2. Prima di tutto passo attraverso il libro, in genere leggerò a fondo i capitoli di apertura di un libro che è molto pesante o introduce qualcosa di completamente nuovo. Per i libri che trattano un argomento che già conosco, sfiorerò o salterò pezzi che sembrano banali. Il resto del libro lo esaminerò abbastanza rapidamente ma non così rapidamente che sto solo sfogliando la pagina. (circa una settimana)
  3. Non tutti i libri che leggo arrivano così lontano, ma se trovo un libro abbastanza interessante o utile lo studierò correttamente. Scorrerò il libro a un ritmo più lento e farò alcuni o tutti gli esempi, proverò il codice, ecc. Spesso salterò interi capitoli qui a meno che il libro non sia davvero buono (1-3 settimane a seconda del libro).
  4. Alla fine, quando ho finito di leggerlo e sto leggendo altri libri, spesso mi immergerò ancora e ancora per fare riferimenti incrociati, confrontare, cercare cose, sfogliare, ecc., Quindi molti dei miei libri preferiti non finiscono per riunirsi polvere sullo scaffale.

Raramente prendo appunti durante la lettura (anche se potrei fare un po 'di pianificazione su carta se sto lavorando su qualcosa come un esempio di codice). Ho anche pensato di iniziare a usare un kanban personale per organizzare i miei progressi, ma non mi sono mai completamente adoperato per usare quella tecnica. Le mappe mentali sono un'altra cosa che mi piace l'idea, ma raramente.

Quali altri metodi hanno le persone? Quanto riesci a trovarli? Esistono tecniche comunemente consigliate che ritieni siano una perdita di tempo?


Personalmente provo a dimostrare all'autore di sbagliare o vedere se ci sono casi angolari che si rompono o non capisco. IMO, qualsiasi conoscenza che impari ma non testi per sbagliare può essere un'arma a doppio taglio.
Speriamo utile il

Risposte:


30

Fai gli esercizi.

Se non ce ne sono, inventane alcuni.


3
E dopo aver fatto gli esercizi, implementali nuovamente nel tuo codice a modo tuo. Gli esempi vanno bene e bene, ma niente come un'implementazione nel mondo reale per comprendere appieno un concetto.
Hugo,

+1: puoi aggiungerlo all'inizio di questa risposta: "Pratica".
Klaim,

Tutti i libri di programmazione in questi giorni verso la fine escogitano un breve progetto. Fare questo è il più grande punto di riferimento che chiunque può avere di se stesso per tenere traccia dei progressi.
Venki,

6

Assicurati di applicare alcune delle tecniche nella tua programmazione quotidiana il prima possibile.

Trovo che se non applico immediatamente le cose che ho imparato, devo visitarle nuovamente quando ne ho davvero bisogno.


1
Assolutamente. Inoltre, penso che sia solo quando applichi qualcosa in un contesto diverso da quello presentato nel libro che passi dalla memorizzazione alla comprensione. Sfortunatamente non è sempre possibile ... nonostante sia il responsabile dello sviluppo in cui lavoro, quindi nessuno mi metterà davvero in discussione se riesco a trovare una ragione plausibile per cui dovremmo fare cose del genere in Prolog o altro, è a volte semplicemente non è appropriato per portare le cose nel lavoro quotidiano. Immagino sia a questo che servono i progetti personali, ma poi perdi molti dei vantaggi dell'apprendimento cumulativo.
FinnNk,

@FinnNk - Non ho detto che sarebbe stato facile;) Questo è il problema che ho al momento con WPF. Sto realizzando un progetto a casa, ma non ho molto tempo da dedicare a questo, quindi devo costantemente rivedere ciò che so.
ChrisF

6

Metti in evidenza tutto ciò che ti ha sorpreso. Renderà più facile trovarlo in futuro.

Scrivi a margine ampiamente.

Se presti il ​​tuo libro a qualcuno, chiedi alla persona di seguire queste stesse regole, idealmente in diversi colori. Questo aggiunge valore al tuo libro.


2

Passaci sopra con un amico. Meglio ancora considerare la lettura del libro un esercizio come Pair Programming, in cui entrambi provate a spiegarvi l'un l'altro. (E ovviamente fai gli esercizi come detto sopra)


1

Strumento

Implementa ogni nuovo algoritmo o tecnica di tua lettura da solo, usando solo la tua memoria della descrizione dell'algoritmo o della tecnica come riferimento.


1

A causa di una mia carenza di attenzione, trovo difficile concentrarmi quando sto imparando in un approccio tradizionale dall'inizio alla fine. Salto alla fine del capitolo e vado direttamente agli esercizi, quindi uso una combinazione del libro e di Internet come riferimento per risolvere i problemi.

Una volta che mi metto in una posizione in cui devo usare il materiale del libro come mezzo per raggiungere un obiettivo invece di studiarlo "perché dovrei conoscerlo", i concetti diventano molto più facili da raccogliere e mettere in pratica.

I miei problemi di messa a fuoco significano anche che non scrivo direttamente gli esempi di codice e invece penso ai miei esempi e utilizzo il codice nel libro per aiutarmi a realizzarli. Essere creativi con il processo di apprendimento mi assicura che mi diverta, e l'unicità di tutto ciò che creo rende più facile ricordare cosa sto facendo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.