Chevron Left
Вернуться к Основы разработки на C++: красный пояс

Отзывы учащихся о курсе Основы разработки на C++: красный пояс от партнера Московский физико-технический институт

4.8
звезд
Оценки: 442
Рецензии: 62

О курсе

Этот курс является продолжением курса "Основы разработки на C++: жёлтый пояс". Основная цель курса — научить писать на С++ эффективный код. Кроме того рассмотрены некоторые возможности С++, которые не попали в предыдущие курсы. В курсе рассмотрены: - макросы - шаблоны классов - принципы оптимизации кода - эффективное использование потоков ввода/вывода - оценки сложности алгоритмов - модель памяти в С++ - эффективное использование линейных контейнеров (vector, deque, list, string) - move-семантика - введение в многопоточное программирование Кроме того, в курсе продемонстрировано, как, пользуясь знаниями только "Белого", "Жёлтого" и "Красного" поясов, разработать свой собственный профайлер. Так же, как и в предыдущих курсах, в конце вас ждёт финальный проект. Было бы странно в курсе от Яндекса не попросить вас создать свою поисковую систему! Именно этим вам и предстоит заняться в финальной задаче. Курс разработан ведущими специалистами Яндекса и преподавателями Школы анализа данных. За их плечами – годы разработки сервисов поиска, рекламы и инфраструктуры. Кроме того в подготовке заданий участвовали 1. Сотрудники Яндекса: - Алексей Аверченко - Даниил Петров - Константин Меренков - Алексей Зобнин 2. Выпускники «Жёлтого пояса по С++»: - Борис Егоров - Ольга Марчевская 3. Сотрудник Института проблем информатики РАН Олег Яковлев В создании урока «Шаблоны классов» принимал участие преподаватель Белого и Жёлтого «поясов» Евгений Парамонов....

Лучшие рецензии

KI
19 нояб. 2021 г.

Интересный курс. Для начинающе-продолжающих. Очень понравилось, что после окончания есть в памяти некоторые "заготовки полезных структур", которые могут облегчить жизнь дальше. Рекомендую!

AK
26 мая 2020 г.

Хороший курс. Иногда стоит отвлечься, чтобы решить задания, особенно те, которые составлял лектор из ЛКШ.

Фильтр по:

1–25 из 64 отзывов о курсе Основы разработки на C++: красный пояс

автор: Yan B

2 сент. 2019 г.

Красный пояс - логическое продолжение "белого" и "желтого" поясов специализации по C++. Курс продолжает радовать качественными лекциями с хорошими примерами из реальной практики и дает больше, чем просто обзор возможностей языка: в красном поясе так же рассмотрены основы computer science - сложность алгоритмов, базовые структуры данных, принципы оптимизации. Таким образом возможности языка изучаются не на абстрактных примеров (что сильно затрудняет понимание), а в контексте реальных задач с демонстрацией внутреннего устройства компонентов стандартной библиотеки. Это очень здорово.

Но к большому сожалению в курсе так же есть и ряд недостатков, которые не дают возможности поставить курсу высокую оценку и сильно затрудняют получение знаний и навыков в процессе прохождения.

В первую очередь можно отметить следующее: наличие тем computer science делает прохождение курса более сложным: помимо освоения самого языка С++ необходимо еще и разобраться в computer science, что создает дополнительную нагрузку. Само по себе это не является недостатком, т.к. несмотря на повышенную сложность сочетание двух этих тем, как сказано выше, в сумме дает значительно лучший эффект, чем каждая из тем по отдельности: есть возможность не только увидеть инструменты языка "в действии", но и получить настоящий код, реализующий теоретические концепции computer science. Но к повышенная сложность умножается недоработками курса, что делает его очень трудным для прохождения.

Первая из таких недоработок: практические задания. Несмотря на высокое качество подбора тем и адекватную сложность, система оценки заданий во многих случаях требует угадывания решения, задуманного авторами. Это добавляет стресса в процессе прохождения, но и с этим можно было бы справиться, если не бы не дальнейшие недостатки.

