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

Курс о тонкостях и особенностях разработки программного обеспечения на C++
Зачем нужно тестирование?

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

5 месяцев

Начало

25 сентября

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

50 000 ₽

В месяц

12 500 ₽

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

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

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

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

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

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


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


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

12 работодателей пригласят лучших выпускников на собеседования
Разработчик С++, 20 сентября в 20:00
Хотите узнать, почему OTUS – больше, чем просто образовательный портал?
Как OTUS дает возможность стать частью сообщества профессионалов и сделать новый шаг по карьерной лестнице?
Почему учиться – не обязанность, а удовольствие и почему тесное сплетение теории и практики в обучении дает эффект синергии?
Приходите к нам на День Открытых Дверей. Формат проведения – онлайн – подключиться можно из любой точки мира!
Ведет
Дмитрий
Шебордаев
Предыдущий день открытых дверей
"Язык программирования может быть любым, при условии, что он C++"
Дмитрий Шебордаев
Преподаватель курса
"Язык программирования может быть любым, при условии, что он C++"
Дмитрий Шебордаев
Преподаватель курса
Преподаватели
Дмитрий Шебордаев
Сергей Кольцов
Руководитель отдела разработки технологий в Rambler&Co
Получил образование по специальности «Прикладная математика» в Московском государственном университете экономики статистики и информатики.
Начинал рядовым разработчиком в компании, автоматизирующей процессы розничной торговли. Автор одной из самых популярных систем в РФ и бывших республиках. Не прекращая активной деятельности в разработке, прошёл путь до руководителя. Последние несколько лет работает в области информационного поиска в крупной российской ИТ-компании. Остаётся верен своей профессии свыше 20 лет. Читает образовательные курсы по специальности.
Senior Developer С++ VisionLabs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процесс обучения
Обучение выстроено в формате вебинаров (онлайн). Слушателям предлагаются к выполнению домашние задания, которые позволят применить на практике полученные во время вебинаров знания. По каждому домашнему заданию преподаватель дает развернутый фидбек. Преподаватель находится в едином коммуникационном пространстве с группой на протяжении всего курса, т. е. в процессе обучения слушатель может задавать преподавателю уточняющие вопросы по материалам лекций и домашних заданий.
Необходимое время: 4 часа на занятия и 4-8 часов на домашнюю работу в неделю.
Программа обучения
Модуль 1
Введение
Модуль 2
Архитектура
Модуль 3
Параллельные вычисления
Модуль 4
Сеть
Модуль 5
Хранилища
Модуль 6
ML
Модуль 7
Проектная работа
Введение
Система сборки: build, test and deploy.
Поиск распространяемых пакетов. Кастомный модуль для наших пакетов.
25 сентября, 20:00 — 21:30
Домашние задания: 1
1 Сборка и публикация пакета
Широкоиспользуемые фичи C++11 стандарта. auto. Замыкание - Лямбда-функции. Кортежи.
Некоторые небольшие, на первый взгляд, нововведения настолько меняют язык, что диву даешься :)
28 сентября, 20:00 — 21:30
Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates. POD.
2 октября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-02. C++14
Рассмотрим полезные нововведения 14 стандарта.
5 октября, 20:00 — 21:30
Вглубь реализации умных указателей.
Подводные камни и оптимизации.
9 октября, 20:00 — 21:30
Идея аллокаторов.
Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
12 октября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-03. allocator
Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL. SFINAE
16 октября, 20:00 — 21:30
Архитектура
Принципы проектирования ПО
UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
19 октября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-04.doxygen
GRASP. Часть 1
Рассмотрим: Indirection, Low Coupling, Polymorphism, Protected Variations.
23 октября, 20:00 — 21:30
GRASP. Часть 2
Рассмотрим: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion
26 октября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-05
Шаблоны GoF. Часть 1.
Порождающие шаблоны проектирования.
30 октября, 20:00 — 21:30
Шаблоны GoF. Часть 2.
Структурные шаблоны проектирования.
2 ноября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-06.matrix
Шаблоны GoF. Часть 3.
Поведенческие шаблоны проектирования. 1 часть
6 ноября, 20:00 — 21:30
Шаблоны GoF. Часть 4.
Поведенческие шаблоны проектирования. 2 часть
9 ноября, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-07.cmd
Антипаттерны
Разберем антипаттерны программирования (кодирования), ООП, проектирования и антипаттерны в других областях
13 ноября, 20:00 — 21:30
STL. Часть 1.
Структуры данных STL
16 ноября, 20:00 — 21:30
Домашние задания: 1
1 Реализуем алгоритм используя разные структуры. Оцениваем читаемость и эффективность.
STL. Часть 2
Алгоритмы
20 ноября, 20:00 — 21:30
Boost. Часть 1
Контейнеры
23 ноября, 20:00 — 21:30
Домашние задания: 1
1 Создаем набор повседневных утилит.
Boost. Часть 2
Алгоритмы
27 ноября, 20:00 — 21:30
Параллельные вычисления
Многопоточность
Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
30 ноября, 20:00 — 21:30
Домашние задания: 1
1 Многопоточная обработка команд
Шаблоны 5
Concurrency pattern. Active Object, Balking, Barrier, Double-checked locking, Guarded suspension, Leaders/followers, Monitor Object, Reactor, Read write lock, Scheduler, Thread pool, Thread-local storage.
4 декабря, 20:00 — 21:30
Асинхронное программирование
Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
7 декабря, 20:00 — 21:30
Домашние задания: 1
1 Асинхронная обработка команд
Lockfree DS
Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
11 декабря, 20:00 — 21:30
Сеть
Сетевое взаимодействие
Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
14 декабря, 20:00 — 21:30
Домашние задания: 1
1 Асинхронная сетевая обработка команд
Асинхронный ввод/вывод
Библиотеки и практики работы с неблокирующей передачей данных
18 декабря, 20:00 — 21:30
Хранилища
РСУБД
Использование РСУБД. Подключение и работа с БД
21 декабря, 20:00 — 21:30
Домашние задания: 1
1 outer join
Key Value
Идея NoSQL. Aerospike, redis, leveldb
25 декабря, 20:00 — 21:30
Много данных
Map reduce
28 декабря, 20:00 — 21:30
Домашние задания: 1
1 mapreduce
ORM
ООП при работе с базами данных. Паттерны DAO и Repository
1 января, 20:00 — 21:30
ML
Dlib. Часть 1.
Кластеризация, тематическое моделирование.
4 января, 20:00 — 21:30
Домашние задания: 1
1 Кластеризация
Dlib. Часть 2.
Регрессия
8 января, 20:00 — 21:30
Dlib. Часть 3.
Классификация
11 января, 20:00 — 21:30
Домашние задания: 2
1 Классификация
2 Проектная работа
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

