# :mortar_board: How to study?

The main piece of advice that can be given is that you should understand that you are solely responsible for your own development. Of course, you will come across many enthusiasts who will be happy to offer you advice, but no one will create specific tasks or training programs for you. Your best friends in this process will be yourself, Google search, and tutorials.

## :question: How to study new C++ 11/14/17/20 standards?

Beginners should not focus too much on standards at the start of their journey. It's recommended to pick up books from the [Beginner's List](Books/PreJunior.md) and learn the fundamentals. Modern books for beginners typically contain limited information about the capabilities of C++11 and newer standards. In the beginning, it's best not to focus on the new language standards.

It is important to understand why modern standards are primarily focused on fixing issues, providing syntactic sugar, and introducing new functionality. Fixing problems and providing syntactic sugar are straightforward; new constructs are introduced to correct problems in older standards, and new abstractions are introduced to simplify repetitive code. However, with new functionality, it's a bit more complicated.

C++, like other languages, evolves by incorporating popular ideas from computer science and successful features from other languages. It is important to study such constructs and use them as necessary, but first, it is crucial to study the foundations that were established by older standards (C++11/C++14), which are described in most modern books for beginners.


## :question: Where to get an overview of the latest C++ standards features?

- Presentations among [C++ conferences](CommunitySources.md)
- On the main page of the [CppReference](https://en.cppreference.com/w/cpp) you will find links to pages with overview lists of the newest features
- You can read the following book by [Bjarne Stroustrup - A Tour of C++](https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832). Regularly check the book for updates, as it is revised with each new release of the C++ standard
- Professional forums/chats/discussions/etc.
- Overview videos on YouTube by community
- [A cheatsheet of modern C++ language and library features](https://github.com/AnthonyCalandra/modern-cpp-features)

## :eyes: Training recommendations

- Learn at your own pace, no matter what your age may be! Don't be discouraged by stories of "I'm a programmer since I was born." Most of these stories are an example of [survivorship bias](https://en.wikipedia.org/wiki/Survivorship_bias) or an attempt to flatter their vanity at your expense. You have the ability to learn programming from scratch, including C++!
- When facing problems, it is advisable to search for solutions on the internet, as most of the problems you encounter are likely already solved. If you cannot find the answer, try reformulating your request in a different way. If you still can't find the solution, try to simplify the problem.
- It is important to focus on learning the language rather than struggling with the work environment, as this can lead to frustration and a loss of motivation.
- Keep in mind that even experienced developers encounter problems and can get stuck, so taking a break and returning to the task later is a good idea.
- Finding like-minded individuals who are also starting their learning path can make the process more enjoyable, as you can share knowledge and experience with each other, and develop teamwork skills. In today's world, almost everywhere you will have to work as a team, so it is helpful to develop these skills.
- Having an experienced mentor can also be valuable, as he can guide you to avoid common pitfalls and save you time.


---

[**To main page**](../README.md)