I started programming when I was about 11, and I was fairly capable by the time I was a junior in highschool. So we are talking 19-24 years (I’m 35). I’ve worked in a lot of different languages over that time, but managed to avoid C++ until the past year. Well, I can’t begin to express what a vastly different experience this was for me from the programming I’d done in the past. For example, I thought I knew what pointers were all about since I’d used them in Perl. Well, I didn’t know half what I thought I did. C++ requires an entirely different way of thinking. Same for garbage collection. And of course, unless you are writing command-line stuff, you are most likely going to be working with some gigantic framework that’s a barrier in itself.
The long and the short of it: it’s a tough haul. Once you start getting the hang of it, it gets easier, but I often found that when I started getting comfortable, a whole new class of problems would appear. And to make matters worse, I learned the language as part of a project with a tight deadline. Whatever you ever do, don’t do that!
I don’t mean to sound like a killjoy. If you enjoy it, it isn’t work, but it is probably the steepest learning curve I’ve faced in all my years. And again, you can take that with a grain of salt – just doing simple C++ programs on a command line is, well, easy. But if you were to, say, tell someone you were going to write a graphics engine in six months, you’d be in a world of hurt. 