I guess I just need to find a "driver" usually in the form of some other project
Exactly were I finally found my motivation. Before that I wondered aimlessly knowing I needed to improve, but never sticking to any study or project long enough.
learning curve like going from C to C++?
For me it was more of a perspective change than a learning curve. If you're already good with C, then you're starting farther along than I did.
I'm a very visual learner, if you are too see if this helps... Visualize a world full of C structures who's internals not only include data, but also their own independent code and functions. Matter of fact those internal functions might even be other structures. A new structure might clone an existing structure and then add it's own uniqueness, all the while being able to to refer back to the original structure's "guts".
What I've quickly and crudely described is a class with members and methods. An object.
The language is still C (with more semantics added), but the ways in which you can use it to manipulate "objects" is expanded.
I've never found one great book on C++. But the one I got the most from was
C++ primer plus by Steven Prata
Watching different videos on a tough subject was typically helpful.
I think C/C++/C# were created by satan and I want to slit my wrists when I code in them or have to look at code.
oh boy does that sound familiar. But I'm in a better place now.
On the other hand what I still find evil is when people code their projects with no comments. C++ can be buried in layers of abstraction if the coder so chooses, Trying to unravel what they've written can be soul killing. Clearly they never meant to share their code so why bother explaining it? I've seen a couple of projects wither and die after someone tried to pick up where someone else left off. Better to borrow the concept and start over with a new code base.
Also as a newbie don't be afraid to assume the code in a project you're looking at might not be correct. (rare as it might be) I once spent hours and hours assuming I had learned something wrong and I was just too dumb to figure out how the code I was looking at worked. While I'm often a dummy, in this case I finally figured out the flaw in the code. Annoying as it was, the time I spent troubleshooting was valuable in my learning.
One last tip. C++ syntax is only one part of the puzzle. Understanding what your compiler is doing with your text is as equally important. Compiler is making a lot of assumptions that a beginner doesn't know about. Study guides refer to this but I don't think they highlight the topic nearly well enough.
Plaz