C++ for dummies. How to learn, what to avoid.

We took upon the subject of learning to program a couple of times. Today we go back to this issue and focus on a particular programming language – C++. Why did we choose this one? C++ is one of the most popular programming languages. Currently, it's in the third place in Tiobe Index, and in 2003 it was named the „Language of the year.” Also, many people when starting their adventure with programming choose to start with C++.

To start the learning of programming, you need three things: a person, motivation, and educational materials. The first one is quite obvious and doesn't need any commentary. As for motivation, programmers name it as the key factor to coding and at the same time the hardest one. Often the initial enthusiasm wears off, and the trick is to be able to motivate oneself regularly. Everyone has their way of doing so. If you want to read more about the subject of motivation check our article „What motivates a programmer?”. In this text, we will discuss the issue of educational materials and tell you how to learn and what to avoid. Let's begin with the last.

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.

A common mistake of programming beginners is using only Polish websites and materials. The biggest and the newest amounts of knowledge is to be found in English-speaking internet. The sooner you will start to use English the better.

Learning by heart is being less and less often used even in schools. Programming is not about memorizing. You need to be able to search for information, study the documentation and try to solve problems yourself. It's better to understand coding, not recite every line of code by heart.

One more thing: don't waste time! If you're having trouble solving a task in C++ take a break. Sometimes you need a fresh look to resolve a problem. And now some guideline where to look for knowledge.


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.

Finally, a reminder: a programmer never stops learning. If you consider programming as a career, you need to develop your skills regularly. It's worth to be best at what you do; no one wants to stay average. Bulldogjob wishes you to reach for the stars in programming!