Второй недостаток - непрозрачность системы тестирования. Если отправленное вами решение не проходит тестирование (не зачтено), в редких случаях вы получите полезное сообщение об ошибке, но чаще - поверхностное объяснение о том, что не так с решением: превышен лимит времени или "ответ неправильный". Такой подход имеет место быть (к примеру если вы изучаете криптографию - это был бы очень логичный подход), но он снова повышает сложность и добавляет стресса к прохождению курса. Мало того, что вам нужно угадать решение авторов, так вы еще и без понятия, что именно в вашем решении работает иначе. С этим уже достаточно неприятно, но на этом список недостатков не заканчивается.

Следующее неприятное открытие, с которым вы сталкиваетесь - в лекциях авторы рассказывают "как и зачем" о возможностях языка, но не обучают навыку troubleshooting: что делать, если ваша программа выводит "signal 11", "bus error: 10" или "abort trap 6". C++ - мощный язык с весьма недружелюбным к пользователю интерфейсом, и умение расшифровывать и устранять ошибки является необходимым для успешной работы навыком. В видеолекциях часто рассматриваются случаи "наша программа не скомпилировалась - давайте посмотрим на сообщения об ошибках", но этого недостаточно для успешного выполнения заданий. Таким образом в добавок к угадыванию решения иногда ваше решение "просто не работает" и вы без понятия почему.

В поисках понимания "что работает не так" вы сталкиваетесь с еще одной недоработкой - со стороны авторов поддержки курса практически не оказывается. "Спасение утопающих - дело рук самих утопающих". Работу авторов курса выполняют участники, уже прошедшие модули, по которым у вас есть вопросы. Самая полезная платформа - телеграм-канал (хотя и на форуме можно найти ценные подсказки), но будьте готовы, что вас отправят искать в истории канала ("уже обсуждалось") и оценят ваше умение программировать, внимательность при чтении заданий и другие личные качества и навыки.

Даже с необходимостью угадывать решение авторов вслепую, с самостоятельным обучением расшифровке ошибок и необходимостью искать идеи для очередного подхода к решению на форуме и в телеграм-канале курс можно проходить. Некоторые задания не вызывают проблем и дают заряд уверенности, с другими нужно поперебирать решения, поспрашивать, почитать, и за пару дней осилить. Но в самом конце курса вас ждет кульминация всех вышеперечисленных недостатков. Здесь особенно пригодятся все навыки: перебор разных вариантов решений, чтение телеграм-канала и форума, попытка угадать ход мысли авторов. Желание разработать действительно решение через некоторое время пропадает и начинается перебор: поменять вот это - посмотреть снова ли система тестирования выведет пустое сообщение и "незачет", сделать очевидно неправильно - посмотреть что будет. В какой-то момент во второй части уже перестает волновать тот факт, что локальные тесты не работают, и, как бы это не было странно, одно из решений из перебора с неработащими тестами вдруг проходит.

В итоге: по получению знаний и навыков - хорошо, но user experience хуже, чем прохождение медосмотра в поликлинике.

автор: Симонов С Б

29 окт. 2018 г.

Материал курса актуальный, изложение отличное. Задачи практичные и интересные. Узнал много нового, как из лекций, так и в процессе решения предложенных задач. Спасибо!

Но есть и подводные камни, и я честно об этом Вам скажу. По ходу курса предлагаются к решению несколько сложных задач алгоритмическими "заковырками", которые напрямую к темам курса не относятся. Пока Вы их не решите, продолжить обучение не сможете. Без подсказки на поиск правильного решения может уйти не рационально-огромное количество ваших часов (и хорошо, если справитесь)! А с подсказками и обсуждениями есть проблемы. На вопросы не отвечают неделями, форум почти "мертвый", даром что 6 модераторов в нем, обсудить проблемы твоего кода не с кем, возникает ощущение заброшенности и тупика, настроение падает. И это все за Ваши немаленькие деньги. Поэтому с точки зрения временных и денежных затрат курс нельзя назвать продуктивным.

автор: Бутов П А

