Comincerei a pormi un problema, relativamente "difficile" al tuo livello, e lo risolverei, senza ovviamente leggere o scopiazzare nulla da internet.
la necessità aguzza l'ingegno eccetera.
poi userei materialmente quello che hai prodotto. perfino il "semidivino" Knuth ne riconosce l'importanza.
infine rammenta qualche "fatto della vita"
1) se ripeti l'alfabeto per mille volte non diventi un poeta. impari l'alfabeto.
2) facendo le stesse cose nello stesso modo, otterrai ragionevolmente gli stessi risultati
3) la differenza principale tra un dilettante e un professionista sono gli errori: il secondo ne ha fatti migliaia nel corso di decenni, ed il relativo bagaglio di esperienza consente di scartare (diciamo una sorta di branch & bound) buona parte delle idee più o meno "balzane". Essenzialmente perchè... le ha già provate . Quindi pattern & antipattern, ma non come vengono insegnati (cioè comandamenti divini), bensì per piena consapevolezza di pregi e difetti.
esempio scemo, ma illuminante. a scuola guida ti insegneranno che il freno a mano (anzi di stazionamento) serve per assicurare la sosta blablabla. Quindi ti fermi, spegni, tiri il freno a mano.
Se invece farai una scuola guida di rally, al contrario, un buon freno a mano idraulico lo userai praticamente sempre: nessun pilota di rally, sia pure principiante, ne farebbe a meno.
Il medesimo strumento (concettualmente, costruttivamente non sono identici) ha due usi completamente diversi: l'importante è non fossilizzarti mentalmente su "il freno a mano MAI e POI MAI si usa in movimento, men che meno per... curvare, perchè così mi hanno insegnato a scuola guida".
mantieni la mente elastica, fluida: più è rigida, "fossilizzata", più è difficile trovare approcci validi nella "vita di tutti i giorni" (che poi qualcuno chiama pomposamente problem solving).