# Глава 0. О курсе
Представьте, что C++ – это магический артефакт, могущественный и древний. Он позволяет творить грандиозные вещи. Грандиозные и иногда – ужасные.
Вам предстоит длинный путь, прежде чем вы научитесь подчинять себе силу артефакта и не прельщаться его темной стороной. Наш курс призван открыть вам этот путь и помочь с него не сойти. Но осилить вы его должны самостоятельно, иначе магия не сработает.
## Цель курса
Наш курс поможет вам изучить **современный C++ с нуля.**
Наша **цель** – чтобы по завершению курса вы могли:
- Решать задачи из реальной жизни на современном C++.
- Разбираться в чужом коде: находить баги, рефакторить, участвовать в код-ревью.
- Проходить собеседования.
- Владеть инструментами для отладки, профилирования, поиска утечек памяти.
C++ – самый сложный из мейнстримных языков. Его невозможно выучить полностью. Наш курс концентрируется на **подмножестве** языка и его идиомах, которых достаточно, чтобы писать эффективный, безопасный и читабельный код.
## Наш подход к обучению
Курс называется «C++ по спирали». Это означает, что по мере прохождения курса мы будем неоднократно возвращаться к одним и тем же темам и разбирать их на более глубоком уровне. Как будто разматывая витки спирали знаний о языке.
Такой подход позволит максимально быстро приступить к решению задач на C++. Наш курс ориентирован на практику. В каждой главе вас ждут задачи и домашние задания. Раз в несколько глав предстоит делать проект.
Задачи и проекты — важная составляющая курса. Какие-то аспекты C++ вы узнаете именно из их описаний!
## Для кого этот курс
Наш курс предназначен **для программистов,** от студентов до опытных синьоров.
Чтобы получить от него пользу, вы должны обладать:
- Опытом разработки на любом языке. Вы знаете, что такое переменная, цикл, функция, исключения.
- Неким багажом фундаментальных знаний. Вы знакомы с концепциями массива, рекурсии, ООП, аргументов командной строки.
- Временем, упорством и любознательностью.
## Для кого этот курс не подходит
Наш курс **точно** не пойдет на пользу, если вы:
- Уже умеете готовить C++ и хотите глубоко погрузиться в один из его аспектов. Например, в конкурентность или метапрограммирование.
- Ожидаете какого-то специфичного C++. В этом курсе нет низкоуровневневых трюков для embedded и ассемблерных вставок.
- Ищете курс, который бы за ручку провел по настройке IDE и окружения.
- Пытаетесь выучить C++ как свой первый язык программирования.
## Как проходить курс
Мы придерживаемся правила: просто читать про язык – тратить время. Учить язык значит **писать код.** Поэтому залог успеха при прохождении курса – выполнение всех задач и проектов. Даже если вы «точно знаете, как это решать».
После того, как вы решили задачу, вы можете **сравнить свое решение с нашим.** Оно доступно по кнопке подсказки.
Многие примеры кода из глав в один клик открываются в **плэйграунде.** Пользуйтесь этим: почаще экспериментируйте с кодом!
И помните: только за счет практики ваши теоретические знания успешно улягутся в _долговременную_ память.
## Ответы на частые вопросы
### Нужно ли начинать изучение C++ с Си?
Нет. И в следующей главе вы поймете, почему.
### Нужно ли для изучения C++ знать ассемблер?
Нет. Уметь изготавливать печатные платы тоже.
### Что делать, если не получается решить задачу или выполнить проект?
Самостоятельная практика — ключ к освоению C++. Если с какой-то задачей возникли трудности, не отчаивайтесь. Это нормально. Продолжайте пытаться!
И пусть вам поможет эта последовательность шагов:
- Перечитайте теорию: вдруг вы упустили что-то важное? Попробуйте решить задачу _с нуля._
- Отвлекитесь, отдохните. Приступите к задаче через какое-то время.
- Воспользуйтесь подсказкой.
- Посмотрите полное решение.
Если после всех этих шагов все равно остались вопросы, не стесняйтесь [задавать их.](https://t.me/senjun_feedback)
### Куда сообщать об ошибках?
На сайте в конце каждой главы есть форма фидбэка. Если вы проходите этот курс через наш [телеграм-бот,](https://t.me/sen_jun_bot) то воспользуйтесь командой `/help`.
Заводите Issue или пул-реквесты [на гитхабе.](https://github.com/senjun-team/senjun-courses/tree/main)
И конечно же, добро пожаловать в нашу [телеграм-группу!](https://t.me/senjun_feedback)
Наша группа в telegram. Здесь можно задавать вопросы и общаться.
Задонатить. Если вам нравится курс, вы можете поддержать развитие площадки!