13 нояб. 2018 г.

Не хватает помощи и комментариев преподавателей на форуме курса.

автор: Ekaterina G

26 окт. 2019 г.

Вообще отличный курс несмотря на некоторые досадные организационные мелочи.

Замечательные лекторы: Илья Шишков, который всегда очень обстоятельно и доходчиво объясняет основы и всякие мировоззренческие вещи, и Антон Полднев, который рассказывает более утонченные и гиковские темы, которые потом проверяются очень изысканными тестами с каверзными вопросами.

В этом поясе все недели были удачными. На первой неделе Илья замечательно разграничил, когда макросы использовать плохо, а когда без них не обойтись. На второй неделе очень хорошо поговорили на тему, что надо оптимизировать, а что нет, а потом про сложность алгоритмов. Третья неделя была про классический старый C++ с указателями и рукописными деструкторами, как его обычно преподают в универе. На четвертой неделе поговорили про то, что еще есть в природе из линейных контейнеров, кроме вектора, и когда это может быть нужно, и про инвалидацию итераторов. И тут меня немного смутило, что string_view, используя который, надо очень хорошо понимать, что делаешь, потому что иначе очень легко выстрелить себе в ногу, рассказали на красном поясе, а очень полезный и безобидный unordered_map зачем-то отправили в коричневый.

Пятая неделя - самая лучшая. Антон потрясающе рассказал про move-семантику, copy-elision и NRVO: с одной стороны, просто и понятно, не углубляясь в дебри value categories, но, с другой стороны, весьма подробно и на довольно глубоком уровне абстракции. А Илья замечательно рассказал про многопоточность: он как-то любой раздел стандартной библиотеки умеет сделать для зрителей уютным и понятным.

Ну финальная задача была, скажем так, поучительной: этот незабываемый момент, когда в третьем часу ночи пытаешься как-то убрать микрооптимизациями лишние двести миллисекунд, а решение от этих "микрооптимизаций" наоборот замедлилось в десять раз. Ну да, как говорится, всё что нас не убивает, делает нас сильнее :-)

И ещё я в этом курсе наконец открыла для себя телеграм-канал курса, и там для курса по C++ оказалось довольно забавно и душевно.

автор: Емелин А П

18 апр. 2019 г.

Курс крайне полезен для тех, кто собирается писать приложения, критичные к ресурсам. Особенно ценной показалась информация об эффективном использовании контейнеров и move семантике.

автор: Anton S

18 окт. 2019 г.

Кем бы Вы ни были - студентом (в этом случае, однако, лучше начинать с первого, "белого", модуля) или опытным разработчиком, обязательно найдёте что-нибудь интересное и уж точно не соскучитесь от интересных и не самых тривиальных практических задач.

Классный курс, авторам огромное спасибо.

автор: Alexander Z

31 июля 2018 г.

Один из лучших курсов, что я проходил в жизни, не то что по языку программирования.

автор: Vladimir I

27 янв. 2021 г.

Легко встрять в ситуацию когда вы не понимаете почему ваше решение задачи не проходит. Грейдер не даст полезной информации. Вы попытаетесь почитать форум и попросить помощи в телеграм канале. Там вам попытаются помочь такие же студенты как вы. Когда вы так и не сможете получить какую-либо помощь вы задуметесь - а за что я плачу 5к+ рублей в месяц если не могу получить хотя бы 5 минут обратной связи. В целом курс хороший, но отсуствие обратной связи портит все восприятие. Берите курс на свой страх и риск и с осознанием того, что с определенной вероятностю вы можете впасть в депрессию от безвыходной ситуации.

автор: Vladimir N

19 сент. 2019 г.

Отличный курс для знакомства с С++ или повторения/систематизации накопленных ранее знаний. Большое количество интересных и зачастую непростых задач способствует эффективному закреплению материала. Хочется выразить огромную благодарность авторам за проделанную работу.

автор: Кадохов З М

9 окт. 2018 г.

Классный курс, спасибо. Очень удачно покрывает ту часть c++, с которой не приходилось до этого работать. Всем совет: каждое слово в задании важное, если дают какие-то гарантии, это не просто так.

Рекомендую!

автор: Sergey

11 янв. 2019 г.

Отличный курс! Финальное задание заставляет хорошенько поработать над решением.

Спасибо авторам курса за большую и качественную проделанную работу

автор: Глазов И В

20 окт. 2019 г.

Отличный курс для расширения знаний и навыков работы с многопоточностью и оптимизацией по времени выполнения программы

автор: Мишутка

13 июля 2019 г.

Отличный курс. С каждым уровнем сложности все лучше и лучше! Огромная благодарность авторам.

автор: Олег Р

30 мар. 2019 г.

Отличный курс, помог мне разобраться во многих неочевидных моментах C++

автор: Alexey G

27 нояб. 2018 г.

Отличный курс, который рассказывает про оптимизацию и ускорение кода.

автор: Емельянов А В

12 мая 2019 г.

Отличный курс. Приличная сложность - занимает много времени.

автор: Igor B

15 окт. 2019 г.

Великолепный курс! Очень интересный и сложный)

автор: Captain S

15 янв. 2020 г.

Отличный курс, очень крутые лекторы и материал, много новых вещей, даже при том, что я уже имел достаточно много опыта в коммерческой разработке на C++. Не понравилось только пару заданий с слишком нетривиальным решением для прохождения грейдера, в которых было почти нереально догадаться до самого быстрого решения. И финальная задача 2 часть, это просто минус жизнь. По итогу мое финальное решение не было рабочим, я понимал что оно не может работать корректно, но оно единственное прошло грейдер. Решение авторов грейдер тоже не проходит.

автор: Буров Е В

3 янв. 2020 г.

финальная задача чуть не испортила впечатление от курса. Но к счатью были праздники, на которых все же победил ее.

автор: Maksim Z

24 февр. 2019 г.

Хотелось бы иметь более качественные печатные лекции. А также добавить по парем простеньких задач в каждый модуль.

автор: Cold T

6 мая 2020 г.

Качественный курс, но будьте готовы потратить время на самостоятельное изучение материала.

автор: Artem M

13 июля 2020 г.

Курс очень слишком завязан на угадывание того, что авторы имели ввиду при постановке задачи. К тому же с минимальной поддержкой на форуме. Все обсуждения на форуме, на момент моего прохождения были удалены. Лекционный материал зачастую не покрывает многих деталей и тонкостей. Эффективнее учить теоретическую часть по сторонним материалам, а здесь сдавать только практические задания.

автор: Evgeny E

22 апр. 2020 г.

Великолепный курс, много практики, современные стандарты. У всех плюсов есть и свои обратные стороны: много практики подразумевает много мелких задач, часто требующих утомительной отладки. К концу курса хочется разделаться с заданиями побыстрее. Обилие свежего материала подразумевает некоторую поверхностность изучения, например, такой интересной и богатой теме как многопоточность уделено всего половина недели, а сразу после этого эти знания проверяются в финальном проекте. Вместе с тем, аналога такого курса я пока не видел, поэтому рекомендую.

автор: Marc E

1 июня 2020 г.

Overall a very good course with two great instructors. It's a lot of work, but it also teaches a lot. There are a lot of programming exercises which often take a lot of time to solve - the fact that to get the certificate, it is necessary to pass every single rated quiz / programming exercise implies a lot of work because some of the exercises are complex and the test criteria are pretty exacting.

A mild criticism: For some of the exercises, some additional hints could be useful.

автор: Илья Б

8 мар. 2020 г.

Курс очень понравился, видеолекции прозрачно объясняют материал, многочисленные задачи по программированию позволяют, помучась, отпечатать рассказанное (и даже больше) у себя в голове. Чуть-чуть о том, что не понравилось (частные детали): не понял учебного смыла задачи "Статистика web-сервера", также есть претензии к тестированию второй части финального задания. Напишу их в чат.

В остальном огромный респект всем участвовавшим в создании поясов, отличная работа!