diff --git a/cpp/cpp_chapter_0010/text.md b/cpp/cpp_chapter_0010/text.md new file mode 100644 index 00000000..557f51cc --- /dev/null +++ b/cpp/cpp_chapter_0010/text.md @@ -0,0 +1,82 @@ +# Глава 1. О курсе + +Представьте, что C++ – это магический артефакт, могущественный и древний. Он позволяет творить грандиозные вещи. Грандиозные и иногда – ужасные. + +Вам предстоит длинный путь, прежде чем вы научитесь подчинять себе силу артефакта и не прельщаться его темной стороной. Наш курс призван открыть вам этот путь и помочь с него не сойти. Но осилить вы его должны самостоятельно, иначе магия не сработает. + +## Цель курса + +Наш курс поможет вам изучить **современный C++ с нуля.** + +Наша **цель** – чтобы по завершению курса вы могли: +- Решать задачи из реальной жизни на современном C++. +- Разбираться в чужом коде: находить баги, рефакторить, участвовать в код-ревью. +- Проходить собеседования. +- Владеть инструментами для отладки, профилирования, поиска утечек памяти. + +C++ – самый сложный из мейнстримных языков. Его невозможно выучить полностью. Наш курс концентрируется на **подмножестве** языка и его идиомах, которых достаточно, чтобы писать эффективный, безопасный и читабельный код. + +## Наш подход к обучению + +Курс называется «C++ по спирали». Это означает, что по мере прохождения курса мы будем неоднократно возвращаться к одним и тем же темам и разбирать их на более глубоком уровне. Как будто разматывая витки спирали знаний о языке. + +Такой подход позволит максимально быстро приступить к решению практических задач на C++. + +Кроме того, наш курс ориентирован на практику. В каждой главе вас ждут задачи и домашние задания. Раз в несколько глав предстоит делать проект. + +## Для кого этот курс + +Наш курс предназначен **для программистов,** от студентов до опытных синьоров. + +Чтобы получить от него пользу, вы должны обладать: +- Опытом разработки на любом языке. Вы знаете, что такое переменная, цикл, функция, исключения. +- Неким багажом фундаментальных знаний. Вы знакомы с концепциями массива, рекурсии, ООП, аргументов командной строки. +- Временем, упорством и любознательностью. + +## Для кого этот курс не подходит + +Наш курс **точно** не пойдет на пользу, если вы: +- Уже умеете готовить C++ и хотите глубоко погрузиться в один из его аспектов. Например, в конкурентность или метапрограммирование. +- Ожидаете какого-то специфичного C++. В этом курсе нет низкоуровневневых трюков для embedded и ассемблерных вставок. +- Ищете курс, который бы за ручку провел по настройке IDE и окружения. +- Пытаетесь выучить 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)