Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

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

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

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

5 месяцев

Начало

20 декабря

Занятия

Пн 20:00, Чт 20:00

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

60 000 ₽ 42 000 ₽

В месяц

15 000 ₽ 12 150 ₽

В кредит:

15000 ₽ в месяц

Хочу дешевле
Общая стоимость
60 000 ₽ 42 000 ₽
В месяц: 15 000 ₽ 12 150 ₽
В кредит: 42000 ₽
в месяц
Продолжительность
5 месяцев, 4 часа в неделю
Пн 20:00, Чт 20:00
Начало занятий
20 декабря
О курсе и о себе
Мы будем не только выполнять, но и оценивать практические работы, а также исправлять и оценивать чужие исправления, то есть учиться взаимодействовать со своей командой.
Что даст вам этот курс


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

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

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

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

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




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


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

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

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

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

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

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

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

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

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

Окончил МГТУ им. Н.Э. Баумана в 2011 году, факультет "Информатика и системы управления".
Отзывы
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) узнать об основных областях и трендах применения этого замечательного языка в современном мире,

то Вам однозначно на эти курсы!
Читать целиком
Минимальные знания
Для успешного обучения и оптимального усвоения уроков вы должны знать:

    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++
    Система сборки: build, test and deploy.
    Поиск распространяемых пакетов. Кастомный модуль для наших пакетов.
    20 декабря, 20:00 — 21:30
    Домашние задания: 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 стандарта. auto. Замыкание - Лямбда-функции. Кортежи.
    Некоторые небольшие, на первый взгляд, нововведения настолько меняют язык, что диву даешься :)
    24 декабря, 20:00 — 21:30
    Широкоиспользуемые фичи C++11 стандарта. rvalue и lvalue ссылки. Move semantic. Variadic Templates. POD.
    27 декабря, 20:00 — 21:30
    Домашние задания: 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
    Рассмотрим полезные нововведения 14 стандарта.
    10 января, 20:00 — 21:30
    Обзор C++17 - а чего же там эдакого? Часть 1.
    На дворе 21-й век, и как-то уже не модно заниматься разработкой на C++98 из прошлого века.
    Однако C++11 и даже C++14 также больше не являются финальной точкой развития. Пора приступать к изучению C++17!

    На этом занятии мы рассмотрим нововведения стандарта C++17. Даже не будем стараться охватить своим взором абсолютно все нововведения, но всё-таки посмотрим довольно много всего.

    Итак, по окончанию этого занятия слушатели получат представление о следующих фишках C++17.

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

    Не только шаблоны и стандартная библиотека были обновлены. Также изменения коснулись некоторых общих конструкций языка.
    1. Долой ifdef, даёшь constexpr if! Достаточно нескольких примеров, чтобы восхититься.
    2. inline переменные как попытка избежать проблем extern. Редкая проблема, посмотрим, поймём, забудем до востребования.
    3. Раньше было нельзя, а теперь можно - constexpr с лямбдами.
    4. Может, пригодится - инициализаторы внутри операторов if и switch.
    5. Порядок вычислений стал более упорядочен. Мелочь, а приятно. Теперь не всё UB, что таковым кажется.
    6. Вложенные пространства имён экономят бумагу (и табуляции).
    7. Старый добрый alignas теперь с новыми гарантиями.
    8. Structured bindings или что-то вроде std::tie, но не совсем.
    9. __has_include в помощь разработчикам библиотек.
    10. Атрибуты. Новые атрибуты. Не знали, что есть старые? Ничего - рассмотрим все.
    11. Надоело писать банальные сообщения об ошибках? Теперь можно не писать. Встречайте static_assert с одним аргументом.
    14 января, 20:00 — 21:30
    Обзор C++17 - а чего же там эдакого? Часть 2.
    На дворе 21-й век... Но это Вы уже знаете и так.

    На этом занятии продолжим рассмотрение нововведений стандарта C++17. Впереди ещё много много интересного - не переключайтесь :).

    Над стандартной библиотекой трудятся лучшие умы сообщества. Поэтому и изменений довольно много.
    1. Посмотрим на std::filesystem. Что-то напоминает? Или нет? Для тех, кто раньше использовал boost - самое то.
    2. std::shared_ptr с массивами теперь работает также прекрасно, как и std::unique_ptr. Не поняли, о чём речь? Объясним в деталях.
    3. std::scoped_lock как альтернатива довольно неудобному std::lock. Достаточно одного простого примера, чтобы понять суть.
    4. std::optional - нечто, чего может и не быть.
    5. std::any - нечто, что может быть чем угодно.
    6. std::variant - нечто, что знает, чем оно является. И тоже что-то напоминает...
    7. std::string_view - классная штука или новая опасность?
    8. std::byte на замену uint8_t при работе с памятью. Семантика улучшена.
    9. std::invoke и std::is_invocable - ценителям шаблонов.
    10. Мало им было std::to_string и itoa, теперь есть ещё и std::to_chars и std::from_chars. Посмотрим, что изменилось. И почему вообще цифры буквами записать так сложно.
    11. std::as_const - тоже для любителей шаблонов. Постараемся придумать кейс использования.
    12. Уже оценили std::begin, std::end? Нет? Самое время! Встречайте - std::size, std::data и std::empty. Попробуем пообещать себе использовать.
    13. Логические метафункции - поймут только знатоки. Посмотрим, восхитимся и забудем. Довольно узкая тема.
    14. emplace_back теперь возвращает ссылку. Отставить emplace_back + back! Наконец-то.
    15. Searcher functors - для тех, кто знает, что такое алгоритм Бойера – Мура или алгоритм Бойера — Мура – Хорспула. Немного погрузимся, но совсем чуть-чуть.
    16. Даёшь больше математики! Не знаете, что такое Дзета-функция Римана? А стандарт C++17 знает. Чисто для информации - на занятиях использовать не будем.
    17. try_emplace и insert_or_assign в std::map - оценят только те, кто наступал на грабли. Покажем на примере.
    18. Хотите узнать, чем std::apply отличается от std::invoke? Приходите - поговорим об этом.
    19. Много проблем с std::initializer_list? Их решить призван метод std::make_from_tuple.
    20. Кто-нибудь пользовался std::not1 и std::not2? Теперь можно пользоваться ещё одной функцией - std::not_fn. Не пользовались? Попробуем на занятии.
    21. Пересадка элементов контейнеров гораздо проще пересадки органов - std::extract спешит на помощь! Заодно посмотрим на merge-метод.
    22. std::is_integral<T>::value - теперь можно короче: std::is_integral_v<T>. Шаблоны становятся чуть менее страшными.
    23. Параллельные алгоритмы теперь не только в параллельных вселенных. Больше не нужно изобретать велосипедов (хотя бы части).


    Есть также возможности языка, которые больше таковыми не являются. Кое-что было безжалостно выпилено из стандарта.
    1. Попрощаемся с триграфами (а кто-то узнает о том, что они были).
    2. Простимся с std::auto_ptr (надеюсь, никто и не пользовался).
    3. Незаслуженно забудем std::random_shuffle.
    4. Узнаем, что теперь нельзя делать перфиксный и постфиксный инкременты для типа bool (да, раньше можно было).
    5. Больше не будем использовать спецификацию исключений.
    17 января, 20:00 — 21:30
    Вглубь реализации умных указателей.
    Подводные камни и оптимизации.
    21 января, 20:00 — 21:30
    Идея аллокаторов.
    Стандартный аллокатор и его недостатки. Различные методы управлением памятью: достоинства и недостатки.
    24 января, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-03. allocator
    1. Выполнить задание описанное в 03.homework.pdf
    2. На acm.timus.ru выполнить 1409, 1877, 2001, 1264, 1787
    Что это и зачем? Как выглядит в C++: макросы и шаблонная магия. Примеры. Type traits в STL. SFINAE
    28 января, 20:00 — 21:30
    Архитектура
    Принципы проектирования ПО
    UML. Принципы: SoC, DRY, YAGNI, KISS, TDA, LoD, SOLID
    31 января, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-04.doxygen
    1. Выполнить задание описанное в 04.homework.pdf
    2. Решить первые 15 задач на acm.timus.ru (от простых к сложным)
    3. Предоставить РЕВЬЮ ДЗ-02 от двух коллег (которые его выполнили)
    4. Опционально: предоставить примеры, из своей практики, использования Принципов Проектирования
    GRASP.
    Рассмотрим: Indirection, Low Coupling, Polymorphism, Protected Variations.

    Дополним всё это безобразие: Creator, Controller, Pure Fabrication, Information Expert, High Cohesion
    4 февраля, 20:00 — 21:30
    Шаблоны GoF. Часть 1.
    Порождающие шаблоны проектирования.
    7 февраля, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-05. Editor.
    1. Выполнить задание описанное в 05.homework.pdf
    2. Должно быть решено 20-ть простых задач на acm.timus.ru
    3. Предоставить РЕВЬЮ ДЗ-03 от двух ревьюеров.
    4.Опционально: Предоставить ревью на РЕВЬЮ ДЗ-02.
    Шаблоны GoF. Часть 2.
    Структурные шаблоны проектирования.
    11 февраля, 20:00 — 21:30
    Шаблоны GoF. Часть 3.
    Поведенческие шаблоны проектирования. 1 часть
    14 февраля, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-06. Matrix.
    1. Выполнить задание описанное в 06.homework.pdf
    2. Решить 25-ть простых задач на acm.timus.ru
    3. Предоставить ревью ДЗ-04 от двух ревьюеров.
    4. Предоставить оценку своего ревью ДЗ-02 от двух других коллег (не ревьюверов)
    Шаблоны GoF. Часть 4.
    Поведенческие шаблоны проектирования. 2 часть
    18 февраля, 20:00 — 21:30
    STL. Часть 1.
    Структуры данных STL
    21 февраля, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-07. cmd
    1. Выполнить задание описанное в 07.homework.pdf
    2. Решить 30-ть простых задач на acm.timus.ru
    3. Предоставить ревью ДЗ-05 от двух ревьюеров.
    4. Предоставить оценку своего ревью ДЗ-03 от двух других коллег (не ревьюеров)
    STL. Часть 2
    Алгоритмы
    25 февраля, 20:00 — 21:30
    Домашние задания: 1
    1 ДЗ-08. timus
    1. Выполнить задание описанное в 08.homework.pdf
    2. Опционально. Решить 35-ть простых задач на acm.timus.ru
    3. Предоставить ревью ДЗ-06 от двух ревьюеров.
    4. Предоставить оценку своего ревью ДЗ-04 от двух других коллег (не ревьюеров)
    Boost. Часть 1
    Контейнеры
    28 февраля, 20:00 — 21:30
    Boost. Часть 2
    Алгоритмы
    4 марта, 20:00 — 21:30
    Домашние задания: 1
    1 Boost Concept Check Library
    1. Выполнить задание описанное в 09.homework.pdf
    2. Опционально. Решить 40 простых задач на acm.timus.ru
    3. Предоставить ревью ДЗ-07 от двух ревьюеров.
    4. Предоставить оценку своего ревью ДЗ-05 от двух других коллег (не ревьюеров)
    Параллельные вычисления
    Многопоточность
    Потоки. Критические секции и методы синхронизации: мьютексы, семафор, условные переменные, барьеры. Пулы потоков.
    7 марта, 20:00 — 21:30
    Домашние задания: 1
    1 Многопоточная обработка команд
    1. Выполнить задание описанное в 10.homework.pdf
    2. Опционально. Решить 45 простых задач на acm.timus.ru
    3. Опционально. Предоставить ревью ДЗ-09 от двух ревьюеров.
    4. Опционально. Предоставить оценку своего ревью ДЗ-06 от двух других коллег (не ревьюеров)
    Шаблоны 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.
    11 марта, 20:00 — 21:30
    Асинхронное программирование
    Архитектура асинхронных сервисов. Низкоуровневая поддержка асинхронного выполнения кода.
    14 марта, 20:00 — 21:30
    Домашние задания: 1
    1 Асинхронная обработка команд
    1. Выполнить задание описанное в 11.homework.pdf
    2. Опционально. Решить 10 любых задач на acm.timus.ru с уровнем сложности не менее 100.
    3. Опционально. Предоставить ревью ДЗ-10 от двух ревьюеров.
    4. Опционально. Предоставить оценку своего ревью ДЗ-07 от двух других коллег (не ревьюеров)
    Атомарные типы данных
    std::atomic, модель памяти с поддержкой многопоточности
    18 марта, 20:00 — 21:30
    Lockfree DS
    Неблокирующие структуры данных и алгоритмы. BOOST Lockfree
    21 марта, 20:00 — 21:30
    Сеть
    Сетевое взаимодействие
    Сокеты. Протоколы: TCP и UDP. Сериализация. HTTP. Json. Zmq. Protobuf.
    25 марта, 20:00 — 21:30
    Домашние задания: 1
    1 Асинхронная сетевая обработка команд
    1. Выполнить задание описанное в 12.homework.pdf
    2. Опционально. Решить 5 любых задач на acm.timus.ru с уровнем сложности не менее 200.
    3. Опционально. Предоставить ревью ДЗ-11 от двух ревьюеров.
    4. Опционально. Предоставить оценку своего ревью ДЗ-08 от двух других коллег (не ревьюеров)
    Асинхронный ввод/вывод
    Библиотеки и практики работы с неблокирующей передачей данных
    28 марта, 20:00 — 21:30
    Хранилища
    РСУБД
    Использование РСУБД. Подключение и работа с БД
    1 апреля, 20:00 — 21:30
    Домашние задания: 1
    1 outer join
    1. Выполнить задание описанное в 13.homework.pdf
    2. Опционально. Решить 2 любых задач на acm.timus.ru с уровнем сложности не менее 300.
    3. Опционально. Предоставить ревью ДЗ-12 от двух ревьюеров.
    Key Value
    Идея NoSQL. Aerospike, redis, leveldb
    4 апреля, 20:00 — 21:30
    Много данных
    Map reduce
    8 апреля, 20:00 — 21:30
    Домашние задания: 1
    1 mapreduce
    1. Выполнить задание описанное в 14.homework.pdf
    2. Опционально. Решить 2 любых задач на acm.timus.ru с уровнем сложности не менее 600.
    3. Выложить свою реализацию на ревью.
    4. Опционально. Предоставить два своих ревью на ДЗ-13.
    ORM
    ООП при работе с базами данных. Паттерны DAO и Repository
    11 апреля, 20:00 — 21:30
    ML
    Dlib. Часть 1.
    Кластеризация, тематическое моделирование.
    15 апреля, 20:00 — 21:30
    Домашние задания: 1
    1 Кластеризация
    1. Выполнить задание описанное в 15.homework.pdf
    2. Опционально. Решить 1 любую задачу на acm.timus.ru с уровнем сложности не менее 1000.
    3. Выложить свою реализацию на ревью.
    4. Опционально. Предоставить два своих ревью на ДЗ-14.
    Dlib. Часть 2.
    Регрессия
    18 апреля, 20:00 — 21:30
    Dlib. Часть 3.
    Классификация
    22 апреля, 20:00 — 21:30
    Домашние задания: 1
    1 Недвижимость
    1. Выполнить задание описанное в 16.homework.pdf
    2. Выложить свою реализацию на ревью.
    3. Да и хватит на этом. Пора приступать к проекту.
    Проектная работа
    Заключительная часть курса о программировании на С++ посвящена проектной работе.
    Мало что доставляет столько же удовольствия, как самостоятельно реализованный проект на выбранную самостоятельно тему на основе знаний, полученных на курсе.
    В процессе написания (и даже в процессе выбора темы) можно получить консультации преподавателей.

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

    Не обязательно придерживаться указанному плану.
    Выпускной проект
    Заключительная часть курса о программировании на С++ посвящена проектной работе.
    Мало что доставляет столько же удовольствия, как самостоятельно реализованный проект на выбранную самостоятельно тему на основе знаний, полученных на курсе.
    В процессе написания (и даже в процессе выбора темы) можно получить консультации преподавателей.

    При удачном стечении обстоятельств (в основном, при наличии должного усердия со стороны студента) проект станет достойным примером кода, который можно будет показывать потенциальным работодателям в качестве портфолио. Таким образом обучение программированию завершится большой практической работой, и вы будете гордиться тем, что сделали своими руками.
    Подглядеть
    Cтранно рекурсивный шаблон
    Дмитрий Шебордаев
    С++: Диаграммы UML
    Области видимости и невидимости
    Сергей Кольцов
    GSL - когда guidelines не только умный текст
    Сергей Кольцов
    Больше материалов
    Видеоматериалы по теме
    День открытых дверей
    18 декабря в 20:00
    День открытых дверей
    20 сентября в 20:00
    День открытых дверей
    18 июня в 20:00
    После обучения вы

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

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

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

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

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

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

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