Разработчик C++

Курс о тонкостях и особенностях разработки программного обеспечения на C++
Подойдет ли мне этот курс?

Длительность

5 месяцев

Начало

27 июня

Общая стоимость

50 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
В кредит: 50000 ₽
в месяц
Продолжительность
5 месяцев, 4 академических часа в неделю
Начало занятий
27 июня
Что даст вам этот курс


  • Умение писать на С++ правильно.

  • Понимание современных проблем языка и специфики его применения.

  • Освоение паттернов проектирования, принципов написания многопоточного кода.

  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.

  • Владение нюансами программирования на С++, которые отличают разработчика уровня Middle от Junior.







Подробнее о программе курса

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






Обучено студентов 100+


32 практических занятия

27 работодателей пригласят лучших выпускников на собеседования
Сборка проектов на C++ с использованием CMake, 14 июня в 20:00
Учимся собирать проекты с использованием кроcсплатформенной утилиты для автоматической сборки программы из исходного кода. Рассмотрим особенности работы с CMake и обсудим плюсы и минусы такого инструмента. Полученные знания пригодятся при выполнении домашних работ курса «Разработчик C++» и не только.
Ведет
Сергей
Кольцов
Предыдущий открытый вебинар
Всё о курсе «Разработчик С++», 21 июня в 20:00
День Открытых Дверей — отличная возможность узнать подробнее о программе курса, особенностях онлайн-формата, навыках, компетенциях и перспективах, которые ждут выпускников после обучения. Формат проведения: онлайн-трансляция; участие свободное!
Ведет
Дмитрий
Шебордаев
Предыдущий день открытых дверей
"Язык программирования может быть любым, при условии, что он C++"
Дмитрий Шебордаев
Преподаватель курса
"Язык программирования может быть любым, при условии, что он C++"
Дмитрий Шебордаев
Преподаватель курса
Преподаватели
Сергей Кольцов
VisionLabs
Владимир Зацепин
Дмитрий Шебордаев
Rambler&Co
Senior Developer С++ VisionLabs

Работает программистом уже почти 10 лет. Заинтересовался языками программирования ещё в школе. Начинал почти как и все в ту пору - с Delphi и Borland C++. Так что был заранее обречён на выбор профессии.

Работал как в крупных компаниях (Яндекс, Luxoft), так и в небольших организациях.

С преподаванием впервые столкнулся в школе, когда объяснял логарифмы одноклассницам. В дальнейшем в рамках рабочих обязанностей выполнял менторские функции с коллегами. На позиции руководителя группы разработки консультации членов команды занимают около 30% времени.

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Зацепин Владимир, руководитель разработки Рамблер/Почты. Окончил Военную академию связи в Санкт-Петербурге в 2008 году по специальности "Программное обеспечение автоматизированных систем управления". Одним словом, военный программист: выправка, дисциплина, патриотизм, очки и клавиатура. Свой трудовой путь начал с инженера клиентской поддержки в хостинге. До Рамблера 5 лет занимался разработкой в области криптографической защиты информации. За это время создал криптосервис для работы в СМЭВ, который используется во многих российских банках и госучреждениях. Всю сознательную жизнь пишу на C++. С 2016 года руковожу разработкой одного из старейших проектов Рунета с многомиллионной аудиторией пользователей, петабайтами хранимых данных, хайлоадом, распределенными БД, микросервисами и вот этим вот всем
Руководитель отдела разработки технологий в Rambler&Co
Получил образование по специальности «Прикладная математика» в Московском государственном университете экономики статистики и информатики.
Начинал рядовым разработчиком в компании, автоматизирующей процессы розничной торговли. Автор одной из самых популярных систем в РФ и бывших республиках. Не прекращая активной деятельности в разработке, прошёл путь до руководителя. Последние несколько лет работает в области информационного поиска в крупной российской ИТ-компании. Остаётся верен своей профессии свыше 20 лет. Читает образовательные курсы по специальности.
Сергей
Кольцов
Владимир
Зацепин
Дмитрий
Шебордаев
Преподаватели
Сергей Кольцов
VisionLabs
Senior Developer С++ VisionLabs

Работает программистом уже почти 10 лет. Заинтересовался языками программирования ещё в школе. Начинал почти как и все в ту пору - с Delphi и Borland C++. Так что был заранее обречён на выбор профессии.

Работал как в крупных компаниях (Яндекс, Luxoft), так и в небольших организациях.

