It should be noted that one thing is to learn the programming language used, another thing is to learn the architecture and style used for a particular project. With a low-level language like C++, some knowledge about the platform (hardware and OS) is also very important.