Чему вы научитесь
- Проектировать программы в парадигме ООП, а не просто писать набор функций
- Грамотно работать с class / struct, понимать, почему и когда использовать каждый из них
- Реализовывать собственные контейнеры данных (аналог std::vector, LinkedList)
- Писать безопасный код без утечек памяти, используя RAII и санитайзеры
- Понимать и применять Rule of Three, конструкторы, деструкторы и copy semantics
- Перегружать операторы так, как это делают в реальных библиотеках
- Использовать шаблонные классы, auto, decltype
- Работать с наследованием, полиморфизмом и абстрактными классами
- Читать и понимать чужой C++ код уровня junior+/middle
О курсе
ООП — это та самая точка, где большинство начинающих теряются.
Код начинает «разваливаться», появляются утечки, странные баги, copy-паст, а объяснения в книгах и документации кажутся абстрактными.
Этот курс создан, чтобы раз и навсегда закрыть ООП в C++ — на практике, с нуля, без магии и недосказанностей.
Мы не будем «рассказывать определения». Мы будем писать классы, ломать их, чинить и понимать, почему так правильно.
Почему вам стоит пройти именно этот курс
Я, Михаил Марков:
-
практикующий C++ разработчик
-
преподаватель с 5+ годами опыта
-
экс-преподаватель «Нетологии» по курсу «Разработчик на C++»
-
выпускник МГТУ им. Баумана
-
студент магистратуры МФТИ
Я знаю:
-
какие ошибки делают 90% студентов
-
что требуют преподаватели на экзаменах
-
какой C++ ждут на junior-позициях
Этот курс — результат реального преподавательского и инженерного опыта, а не пересказ книг. Но, кроме того, в курсе Вы узнаете много советов из замечательной книги для профессионалов ««Эффективное использование C++: 42 верных способа улучшить структуру и код ваших программ», С. Майерс [2012] (Effective Modern C++, S. Meyers)»
Цель курса
Главная цель курса — научить вас мыслить объектно-ориентированно в C++ и писать код, который:
-
корректно управляет памятью
-
легко расширяется
-
не ломается при копировании
-
понятен другим разработчикам
Это фундамент, без которого невозможно:
-
уверенно изучать STL
-
понимать современные C++ библиотеки
-
писать промышленный код
Программа курса
В курсе подробно разбираются:
-
Что такое ООП и три его основных принципа
-
structиclass: различия, применение, best practices -
Методы, возврат объектов, вложенные структуры
-
Инкапсуляция:
public,private,protected -
Конструкторы и деструкторы
-
Rule of Three,
this, copy ctor,operator= -
Санитайзеры и поиск утечек (
-fsanitize) -
Реализация собственного
Vector -
Реализация собственного
String -
Реализация
LinkedList -
constиnoexceptу методов -
staticметоды и поля -
RAII — идиома
-
Списки инициализации
-
Шаблонные классы,
auto,decltype -
Перегрузка:
-
арифметических операторов
-
операторов сравнения
-
логических и битовых операторов
-
[],(), инкременты
-
-
friend, перегрузкаstd::cout/std::cin -
Наследование и его виды
-
Множественное наследование и diamond problem
-
Полиморфизм и виртуальные функции
-
Абстрактные классы и чисто виртуальные методы
Для кого этот курс
Начальные требования
Вы должны знать, что такое
- циклы
- массивы и матрицы
- функции и рекурсия
- указатели и ссылки
- работа с файлами
- исключения
Наши преподаватели
Как проходит обучение
Формат обучения максимально практический:
-
Короткая лекция по теории (15–30 минут)
-
Подробный семинар с live-кодингом
-
Самостоятельное решение задач
-
Разбор сложных и типичных ошибок
-
Постепенное усложнение проектов
80% курса — это практика. Вы не просто смотрите — вы пишете, ошибаетесь и учитесь.
Программа курса
Что вы получаете
- Реальные самописные классы в портфолио
- Четкое понимание: конструкторов / деструкторов, copy / assignment, RAII, полиморфизма
- Навык самостоятельной реализации структур данных
- Уверенность при чтении чужого C++ кода
- Сертификат о прохождении курса
- Базу для: STL, продвинутого C++, вузовских курсов по ООП