Effective C++ learning – what to avoid?
Sometimes you can spend many hours trying to learn, and in the end, you still don't remember anything. That's because effective learning is an art. You definitely shouldn't confine yourself to just books. While it's always good to read, bear in mind that books are very quickly becoming outdated. Especially in such an area as programming. When choosing books remember to check their reviews. Don't waste your time and money on irrelevant publications.
1. Online courses
For a programmer, the internet is a mine of knowledge and the best source of information. You can find many C++ online courses on various levels. Among those, there are many free tutorials in different forms (text, video). Here are our propositions:
C Tutorial – a tutorial for developers who want to master in C++;
Learn How to Program with C++ – excellent course for English-speaking programmers. Unfortunately, it has one disadvantage – it's not free;
LearnCpp – a compilation of tutorials in C++ on different difficulty levels;
Google's C++ Class – Google's proposition for every C++ enthusiast.
2. Books
Despite the limited printed sources, you shouldn't give up on books completely. They can be a great assistance in learning.
C++ Primer Plus – well-written handbook worth reading;
Effective Modern C++ – a good support in learning newest standards of programming language (C++11 and C++14);
Introduction to Algorithms – while you find out how to program it's good to read something about algorithms too;
Clean Code – it's best to employ good habits from the very beginning of your programming career. From this book, you will learn how to write and format a good code.
3. Online tasks
Practice makes perfect. The real learning of programming is tackling various challenges, not mindless copying of a code. Such challenges are easily found on the internet.
HackerRank – top-rated website (over 2 billion users) where you can check your skills;
CodeEval – over 240 programming challenges in many languages, including C++;
Sphere Online Judge – here you will find many tasks on different difficulty levels;
Code Chef – another place to test your skills with many contests and tasks.
4. Public code
Analyzing publicly shared code is another great way to expand your programming knowledge. Share your code for the other programmers to evaluate. It's a fast way to gain feedback regarding the quality of your code, necessary adjustments, etc.
GitHub – a must-visit for any programmer;
StackOverflow – a huge programming community, the right place for asking questions;
Reddit – another excellent source of information.