Примеры тем проекта:
- in-memory sql-сервер
- хранилище типа key-value
- очередь с моделью подписчиков
Расписание занятий
Ваша группа
(cтарт 25 сентября)
Вторник и пятница
20:00—21:30
Группа: C++-2018-09
Другие группы
Понедельник и четверг
20:00—21:30
Группа: C++-2018-06
Подглядеть
Области видимости и невидимости
Сергей Кольцов
С++: Диаграммы UML
Cтранно рекурсивный шаблон
Дмитрий Шебордаев
Видеоматериалы по теме
День открытых дверей
14 мая в 20:00
День открытых дверей
30 ноября 2017 года в 20:00
День открытых дверей
20 февраля в 20:00
После обучения вы

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

  • получите сертификат о прохождении курса;

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

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

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

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

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



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


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

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

  • очередь с моделью подписчиков.
Ваш сертификат
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик C++»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
otus.ru
Константин Константинопольский
успешно закончил курс
«Разработчик C++»
Успешных заданий:
16 из 16
Проектная работа:
Распределённая система сетевого мониторинга
Виталий Чибриков
Генеральный директор
№ 0001
Общая стоимость
50 000 ₽
В месяц: 12 500 ₽
Продолжительность
5 месяцев
Начало занятий
25 сентября
Мероприятия
Ближайшие
Прошедшие
20 сентября в 20:00
Разработчик С++
День открытых дверей
Ведет: Дмитрий Шебордаев
11 сентября в 20:00
Cтранно рекурсивный шаблон
Открытый вебинар
Провел: Дмитрий Шебордаев
18 июня в 20:00
Разработчик C++
День открытых дверей
Провел: Сергей Кольцов
14 мая в 20:00
Разработчик C++
День открытых дверей
Провел: Сергей Кольцов
26 апреля в 20:00
Области видимости и невидимости
Открытый вебинар
Провел: Сергей Кольцов
20 февраля в 20:00
Разработчик С++
День открытых дверей
2 февраля в 20:00
С++: Диаграммы UML
Открытый вебинар
30 ноября 2017 года в 20:00
Разработчик С++
День открытых дверей
27 ноября 2017 года в 20:00
Разработчик С++
День открытых дверей