Как учиться?
Главное правило: только вы отвечаете за своё развитие. Безусловно, вы найдете вокруг немало энтузиастов, которые с радостью помогут вам советом, но никто не разработает за вас полноценную программу обучения. Лучший друг в этом деле - вы, учебники и поисковик.
Как учить новые стандарты C++ 11/14/17/20?
Новичкам можно посоветовать сильно не акцентироваться на стандартах в начале своего обучения. Начните с книг из списка для начинающих, и начинайте изучать фундаментальные основы. Современные книги для новичков содержат в себе информацию о различных возможностях стандартов C++11 и новее.
Возникает закономерный вопрос: “Почему так?!” Дело в том, что современные стандарты сконцентрированы на трёх основных вещах:
- исправление проблем
- синтаксический сахар
- новый функционал
Если с исправлением проблем и синтаксическим сахаром всё более-менее очевидно (вводятся новые конструкции, которые исправляют проблемы старых стандартов; появляются новые абстракции, упрощающие написание повторяющегося кода и т.д.), то с новым функционалом всё немного сложнее.
C++ развивается похожим образом, как и другие языки: берётся какая-то популярная идея из информатики (computer science) или удачная фича из других языков, и внедряется в язык. Изучать такие конструкции и использовать их важно, но на первых парах стоит изучить основы, которые были заложены более старыми стандартами (С++11/С++14). Они и описаны в большинстве современных книг для начинающих.
По каким источникам изучать новые возможности стандартов C++?
- Доклады на конференциях по C++
- На главной странице CppReference вы найдете ссылки, со списками возможностей, введенные в каждом стандарте С++
- Познакомиться обзорно с новым функционалом стандартов можно при помощи книг Бьёрна Страуструпа - C++. Краткий курс. Это книга переиздается при выходе новых стандартов, потому рекомендуем следить за переизданиями этой книги
- Профильные форумы/чаты/обсуждения
- Ролики с разбором новых возможностей стандартов на YouTube
- Краткий обзор библиотечных функций C++11 и выше (ENG)
Рекомендации по обучению
- Учитесь в своем ритме, а также в любом возрасте! Не акцентрируйтесь на историях: “Я программирую с пеленок” и т.п.. Большинство подобных историй — систематическая ошибка выжившего, или же попытка потешить свое самолюбие за ваш счет. У вас достаточно способностей, чтобы научиться программированию, в том числе с нуля, в том числе и на C++!
- Большинство проблем с которыми вы столкнетесь, скорее всего уже решены до вас. Если вы не можете найти ответ в интернете, попробуйте переформулировать запрос иным образом. Рано или поздно вы придете к правильному ответу. Если после этого ответа так и нет, то попробуйте решить задачу более простым путем.
- Помните, что вы должны изучать язык, а не бороться с рабочим окружением в начале обучения. Борьба с окружением может вас привести к полному разочарованию и потере мотивации.
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в “очевидных” местах. Просто возьмите паузу, позанимайтесь чем-нибудь другим, а через какое-то время возвращайтесь к задаче.
- Найдите единомышленников, которые тоже начинают учиться. Так вам будет интереснее погружаться в изучение языка вместе, а также делиться знаниями и опытом друг с другом. Дополнительно это поможет выработать навык командной работы. Времена “вольных художников” подошли к концу. Практически везде вам придется работать в команде.
- Попробуйте найти себе опытного ментора. Под его руководством вы сможете избежать различные типовые ловушки и потерю времени на них.