How to learn C++: Top Sites and Courses, from Intern to Senior (1/2)

Living in the era of digitalisation and constantly evolving computerisation in a various social or business environments, contributes to young people choosing programming as a notable life career. It happens so, because the employee market dominates. There is more demand than supply. Companies compete in offering good work conditions with a wide range of benefits. The decision is often made at the high school stage, where only the small percentage of students learn at least one computer language. Many of them are wondering where to start. It turns out that the most bothering thing is the language/technology choice.

Most of the complex software like Operating Systems, Database Management Systems or even Image Processing Systems have been written in C++. It is one of the most popular object oriented programming language, which basically gives the opportunity to use it in both worlds, high end desktop applications and low-level stuff (e.g. device drivers). It is commonly said that C++ lets the programmer to interact with a computer hardware directly, even if one uses window aplication to this. So why not learning it?

There is no doubt that learning C++ will open so many opportunities, especially in the area of embedded systems, complex artificial intelligence programs or other performance applications, where the microseconds matter. On the other hand, let’s be honest: it will not be so easy to learn, but quite challenging. All in all, overcoming those difficulties might be so fascinating!

„The only way to learn a new programming language is by writing programs in it.”
Dennis Ritchie

On the internet it can be easily found a lot of sites and tutorials to get started with the programming language. Most of them, even if they are paid, may have their own specific way of teaching. Choosing the first one should depend on your current knowledge background. Comprehensive course is great for beginners, who do not necessarily have previous programming experience. It starts from the very basics of C++ and programming in general and covers advanced topics, such as dynamic memory allocation, file management, etc. The following tutorials will teach the most important concepts.

C++ Tutorial for Complete Beginners | UDEMY [Free]

C++ Fundamentals Including C++ 17 | PLURALSIGHT [Trial|Paid]

Design Patterns in Modern C++ | Udemy [Paid]

Google C++ Style Guide [Free]

C++ Tutorial | Tutorialspoint [Free]

Once a basic knowledge will get hold of you, syntax and the vocabulary understood, then the perfect moment to start the code writing will begin. Initially, almost all students start with a primary main function, printing the famous Hello World! This of course precedes the IDE selection, but formally when only the code compiles and the executable prints the white message inside the black terminal window, you can call yourself a programmer. From this moment the writer skills and the complexity of the written programs should constantly increase.

Thinking about this career, people often choose university, because gaining a computer science degree will give them general skills needed to learn computer languages much easier. They get hands-on experience writing code, testing programs, fixing errors, and doing many other tasks that they will perform on the job. During those years, they take part in internships which show them the realities of the profession. They also have a great opportunity to be noticed and employed on a contract. When it happens, they mostly get the junior’s stage.

Programmers are usually divided into three levels. The real difference between those does not solely have to do with the years of their experience, but more than just the coding skills. This is not a derogation from the rule that a junior can be older than a senior developer. Juniors are the most inexperienced group. The mindset on this level often is to just make the code work. Straightforward code is hard for them, they constantly focus on the computer side rather than the human one. They need guidance from a more experienced developer.

The situation changes significantly with a practice. Knowing design patterns, architecture, automating testing, performance, security, etc. is a good way for a junior developer to close the gap with the mid and senior levels, but still it’s just one of the evaluation factors. Using the language fluently, makes them smart, but this is still not enough.

Part two of the article in a week!
If you need professional C++ developers immediately or you want to grow with us, contact us: