Краткое описание курса.
Он состоит из пяти частей: белого, жёлтого, красного, коричневого и чёрного поясов. Естественно сложность нарастает со временем. Там (имхо) не прям много теории и достаточно много практики.
Из важного, чуваки делают упор на изучение современного C++. Одним из показателей этого моя вольная (потому что услышал я её пару лет назад) цитата одного из авторов (емнип это был Илья Шишков, но точно не помню):
Мы делаем упор на изучение современного C++. Потому понятие указателя у нас встречается только в красном поясе.
Ну т.е. чуваки считают, что раз в современном коде на плюсах ты не юзаешь сырой указатель в 99% процентах случаев, то и узнавать с самого начала про него не нужно. Поинт довольно понятный и сильный. Я даже с ним где-то согласен.
Но имхо это не то, как должно строиться фундаментальное образование. Мне больше нравится найти какой-нибудь курс МФТИ на ютубчике, где за 20-30 лекций тебе расскажут материал с самой базы до довольно адвансед штук. И я всё-таки считаю, что надо узнать про указатели как можно раньше.
Чтобы понимать сложные штуки, нужна база. Вы конечно можете использовать какой-то контейнер (например,
std::vector) и не представлять, что же там внутри. Но в первый раз, когда вам придётся что-то дебагать, вы не будете обладать достаточными знаниями, чтобы с этим разобраться. Вы пойдёте гуглить и нахватаетесь каких-то оборваных кусков информации там-сям, что может быть даже вредно. А потому кандидаты на собесах говорят, что вот вектор в два раза увеличивается и это самое эффективное, что можно делать. Хотя есть ресёрчи и доказательства, что это как раз очень плохое решение. Аналогично вы можете делать fit/predict и называть себя мльщиком, но как только ваши модельки перестанут сходиться, без понимания базовой математики не получится это дело исправить.
Или совсем утрированный пример: нет никакого смысла учить линал и перемножение матриц, если вы не знаете таблицы умножения.
Короче я за то, чтобы перед изучением чего-либо давать крепкий фундамент.
Но тут важно не упарываться. Например, я какое-то время сидел в одном боте, который устраивал рандомные интервью с разными чуваками. И там я встречал очень много ребят из Школы 21. Они все уверенно говорили, что знают плюсы, при этом писали на чистом С. Не надо учить С, чтобы выучить С++. Это может быть полезно, т.к. у них местами общая база. Но это всё-таки разные языки.
Важные моменты:
1. Нужно понимать необходимость глубоких знаний где-либо. Времени не так много, чтобы до косточек разбирать любую тему. Но погружаться в основополагающие для вашего образования стоит.
2. Возможно смотреть 30 лекций по часу-полтора будет долго. Да. Это трейдофф между пониманием и временем.
3. Теория не заменит практику. Если вы просто посмотрите много видосиков/прочитаете сто миллионов статей, вы можете в чём-то разобраться. Но настоящий навык это про уметь использовать знания. В случае поясов условно вас пушат заниматься практикой, когда в случае просмотра записей каких-то рандомных занятий ответственность за "делать" лежит на вас. Это сложно. Я сам не всегда справляюсь.
4. Пояса всё же хорошие. Рекомендую.
UPD: кажется, примерно из-за такого отношения к образованию мне часто довольно сложно писать посты/статьи. Просто потому что хочется покрыть всё-всё и нужны значительные усилия, чтобы что-то опускать. Зная, с чем придётся столкнуться, я довольно долго начинаю.