С преподаванием впервые столкнулся в школе, когда объяснял логарифмы одноклассницам. В дальнейшем в рамках рабочих обязанностей выполнял менторские функции с коллегами. На позиции руководителя группы разработки консультации членов команды занимают около 30% времени.

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Владимир Зацепин
Зацепин Владимир, руководитель разработки Рамблер/Почты. Окончил Военную академию связи в Санкт-Петербурге в 2008 году по специальности "Программное обеспечение автоматизированных систем управления". Одним словом, военный программист: выправка, дисциплина, патриотизм, очки и клавиатура. Свой трудовой путь начал с инженера клиентской поддержки в хостинге. До Рамблера 5 лет занимался разработкой в области криптографической защиты информации. За это время создал криптосервис для работы в СМЭВ, который используется во многих российских банках и госучреждениях. Всю сознательную жизнь пишу на C++. С 2016 года руковожу разработкой одного из старейших проектов Рунета с многомиллионной аудиторией пользователей, петабайтами хранимых данных, хайлоадом, распределенными БД, микросервисами и вот этим вот всем
Дмитрий Шебордаев
Rambler&Co
Руководитель отдела разработки технологий в Rambler&Co
Получил образование по специальности «Прикладная математика» в Московском государственном университете экономики статистики и информатики.
Начинал рядовым разработчиком в компании, автоматизирующей процессы розничной торговли. Автор одной из самых популярных систем в РФ и бывших республиках. Не прекращая активной деятельности в разработке, прошёл путь до руководителя. Последние несколько лет работает в области информационного поиска в крупной российской ИТ-компании. Остаётся верен своей профессии свыше 20 лет. Читает образовательные курсы по специальности.
Отзывы
7
Дмитрий
Сыромятников
Большой, хороший курс. Преподаватели и преподавание приятно удивили, особенно разъяснения Дмитрия Шебордаева и настойчивость Василия Зазнобина в прививании продакшен-навыков. А какая замечательная атмосфера курса, взаимопомощь, общение. Результат: очень доволен, курс был много лучше моих ожиданий. Спасибо за обучение!
P.S. Отдельно спасибо Отус за возможность.
Читать целиком
Денис
Кирюшин
Курс действительно для тех, кто уже неплохо знает С++. Домашние задания оказались несколько сложнее (и интереснее), чем я думал. Выходных на их решение мне не хватало. Те, кто только будет проходить курс, не откладывайте простые начальные задания в долгий ящик. Со второй половины задачи куда сложнее! Вебинары часто не дают прямого ответа, как сделать домашку, приходится так же читать материалы самостоятельно. Но без вебинаров я бы не смог разобраться в таких сложных темах, как асинхронное программирование, метапрограммирование, многопоточность. Объяснения подробные и вполне ясные, с обратной связью. Очень интересная практика ревью домашек у коллег по курсу. Из их ревью узнаёшь так же не мало нового, а ревьювируя их замечаешь практики, которые раньше не видел. В целом, благодоря домашкам и ревью, неплохо так подтягиваешь знание языка. Короче говоря, курсы понравились, хотя временами было сложновато.
Читать целиком
Татьяна
Емельянова
Курс очень понравился, как интересными лекциям в лице Дмитрия Шебордаева, так и проверкой домашних заданий Василием Зазнобиным с четкими и емкими комментариями/замечаниями.
Опыт взаимного кода-ревью (которого у меня не было до поступления на курс) был весьма познавателен. Не столько опытом взаимного обогащения знаниями, но, в большей степени, опытом взаимного общения с коллегами :). Хотя, надо признаться, времени на последних домашних работах это отнимало очень много. Вторая половина курса, на мой взгляд, более требовательна по времени, чем первая, и это надо учитывать при прохождении курса.
В самом курсе для меня был большой процент новизны (практически все темы), опыт программирования на С/C++ был, и было участие в достаточно большом промышленном проекте, но это был опыт самоучки. Знания стандартов C++11 и C++14, шаблонов и пр. ограничивалось небольшим курсом на Stepik, где я проходила самостоятельное обучение.
От курса хотелось получить максимального количества знаний в, по–возможности, минимальные сроки. Также хотелось адекватно оценить свои пробелы в знаниях.
Все это я от курса получила.
Читать целиком
Евгений
Очень интересный и насыщенный курс. Особая ценность в домашних заданиях, в процессе выполнения которых приходится изучить много материала, в том числе чтобы закрыть пробелы в смежных темах, что очень полезно. Обучение и выполнение ДЗ занимает много времени, но польза от этого несомненна.
Отдельно хочется отметить преподавательский талант Дмитрия Шебордаева и то как он может объяснить сложные вещи простыми и понятыми словами.
Курс развивается - добавляются новые темы, на втором потоке добавилась практика ревью кода однокурсников, и дальше похоже будет только лучше.
Всем советую эти курсы!
Читать целиком
Владимир
Невзоров
Пишу отзыв с нового рабочего места :) (Москва). Но это в курсе не главное.

