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

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

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

5 месяцев

Начало

20 декабря

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

60 000 ₽

В месяц

15 000 ₽

В кредит:

около 15000 ₽ в месяц

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

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

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

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

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

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


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


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

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

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

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

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

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано. Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и занимаюсь на курсе DataScience. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу "Алгоритмы для разработчиков".

Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!

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

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

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

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

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Михаил Горшков
Программирую на С++ и Python в течение 18 лет, как хобби — играю на фортепиано. Работаю в Лаборатории Касперского, окончил курс по С++ в Otus и занимаюсь на курсе DataScience. Сейчас являюсь наставником на курсе С++. Специально для проекта OTUS создал программу "Алгоритмы для разработчиков".

Этот курс для тех, кто не проходил или пропустил алгоритмы в своем ВУЗе, а также для всех программистов, интересующихся данной темой: от любителей до профессионалов. Вы узнаете о популярных алгоритмах и структурах данных, научитесь их реализовывать и применять, сможете претендовать на вакансии в лучшие компании России и всего мира: Яндекс, Google, Facebook!

Присоединяйтесь, будет круто!
Отзывы
6
Дмитрий
Сыромятников
Большой, хороший курс. Преподаватели и преподавание приятно удивили, особенно разъяснения Дмитрия Шебордаева и настойчивость Василия Зазнобина в прививании продакшен-навыков. А какая замечательная атмосфера курса, взаимопомощь, общение. Результат: очень доволен, курс был много лучше моих ожиданий. Спасибо.
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) узнать об основных областях и трендах применения этого замечательного языка в современном мире,

то Вам однозначно сюда!
Читать целиком
Приветствие Дмитрия Шебордаева в Otus
Минимальные знания
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.
Поиск распространяемых пакетов. Кастомный модуль для наших пакетов.
20 декабря, 20:00 — 21:30
Домашние задания: 1
1 helloworld
Широкоиспользуемые фичи C++11 стандарта. auto. Замыкание - Лямбда-функции. Кортежи.
Некоторые небольшие, на первый взгляд, нововведения настолько меняют язык, что диву даешься :)
24 декабря, 20:00 — 21:30
Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates.
27 декабря, 20:00 — 21:30
Домашние задания: 1
1 ip_filter
Рассмотрим полезные нововведения 14 стандарта.
31 декабря, 20:00 — 21:30
Вглубь реализации умных указателей.
Подводные камни и оптимизации.
3 января, 20:00 — 21:30
Идея аллокаторов.
Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
7 января, 20:00 — 21:30
Домашние задания: 1
1 allocator
Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL. SFINAE
10 января, 20:00 — 21:30
Архитектура
Принципы проектирования ПО
UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
14 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-04.doxygen
GRASP. Часть 1
Рассмотрим: Indirection, Low Coupling, Polymorphism, Protected Variations.
17 января, 20:00 — 21:30
GRASP. Часть 2
Рассмотрим: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion
21 января, 20:00 — 21:30
Домашние задания: 1
1 ДЗ-05
Шаблоны GoF. Часть 1.
Порождающие шаблоны проектирования.
24 января, 20:00 — 21:30
Шаблоны GoF. Часть 2.
Структурные шаблоны проектирования.
28 января, 20:00 — 21:30
Домашние задания: 1
1 matrix
Шаблоны GoF. Часть 3.
Поведенческие шаблоны проектирования. 1 часть
31 января, 20:00 — 21:30
Шаблоны GoF. Часть 4.
Поведенческие шаблоны проектирования. 2 часть
4 февраля, 20:00 — 21:30
Домашние задания: 1
1 bulk
Антипаттерны
Разберем антипаттерны программирования (кодирования), ООП, проектирования и антипаттерны в других областях
7 февраля, 20:00 — 21:30
STL. Часть 1.
Структуры данных STL
11 февраля, 20:00 — 21:30
Домашние задания: 1
1 nickname
STL. Часть 2
Алгоритмы
14 февраля, 20:00 — 21:30
Boost. Часть 1
Контейнеры
18 февраля, 20:00 — 21:30
Домашние задания: 1
1 bayan
Boost. Часть 2
Алгоритмы
21 февраля, 20:00 — 21:30
Параллельные вычисления
Многопоточность
Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
25 февраля, 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.
28 февраля, 20:00 — 21:30
Асинхронное программирование
Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
4 марта, 20:00 — 21:30
Домашние задания: 1
1 Асинхронная обработка команд
Lockfree DS
Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
7 марта, 20:00 — 21:30
Сеть
Сетевое взаимодействие
Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
11 марта, 20:00 — 21:30
Домашние задания: 1
1 Асинхронная сетевая обработка команд
Асинхронный ввод/вывод
Библиотеки и практики работы с неблокирующей передачей данных
14 марта, 20:00 — 21:30
Хранилища
РСУБД
Использование РСУБД. Подключение и работа с БД
18 марта, 20:00 — 21:30
Домашние задания: 1
1 outer join
Key Value
Идея NoSQL. Aerospike, redis, leveldb
21 марта, 20:00 — 21:30
Много данных
Map reduce
25 марта, 20:00 — 21:30
Домашние задания: 1
1 mapreduce
ORM
ООП при работе с базами данных. Паттерны DAO и Repository
28 марта, 20:00 — 21:30
ML
Dlib. Часть 1.
Кластеризация, тематическое моделирование.
1 апреля, 20:00 — 21:30
Домашние задания: 1
1 Кластеризация
Dlib. Часть 2.
Регрессия
4 апреля, 20:00 — 21:30
Dlib. Часть 3.
Классификация
8 апреля, 20:00 — 21:30
Домашние задания: 2
1 Классификация
2 Проектная работа
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе.
При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

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

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



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


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

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

  • очередь с моделью подписчиков.
Расписание занятий
Ваша группа
(cтарт 20 декабря)
Понедельник и четверг
20:00—21:30
Группа: C++-2018-12
Другие группы
Вторник и пятница
20:00—21:30
Группа: C++-2018-09
Подглядеть
С++: Диаграммы UML
Области видимости и невидимости
Сергей Кольцов
Cтранно рекурсивный шаблон
Дмитрий Шебордаев
Видеоматериалы по теме
День открытых дверей
20 сентября в 20:00
День открытых дверей
18 июня в 20:00
День открытых дверей
14 мая в 20:00
После обучения вы

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

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

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

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

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

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

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