Just would like some thoughts of what you think about my strategy to learn C++. While I understand that it takes years to master a programming language, I simply want to get to the point where I can be considered competent as quickly as possible. Why quickly? Well when I say quickly I'm really saying I'm committed, and that I don't want it to take forever where forever is never. If it takes five years to become competent, it takes five years. I'm not expecting 24 hours or 30 days.
About me: I don't have a CS degree, I have an anthropology degree and a Masters in library science. Learning the CS fundamentals such as Big O notation, and basics such as binary trees and linked lists, sort algorithms has been a challenge. Probably nothing substitutes a good CS degree. :( I do have many years programming experience, starting with PHP in 2001, ActionScript, 2003, JavaScript soon after. I have been writing programs in Python for about two years now and I have learned C (by reading the K&R book and writing some programs), but I'm probably not going to get hired for a C job. Also recently learned Objective C. I work as a JavaScript & Python, & CSS developer at a website at the moment.
Anyhow, this is my strategy: Read the Stroustrup book (I just started on Part I) and at the same time start a simple C++ project, while also doing many of the Stroustrup exercises.
Thoughts?
Also be sure to check out How Not to Program in C++
Learn Qt. Trust me on this; I develop all kinds of C++ app for a living. C++ with Qt makes you infinitely more productive. I used to combine so many different libraries (Boost, Intel's, database connectors, etc..) just to achieve the kind of stuff we do (high-performance/real-time computing). At the end, I found that more than 80% of what I need is already included in Qt.
Not to mention, imo, Qt has the best documentation on any framework/library I've worked on, which makes it very easy to just learn everything on your own.
Try it, and see for yourself.
Disclaimer: I'm just a developer--I dont work for Nokia. =p
If you're on this Stroustrup book:
The C++ Programming Language
http://www.research.att.com/~bs/3rd.html
And finding it hard going... which it can be. You might want to switch and start with this one instead:
Programming -- Principles and Practice Using C++
http://www.research.att.com/~bs/programming.html
If you have a strong handle on C, then C++ is not a huge leap once you have a good handle on the OOP concepts....which hopefully you have from becoming proficient in Python. Coming from C, the biggest thing to learn in C++ is really getting familiar with the Standard Template Library (STL) and all the subtle things come along with using it.
Personally, I think the Stroustrup book is not all that great for learning the language, it's more of a reference. I would recommend C++ Primer Plus as a better book and the Effective C++ books by Meyers for really learning to use the language coherently.
Sounds good to me. Get to it!
There are dozens of Learning Styles. You've picked one that you think will work for you.
Do you have a specific question or problem? For instance, was your question really a plea for additional or different books? Without you asking something more specific than "Thoughts?", you might not get many responses that actually fit what you're actually looking for.
Programs, BTW, are goal directed. Your learning to also be goal directed. Your questions, similarly must be goal directed. Programming is about tangible, concrete specifics.