За те пол года, которые шел курс, думал написать положительные отзывы и каждый раз отзыв получился бы с какой-то новой окраской.
В начале было бы:
"Вау! Вот это курс! Вот это преподаватели! Вот это подача материала! Так интересно и понятно!"
Затем:
"Домашки интересные и сложные. Тут надо посидеть... Почему так сложно? Мне одному?"
Затем:
"Вот это домашки продуманы! Они помогают думать, включать мозг еще на этапе чтения задания", - как оказалось, вникание в суть задания - тоже целый процесс.

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

Это лично мой опыт. Кому-то курсы дались легче, кому-то сложней.

Главное преимущество пройденного курса считаю:
1. Профессиональный преподавательский состав;
2. Интересная и раскрашенная подача материала;
3. Продуманность курса - хороший охват многих вещей как в С++, так и в целом разработки;
4. Дополнительное общения "под огурчик" :) Когда можно поговорить в целом про программистскую жизнь, про обучение и не только;
5. Супер возможность - общение в slack'e. Там и обсуждение, уточнение задания, вопросы-ответы, общение в групповом чате и лично.
Ну и, наверное, энтузиазм от того, что все вместе решаем интересные задачи, а также потому, что курсы ведут практикующие преподаватели-эксперты.
Читать целиком
Жанбек
Сарсенов
Курс мне очень понравился.

Да, он для тех, кто, как минимум, хорошо владеет:

1) основами синтаксиса языка C++ стандарта 2003 года;
2) знаниями по основным структурам и алгоритмам данных;
3) конечно же STL (это наше всё);

Также желательно иметь хотя бы общее представление о принципах работы СУБД и знать основные команды языка SQL.

Если Вы владеете вышеперечисленными навыками и желаете:

1) систематизировать имеющиеся знания по С++,

2) погрузиться в современные стандарты языка С++ 11-го, 14-го и 17-го годов,

3) узнать о паттернах / антипаттернах проектирования программного обеспечения

4) узнать об основных областях и трендах применения этого замечательного языка в современном мире,

то Вам однозначно на эти курсы!
Читать целиком
Виталий
Петров
Добрый день. В целом курс очень понравился. Подача материала нашим преподавателем Дмитрием Шебордаевым - на высоте. Плюсов много, перечислять не буду, но останвлюсь на ряде пожеланий, собственно не обязательных =)

