La principale difficulté dans l'apprentissage d'un langage est de se concentrer sur les concepts essentiels du langage, et pas sur toutes ses possibilités offertes.
Sur le C++, c'est un exercice ardu, car il n'est pas composé d'un petit nombre de briques fondatrices.
Personnellement, je te conseillerais de commencer par faire du C et t'intéresser un minimum à l'architecture des machines : comprendre comment fonctionne la mémoire, un processeur...
Cela te permettra de comprendre pleinement ce que tu feras en C.
Quand tu te sentiras à l'aise avec le C, que tu sauras concevoir un type abstrait, l'implémenter, implémenter quelques algos dessus, que tu seras à l'aise avec l'allocation dynamique et l'arithmétique des pointeurs, tu pourras rajouter des concepts objets (en C++ par exemple).
Sinon tu cours le risque de ne jamais pleinement comprendre ce que tu fais.
Tu cours aussi le risque de ne pas bien différencier un langage impératif et un langage objet, et quelle partie est incluse dans laquelle.
Tu as fais 6 mois de C++ ?
Passes au C.
Tu vas respirer, comprendre pas mal de choses que tu ne comprenais surement pas, et tu vas avoir l'impression (la vraie!) de progresser.
Attention, je ne dis pas ça en tant que "anti-orienté objet", j'aime l'orienté objet.
Mais je connais bien les difficultés d'apprentissage d'un langage orienté objet.
Alors en tant premier langage...
Tu ne peux pas comprendre convenablement l'allocation dynamique, le passage de parametres, la notion de pointeur, etc... (C)
si au milieu tu as des références, du polymorphisme, de l'héritage, des templates (C++)
Voila, bon courage à toi !