Risposta breve:
Pratica, pratica, pratica.
Risposta non troppo breve:
Come ti ricordi come camminare? Come ti ricordi come parlare? Concesse queste abilità non sono esattamente le stesse e non richiedono una conoscenza apparentemente enciclopedica (almeno per i principianti), ma stai usando la stessa cosa: la memoria.
Anche se ammetto che, per i principianti, la programmazione può sembrare un argomento incredibilmente grande quando si inizia a studiarla, diventa come qualsiasi altro argomento una volta che hai ottenuto le basi.
Non appena l'ho capito, ho iniziato a suddividere le cose in pezzi sempre più piccoli (la mia versione personale di astrazione). In questo modo, qualcosa che sembrava difficile da ricordare diventa più facile (almeno con me lo fa).
Scrivere le cose aiuta più di quanto si possa pensare (avendo lavorato in Educazione, so che questo può avere enormi effetti positivi sulla fidelizzazione). Soprattutto se riesci a metterlo nelle tue stesse parole - piuttosto che copiarlo alla lettera. Se puoi parafrasare o equipararlo a qualcosa che già conosci, ancora meglio.
Ad esempio:
In C #, gli oggetti String sono immutabili. Ciò significa che ogni volta che dico al mio programma di cambiare il contenuto di un oggetto stringa, ciò che accade in realtà è che la stringa originale viene distrutta (tecnicamente si trova sul livello più basso del garbage collector). Esattamente come quando un artista commette un errore durante la creazione di una scultura in marmo - non può essere modificato, quindi viene distrutto e creato uno nuovo.
Non è un ottimo esempio, ma mostra le basi di ciò che sto ottenendo.
Anche la documentazione di qualità aiuta. Qualcosa che il mio docente di Programmazione 101 una volta mi ha detto di rimanere con me:
Make your commenting verbose. Not to the point of stupidity, but you need to be able to write comments that a non-programmer could understand. That way, you know that someone else on the project can understand it, perfectly. Imagine that you'd spend months implementing a system but you where involved in some kind of horrible accident on the way to work. Someone else will be assigned your work - especially if it's close to crunch time - and if they can't figure out what your code is doing, then production stops.
Anche i libri buoni sono un'ottima risorsa. Un altro tutor una volta mi ha detto che se un libro non ha un indice (e ce ne sono molti, là fuori che non lo fanno), allora non vale la pena acquistarlo.
Google può essere una risorsa straordinaria, ma fai attenzione ai codificatori copia-incolla. Stai lontano dai siti che ti danno un blocco di codice senza alcuna spiegazione. Preferisco leggere un intero articolo su piccoli blocchi di codice, in questo modo tu vai via sapendo esattamente che cosa il blocco di codice è destinato a fare, come lo fa e perché il programmatore lo ha scritto in quel modo.
Spero che ti aiuti