This is my collection of resources on C and C++ programming materials. I have spent most of my undergraduate and master years programming in Java. Now I need to switch to C and C++ quickly for my PhD projects focusing more on close to hardware performance.
I think most people seems to think you can transfer the knowledge with one language to another quickly. My experience has been that you can transfer the basic ones quickly, but to become an expert in one language, it is important to keep practicing the new languages.
This is especially true for someone like me, who hasn’t really mastered any one language well. I also believe that people who are more experienced can transfer the knowledge with one programming language to another more easily. They know what are the right questions to ask. As a result, it is important to figure out what is the common core functionalities of the different programming languages.
Bjarne Stroustrup’s books are always good
Programming Principles and Practices Using C++ (for beginners and experienced)
The C++ programming Language
Stanford Class on C++ fundamentals
http://web.stanford.edu/class/cs106b/index.shtml (programming abstractions)