@ F-U-All - (and some other assessments) I will have to disagree, to an extent.
Leaning any language is a life long experience. C++ is no different, you will never know eveything, you can understand the syntax, you can solve problems and basic logic, you can develop fully functional applications, doesn't mean you "Know" the language. Frameworks change, constants change, etc. etc., just keep up with it when you are comfortable.
Learning the language itself takes as long as you want it to, if your intellectual enough with a good grasp on logic (the overall fundamental of development) then you can probably learn what you need to learn to be proficient in a few months, if your lazy and look for the easiest way to learn, and C&P as much as possible to save you time and the need to learn something that looks difficult, then you will never learn.
Best way to learn anything, is to get knee deep in it.
Wanna learn a language, Start by reading some basic books , understand syntax structures and how the language effects a developed application .
Then once you feel comfortable, start building a application on you own, something you need, something that will help you with a tedious task, the thrill of that application coming together and seeing the application becoming functional will either bore you or motivate you, if it bores you, quit, if you get excited, learn from it and move forward.

