# Глава 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. Здесь можно задавать вопросы и общаться.
Задонатить. Если вам нравится курс, вы можете поддержать развитие площадки!