mirror of
https://github.com/salmer/CppDeveloperRoadmap.git
synced 2025-12-17 12:34:37 +03:00
40 lines
7.1 KiB
Markdown
40 lines
7.1 KiB
Markdown
# Как учиться?
|
||
|
||
Главное, что можно посоветовать — это усвоить, что только вы отвечаете за своё развитие. Конечно вы найдете вокруг немало энтузиастов, которые с радостью помогут вам советом, но никто не придумает за вас конкретные задачи или программу обучения. Лучший друг в этом деле - вы, Google и учебники.
|
||
|
||
## Как учить новые стандарты 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)
|