Sì, ma se uno deve imparare l'informatica sarà meglio che si faccia un'idea di cosa sia la memoria, di cosa sia la pila, dei puntatori e SOPRATTUTTO che un'inizializzazione NON E' un assegnamento. Prima di partire con l'architettura del software. Per quello il c++ è il più completo, oltre all'OO e all'ereditarietà multipla, ecc... c'è anche la gestione della memoria, delle strutture dati base (differenze tra array e liste) ecc...
E non c'entra nulla il riciclare i nomi delle variabili (ma chi lo fa poi, LOL) o giochi coi puntatori (sebbene immagino che anche tu inconsapevolmente li usi per i callbacks

, c'entra farsi un'idea più completa della struttura di un calcolatore e della sua programmazione, Anche perchè, se uno non sa cos'è una classe, che cazzo si mette a leggere di patterns?
Ma immagino che su questo saremo sempre come cane e gatto, lol. Detto questo converrai però con me che se le basi sono solide, a imparare un linguaggio è come bersi un bicchier d'acqua, per cui io preferisco i libri che schematizzano bene i concetti. E poi TANTA pratica