Субъективно, слишком много лекций отдано на DLib в конце (3 лекции + 2 домашки), я бы предпочел в рамках одной лекции кратко коснуться этой темы, а другие лекции потратить на:
1. Обзор литературы, которая может быть реально полезной в дальнейшем изучении (Ну к примеру "Искусство программирования для Unix", книги по CMake / системам сборки типа той что мелькала в Slack, книги по шаблонам проектирования, "Код. тайный язык информатики" и т.д.). Т.е. что-то техническое впремешку с просто познавательной литературой, так как часто бывает трудно понять какие из имеющихся в сети книг полезные, а какие шлак на который не стоит тратить время.
2. Можно рассказать о существовании статических анализаторов кода, типа PVS-Studio и других
3. Можно рассказать о профилировщиках, почему valgrind не всегда панацей (он работать удоачно только на Linux и чаще надежнее написать на коленке анализатор считающий микросекунды, встроенный в код, типа https://github.com/jonasmr/microprofile)
4. Интересно было бы послушать про связку C++ с другими языками (как например сделать биндинг для python?). Туда же lua как встраиваемый язык внутри C++.

Ну и т.д. Часть этих тем конечно затрагивалась в процессе обучения, но может стоит подумать над тем чтоб что-то из них вынести в отдельные лекции?
Читать целиком
Дмитрий
Сыромятников
Большой, хороший курс. Преподаватели и преподавание приятно удивили, особенно разъяснения Дмитрия Шебордаева и настойчивость Василия Зазнобина в прививании продакшен-навыков. А какая замечательная атмосфера курса, взаимопомощь, общение. Результат: очень доволен, курс был много лучше моих ожиданий. Спасибо за обучение!
P.S. Отдельно спасибо Отус за возможность.
Читать целиком
Денис
Кирюшин
Курс действительно для тех, кто уже неплохо знает С++. Домашние задания оказались несколько сложнее (и интереснее), чем я думал. Выходных на их решение мне не хватало. Те, кто только будет проходить курс, не откладывайте простые начальные задания в долгий ящик. Со второй половины задачи куда сложнее! Вебинары часто не дают прямого ответа, как сделать домашку, приходится так же читать материалы самостоятельно. Но без вебинаров я бы не смог разобраться в таких сложных темах, как асинхронное программирование, метапрограммирование, многопоточность. Объяснения подробные и вполне ясные, с обратной связью. Очень интересная практика ревью домашек у коллег по курсу. Из их ревью узнаёшь так же не мало нового, а ревьювируя их замечаешь практики, которые раньше не видел. В целом, благодоря домашкам и ревью, неплохо так подтягиваешь знание языка. Короче говоря, курсы понравились, хотя временами было сложновато.
Читать целиком
Татьяна
Емельянова
Курс очень понравился, как интересными лекциям в лице Дмитрия Шебордаева, так и проверкой домашних заданий Василием Зазнобиным с четкими и емкими комментариями/замечаниями.
Опыт взаимного кода-ревью (которого у меня не было до поступления на курс) был весьма познавателен. Не столько опытом взаимного обогащения знаниями, но, в большей степени, опытом взаимного общения с коллегами :). Хотя, надо признаться, времени на последних домашних работах это отнимало очень много. Вторая половина курса, на мой взгляд, более требовательна по времени, чем первая, и это надо учитывать при прохождении курса.
В самом курсе для меня был большой процент новизны (практически все темы), опыт программирования на С/C++ был, и было участие в достаточно большом промышленном проекте, но это был опыт самоучки. Знания стандартов C++11 и C++14, шаблонов и пр. ограничивалось небольшим курсом на Stepik, где я проходила самостоятельное обучение.
От курса хотелось получить максимального количества знаний в, по–возможности, минимальные сроки. Также хотелось адекватно оценить свои пробелы в знаниях.
Все это я от курса получила.
Читать целиком
Евгений
Очень интересный и насыщенный курс. Особая ценность в домашних заданиях, в процессе выполнения которых приходится изучить много материала, в том числе чтобы закрыть пробелы в смежных темах, что очень полезно. Обучение и выполнение ДЗ занимает много времени, но польза от этого несомненна.
Отдельно хочется отметить преподавательский талант Дмитрия Шебордаева и то как он может объяснить сложные вещи простыми и понятыми словами.
Курс развивается - добавляются новые темы, на втором потоке добавилась практика ревью кода однокурсников, и дальше похоже будет только лучше.
Всем советую эти курсы!
Читать целиком
Владимир
Невзоров
Пишу отзыв с нового рабочего места :) (Москва). Но это в курсе не главное.

За те пол года, которые шел курс, думал написать положительные отзывы и каждый раз отзыв получился бы с какой-то новой окраской.
В начале было бы:
"Вау! Вот это курс! Вот это преподаватели! Вот это подача материала! Так интересно и понятно!"
Затем:
"Домашки интересные и сложные. Тут надо посидеть... Почему так сложно? Мне одному?"
Затем:
"Вот это домашки продуманы! Они помогают думать, включать мозг еще на этапе чтения задания", - как оказалось, вникание в суть задания - тоже целый процесс.

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

Это лично мой опыт. Кому-то курсы дались легче, кому-то сложней.

Главное преимущество пройденного курса считаю:
1. Профессиональный преподавательский состав;
2. Интересная и раскрашенная подача материала;
3. Продуманность курса - хороший охват многих вещей как в С++, так и в целом разработки;
4. Дополнительное общения "под огурчик" :) Когда можно поговорить в целом про программистскую жизнь, про обучение и не только;
5. Супер возможность - общение в slack'e. Там и обсуждение, уточнение задания, вопросы-ответы, общение в групповом чате и лично.
Ну и, наверное, энтузиазм от того, что все вместе решаем интересные задачи, а также потому, что курсы ведут практикующие преподаватели-эксперты.
Читать целиком
Жанбек
Сарсенов
Курс мне очень понравился.

Да, он для тех, кто, как минимум, хорошо владеет:

