Files
CppDeveloperRoadmap/Russian/HowToStudy.md
2023-01-31 21:57:43 +01:00

39 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Как учиться?
Главное правило: только вы отвечаете за своё развитие. Безусловно, вы найдете вокруг немало энтузиастов, которые с радостью помогут вам советом, но никто не разработает за вас полноценную программу обучения. Лучший друг в этом деле - вы, учебники и поисковик.
## Как учить новые стандарты C++ 11/14/17/20?
Новичкам можно посоветовать сильно не акцентироваться на стандартах в начале своего обучения. Начните с книг из списка [для начинающих](Books/PreJunior.md), и начинайте изучать фундаментальные основы. Современные книги для новичков содержат в себе информацию о различных возможностях стандартов C++11 и новее.
Возникает закономерный вопрос: "Почему так?!" Дело в том, что современные стандарты сконцентрированы на трёх основных вещах:
- исправление проблем
- синтаксический сахар
- новый функционал
Если с исправлением проблем и синтаксическим сахаром всё более-менее очевидно (вводятся новые конструкции, которые исправляют проблемы старых стандартов; появляются новые абстракции, упрощающие написание повторяющегося кода и т.д.), то с новым функционалом всё немного сложнее.
C++ развивается похожим образом, как и другие языки: берётся какая-то популярная идея из информатики (computer science) или удачная фича из других языков, и внедряется в язык. Изучать такие конструкции и использовать их важно, но на первых парах стоит изучить основы, которые были заложены более старыми стандартами (С++11/С++14). Они и описаны в большинстве современных книг для начинающих.
## По каким источникам изучать новые возможности стандартов C++?
- Доклады на [конференциях по C++](CommunitySources.md)
- На главной странице [CppReference](https://en.cppreference.com/w/cpp) вы найдете ссылки, со списками возможностей, введенные в каждом стандарте С++
- Познакомиться обзорно с новым функционалом стандартов можно при помощи книг [Бьёрна Страуструпа - C++. Краткий курс](https://www.ozon.ru/product/yazyk-programmirovaniya-c-kratkiy-kurs-150586178). Это книга переиздается при выходе новых стандартов, потому рекомендуем следить за переизданиями этой книги
- Профильные форумы/чаты/обсуждения
- Ролики с разбором новых возможностей стандартов на YouTube
- [Краткий обзор библиотечных функций C++11 и выше (ENG)](https://github.com/AnthonyCalandra/modern-cpp-features)
## Рекомендации по обучению
- Учитесь в своем ритме, а также в любом возрасте! Не акцентрируйтесь на историях: "Я программирую с пеленок" и т.п.. Большинство подобных историй — [систематическая ошибка выжившего](https://ru.wikipedia.org/wiki/Систематическая_ошибка_выжившего), или же попытка потешить свое самолюбие за ваш счет. У вас достаточно способностей, чтобы научиться программированию, в том числе с нуля, в том числе и на C++!
- Большинство проблем с которыми вы столкнетесь, скорее всего уже решены до вас. Если вы не можете найти ответ в интернете, попробуйте переформулировать запрос иным образом. Рано или поздно вы придете к правильному ответу. Если после этого ответа так и нет, то попробуйте решить задачу более простым путем.
- Помните, что вы должны изучать язык, а не бороться с рабочим окружением в начале обучения. Борьба с окружением может вас привести к полному разочарованию и потере мотивации.
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в "очевидных" местах. Просто возьмите паузу, позанимайтесь чем-нибудь другим, а через какое-то время возвращайтесь к задаче.
- Найдите единомышленников, которые тоже начинают учиться. Так вам будет интереснее погружаться в изучение языка вместе, а также делиться знаниями и опытом друг с другом. Дополнительно это поможет выработать навык командной работы. Времена "вольных художников" подошли к концу. Практически везде вам придется работать в команде.
- Попробуйте найти себе опытного ментора. Под его руководством вы сможете избежать различные типовые ловушки и потерю времени на них.
---
[**На главную страницу**](README.md)