1) основами синтаксиса языка C++ стандарта 2003 года;
2) знаниями по основным структурам и алгоритмам данных;
3) конечно же STL (это наше всё);

Также желательно иметь хотя бы общее представление о принципах работы СУБД и знать основные команды языка SQL.

Если Вы владеете вышеперечисленными навыками и желаете:

1) систематизировать имеющиеся знания по С++,

2) погрузиться в современные стандарты языка С++ 11-го, 14-го и 17-го годов,

3) узнать о паттернах / антипаттернах проектирования программного обеспечения

4) узнать об основных областях и трендах применения этого замечательного языка в современном мире,

то Вам однозначно на эти курсы!
Читать целиком
Виталий
Петров
Добрый день. В целом курс очень понравился. Подача материала нашим преподавателем Дмитрием Шебордаевым - на высоте. Плюсов много, перечислять не буду, но останвлюсь на ряде пожеланий, собственно не обязательных =)

Субъективно, слишком много лекций отдано на DLib в конце (3 лекции + 2 домашки), я бы предпочел в рамках одной лекции кратко коснуться этой темы, а другие лекции потратить на:
1. Обзор литературы, которая может быть реально полезной в дальнейшем изучении (Ну к примеру "Искусство программирования для Unix", книги по CMake / системам сборки типа той что мелькала в Slack, книги по шаблонам проектирования, "Код. тайный язык информатики" и т.д.). Т.е. что-то техническое впремешку с просто познавательной литературой, так как часто бывает трудно понять какие из имеющихся в сети книг полезные, а какие шлак на который не стоит тратить время.
2. Можно рассказать о существовании статических анализаторов кода, типа PVS-Studio и других
3. Можно рассказать о профилировщиках, почему valgrind не всегда панацей (он работать удоачно только на Linux и чаще надежнее написать на коленке анализатор считающий микросекунды, встроенный в код, типа https://github.com/jonasmr/microprofile)
4. Интересно было бы послушать про связку C++ с другими языками (как например сделать биндинг для python?). Туда же lua как встраиваемый язык внутри C++.

Ну и т.д. Часть этих тем конечно затрагивалась в процессе обучения, но может стоит подумать над тем чтоб что-то из них вынести в отдельные лекции?
Читать целиком
Минимальные знания
Для успешного обучения и оптимального усвоения уроков вы должны знать:

    1. Синтаксис языка программирования стандарта C++03:

    • Переменные,
    • Функции,
    • Указатели,
    • Классы, структуры, union
    • Переопределение операторов,
    • Наследование,
    • Исключения.
    • Понимание шаблонов в языке C++.
    2. Основы computer science:

    • Простые алгоритмы и их оценки сложности;
    • Структуры данных и их применение;
    • Принципы работы с памятью - стек, heap;
    3. Основы SQL – некоторые уроки посвящены изучению работы с базами данных.

    4. Основы многопоточного программирования: понятие deadlock не должно ставить Вас в deadlock.

    Процесс обучения
    Обучение программированию выстроено в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек. Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю вопросы по материалам лекций и домашних заданий, уточнять моменты, которые были непонятны на уроке.
    Необходимое время на обучение: 4 часа на занятия и 4-8 часов на домашнюю работу в неделю.
    Программа обучения
    Модуль 1
    Современный C++
    Модуль 2
    Архитектура
    Модуль 3
    Параллельные вычисления
    Модуль 4
    Сеть
    Модуль 5
    Хранилища
    Модуль 6
    ML
    Модуль 7
    Проектная работа
    Современный C++
    CI/CD. C++11. C++14. C++17. Управление памятью. Шаблонная магия
    Система сборки: build, test and deploy.
    познакомиться,
    понять, как будем работать,
    узнать, с кем и как общаться,
    понять, зачем нужна автоматизация сборки,
    расшифровывать аббревиатуру CI/CD,
    подготовить стенд для выполнения самостоятельных работ,
    Домашние задания: 1
    1 Сборка и публикация пакета
    Написать программу выводящую на консоль единственную строку

    Hello, World!

    Сформировать готовый для установки deb-пакет со скомпилированной программой и выложить его в репозиторий.
    Прислать ссылку на репозиторий в github и ссылку на репозиторий с
    пакетом.
    Будет здорово, но не обязательно
    Добавить версионность в пакет и сообщение.
    Запустить на этапе сборки тесты.
    Может пригодиться
    Выложить исходные тексты в репозиторий на github.
    Залогиниться на https://travis-ci.org/ и включить для своего репозитория
    автоматическую сборку.
    Залогиниться на https://bintray.com/ (For an Open Source Account и аккаунт
    github). Создать новый репозиторий - имя произвольное, тип Debian, Default
    Licenses любая. После создания отредактировать включив GPG sign.
    Создать в созданном репозитории новый пакет - имя произвольное,
    ссылка на контроль версии может быть указана как - (просто чтобы было
    заполнено).
    По ссылке https://bintray.com/profile/edit в пункте API Key скопировать
    ключ. В настройках репозитория в https://travis-ci.org создать переменную,
    например BINTRAY_API_KEY, и в качестве значения API Key. Это
    позволит не указывать явно ключ в исходниках.


    Пример на github:
    https://github.com/vvz-otus/hw02.cpp01_2
    Только ваш проект называться будет helloworld (а не cpp01_2:)
    Особенности C++11. Часть 1.
    подтянуть C++11 (пригодится дальше по курсу),
    узнать новые детали,
    обсудить тонкие моменты
    Особенности C++11. Часть 2.
    освежить основы по C++11 (пригодится дальше по курсу),
    узнать новые детали,
    обсудить особенности, которые стоит учитывать
    Домашние задания: 1
    1 ДЗ-02. C++14
    1. Выполнить задание описанное в 02.homework.pdf

    2. Зарегистрироваться в http://acm.timus.ru
    Решить первые пять простых задач:
    1001 1000 1785 1293 2012

    3. Опционально!
    Реализовать constexpr-функцию нахождения ближайшей большей степени двойки
    https://goo.gl/CBfjE9
    Сравнение C++11/C++14 с С++ 03
    освежить знания по C++14,
    узнать новые детали,
    обсудить особенности С++ 14, на которые стоит обратить внимание
    Обзор C++17. Часть 1.
    разобраться с основными нововведениями С++ 17,
    понять кейсы использования,
    обойти несколько тонких моментов
    углубиться в пару других??
    Обзор C++17. Часть 2.
    разобраться с основными нововведениями С++17
    понять кейсы использования
    обойти несколько тонких моментов
    углубиться в пару других??
    Реализация умных указателей
    запомнить правило: "взял память - верни, когда больше не нужна",
    понять, как следовать этому правилу,
    разобраться с разными типами умных указателей
    Идея аллокаторов
    осознать важность стратегий аллокации памяти,
    понять, что можно использовать разные,
    разобраться, как реализовать свой аллокатор,
    понять, как расширяется std::vector, и почему именно так
    Домашние задания: 1
    1 ДЗ-03. allocator
    1. Выполнить задание описанное в 03.homework.pdf
    2. На acm.timus.ru выполнить 1409, 1877, 2001, 1264, 1787
    Шаблонная магия
    перестать бояться шаблонов,
    пообещать себе перестать пользоваться макросами,
    читать STL,
    искать документацию
    Архитектура
    Принципы проектирования ПО, GRASP, шаблоны GoF, STL, Boost
    Принципы проектирования ПО
    разобраться, зачем нужны принципы;
    научиться пользоваться принципами,
    научиться читать UML диаграммы.
    Домашние задания: 1
    1 ДЗ-04.doxygen
    1. Выполнить задание описанное в 04.homework.pdf
    2. Решить первые 15 задач на acm.timus.ru (от простых к сложным)
    3. Предоставить своё ревью на решения ДЗ-02 от двух коллег (которые его выполнили)
    4. Опционально: предоставить примеры, из своей практики, использования Принципов Проектирования
    GRASP.
    научимся обращать внимание на архитектурные детали кода,
    улучшать метрики кода,
    находить ошибки в коде коллег
    Шаблоны GoF. Порождающие.
    научиться читать паттерны проектирования,
    научиться использовать паттерны,
    понять ценность экспериментов.
    Домашние задания: 1
    1 ДЗ-05. Editor.
    1. Выполнить задание описанное в 05.homework.pdf
    2. На acm.timus.ru решить любые 3 задачи с уровнем сложности от 100 до 150.
    3. Предоставить своё ревью на решения ДЗ-03 от двух коллег (которые его выполнили).
    4.Опционально: Предоставить ревью на РЕВЬЮ ДЗ-02.
    Шаблоны GoF. Структурные.
    научиться читать паттерны проектирования,
    научиться использовать паттерны,
    понять ценность экспериментов.
    Шаблоны GoF. Поведенческие.
    научиться читать паттерны проектирования,
    научиться использовать паттерны,
    понять ценность экспериментов.
    Домашние задания: 1
    1 ДЗ-06. Matrix.
    1. Выполнить задание описанное в 06.homework.pdf
    2. На acm.timus.ru решить любые 3 задачи с уровнем сложности от 151 до 200.
    3. Предоставить своё ревью на решения ДЗ-04 от двух коллег (которые его выполнили).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-03.
    Шаблоны GoF. Поведенческие. Часть 2.
    научиться читать паттерны проектирования,
    научиться использовать паттерны,
    понять ценность экспериментов.
    STL. Контейнеры.
    изучить контейнеры STL,
    понять, какие типы контейнеров есть в STL,
    научиться настраивать поведение контейнеров.
    Домашние задания: 1
    1 ДЗ-07. cmd
    1. Выполнить задание описанное в 07.homework.pdf
    2. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 201 до 300.
    3. Предоставить своё ревью на решения ДЗ-05 от двух коллег (которые его выполнили).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-04.
    STL. Алгоритмы.
    разобраться, почему алгоритмов в STL так много,
    понять, зачем нужны алгоритмы в STL,
    научиться использовать алгоритмы.
    Домашние задания: 1
    1 ДЗ-08. timus
    1. Выполнить задание описанное в 08.homework.pdf
    2. Опционально. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 300 до 400.
    3. Предоставить своё ревью на решения ДЗ-06 от двух коллег (которые его выполнили).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-05.
    Boost. Разное.
    понять философию проекта Boost,
    научиться читать документациию Boost,
    научиться выбирать и применять библиотеки
    Boost. Паттерны проектирования.
    продолжить изучать Boost,
    посмотреть на реализацию паттернов проектирования,
    расширить знания про библиотеку.
    Домашние задания: 1
    1 ДЗ-09. Boost Concept Check Library
    1. Выполнить задание описанное в 09.homework.pdf
    2. Опционально. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 401 до 450.
    3. Предоставить своё ревью на решения ДЗ-07 от двух коллег (которые его выполнили).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-06.
    Параллельные вычисления
    Многопоточность
    научиться использовать потоки в своих приложениях,
    научиться решать основные проблемы многопоточности,
    научиться использовать инструменты стандартной библиотеки.
    Домашние задания: 1
    1 ДЗ-10. Многопоточная обработка команд
    1. Выполнить задание описанное в 10.homework.pdf
    2. Опционально. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 451 до 500.
    3. Опционально. Предоставить своё ревью на решения ДЗ-09 от двух коллег (которые его сделали).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-07.
    Шаблоны 5
    научиться понимать многопоточные паттерны,
    научиться их использовать для решения задач.
    Асинхронное программирование
    понять разницу между многопоточностью, параллельностью и асинхронностью,
    научиться выбирать подходящее решение для своей задачи,
    использовать возможности стандартной библиотеки.
    Домашние задания: 1
    1 ДЗ-11. Асинхронная обработка команд
    1. Выполнить задание описанное в 11.homework.pdf
    2. Опционально. На acm.timus.ru решить 3 любые задачи с уровнем сложности от 501 до 550.
    3. Опционально. Предоставить своё ревью на решения ДЗ-10 от двух коллег (которые его сделали).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-08.
    Lockfree DS
    разобраться в том, что такое lock-free подход,
    научиться видеть сценарии его использования,
    научиться читать lock-free код.
    Атомарные типы данных
    научиться использовать атомарные операции в своём коде,
    разобраться в принципах и стоимости их работы.
    Сеть
    Сетевое взаимодействие
    понять, зачем нужна сеть в программах на C++,
    понять, как решать возникающие проблемы.
    Домашние задания: 1
    1 ДЗ-12. Асинхронная сетевая обработка команд
    1. Выполнить задание описанное в 12.homework.pdf
    2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 551 до 600.
    3. Опционально. Предоставить своё ревью на решения ДЗ-11 от двух коллег (которые его сделали).
    4. Опционально: Предоставить ревью на РЕВЬЮ ДЗ-09.
    Асинхронный ввод/вывод
    научиться использовать библиотеки для работы с сетью,
    научиться выбирать подходящие инструменты.
    Хранилища
    РСУБД
    научиться использовать хранилища данных в своих проектах.
    Домашние задания: 1
    1 ДЗ-13. outer join
    1. Выполнить задание описанное в 13.homework.pdf
    2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 601 до 650.
    3. Опционально. Предоставить своё ревью на решения ДЗ-12 от двух коллег (которые его сделали).
    Key Value
    разобраться в том, что же такое NoSQL,
    научиться выбирать решение под задачу.
    Много данных
    разобраться в идеологии map reduce,
    немного поэкспериментировать.
    Домашние задания: 1
    1 ДЗ-14. mapreduce
    1. Выполнить задание описанное в 14.homework.pdf
    2. Опционально. На acm.timus.ru решить 2 любые задачи с уровнем сложности от 651 до 700.
    3. Выложить свою реализацию на ревью.
    4. Опционально. Предоставить два своих ревью на ДЗ-13.
    ORM
    разобраться, зачем нужны ORM,
    научиться применять их в своих приложениях.
    ML
    Dlib. Кластеризация.
    разобраться, зачем нужно машинное обучение,
    научиться решать базовые задачи ML,
    научиться читать документацию Dlib.
    Домашние задания: 1
    1 ДЗ-15. Кластеризация
    1. Выполнить задание описанное в 15.homework.pdf
    2. Опционально. На acm.timus.ru решить 1 любую задачу с уровнем сложности от 700 до 800.
    3. Выложить свою реализацию на ревью.
    4. Опционально. Предоставить два своих ревью на ДЗ-14.
    Dlib. Классификация.
    разобраться с принципами классификации,
    научиться решать задачу классификации.
    Dlib. Регрессия.
    разобраться с формулировкой и решение задачи регрессии.
    Домашние задания: 1
    1 ДЗ-16. Недвижимость
    1. Выполнить задание описанное в 16.homework.pdf
    2. Выложить свою реализацию на ревью.
    3. Да и хватит на этом. Пора приступать к проекту.
    Проектная работа
    Заключительная часть курса о программировании на С++ посвящена проектной работе.
    Мало что доставляет столько же удовольствия, как самостоятельно реализованный проект на выбранную самостоятельно тему на основе знаний, полученных на курсе.
    В процессе написания (и даже в процессе выбора темы) можно получить консультации преподавателей.

    При удачном стечении обстоятельств (в основном, при наличии должного усердия со стороны студента) проект станет достойным примером кода, который можно будет показывать потенциальным работодателям в качестве портфолио. Таким образом обучение программированию завершится большой практической работой, и вы будете гордиться тем, что сделали своими руками.
    Проектная работа
    Делаем проектную работу и сдаём сюда в качестве домашней работы.
    Домашние задания: 1
    1 Проектная работа.
    Преполагаемые этапы выполнения:
    1. Проработанные требования к реализации
    2. Планируемая архитектура
    3. Полная итоговая реализация.
    Сдавать можно как по частям, так и сразу итоговый вариант.

    Не обязательно придерживаться указанному плану.
    Выпускной проект
    Последний месяц обучения программированию посвящен выполнению проектной работы. Он поможет закрепить прикладным образом полученные на курсе знания и станет своеобразным портфолио, благодаря которому претендовать на позицию middle C++ разработчика и пройти собеседование станет значительно проще.


    Примеры тем проекта:

    • in-memory sql-сервер;

    • хранилище типа key-value;

    • очередь с моделью подписчиков.
    Прошедшие открытые вебинары по курсу
    Открытый вебинар - это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
    Cтранно рекурсивный шаблон
    Дмитрий Шебордаев
    День открытых дверей
    14 марта в 20:00
    Пройти вступительное тестирование
    Для доступа к прошедшим мероприятиям необходимо пройти входное тестирование
    Возможность пройти вступительное тестирование повторно появится только через 2 недели
    Результаты тестирования будут отправлены вам на e-mail, указанный при регистрации.
    Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!
    После обучения вы

    • заберете с собой материалы по всем занятиям (презентации, записи вебинаров, примеры практических задач);

    • получите сертификат о прохождении курса программирования на С++;

    • научитесь прикладному применению стандартов C++11 / C++14 / C++17;

    • освоите асинхронное и многопоточное программирование;

    • получите глубокое представление о шаблонной магии и паттернах проектирования;

    • получите приглашение пройти собеседование в компаниях-партнерах Otus в Москве (в случае успешного обучения на курсе).

    Дата выдачи сертификата: 1 января 2020 года
    Ваш сертификат
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «Разработчик C++»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «Разработчик C++»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    Общая стоимость
    50 000 ₽
    В месяц: 12 500 ₽
    В кредит: ₽ в месяц
    Продолжительность
    5 месяцев
    Начало занятий
    27 июня