8 812 320 13 03
  • Новости
  • Расписание
  • Курсы
  • Организациям
  • Контакты
  • Перезвоните мне

    Курс программирования на C++. Уровень 2

    Курс Основы программирования на C++. Уровень 2

    Курс Основы программирования на C++. Уровень 2
    Начало курса
    24.06.2023
    Продолжительность
    3 месяца (48 ак. часов)
    Расписание
    Сб 11:00 - 14:00
    Онлайн
    (13 мест)
    Единовременно 19500 записаться
    В рассрочку / мес7400 записаться

    Описание курса

    Курс "Основы программирование на языке C++. Уровень 2" является продолжением курса Основы программирование на языке C++. Уровень 1  и охватывает большую часть практических аспектов языка C++, необходимых начинающему разработчику.

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


    Курсовой проект:

    Начиная примерно с середины курса участники будут работать над курсовыми проектами, сдача которых является обязательным условием для получения сертификата.

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


    Возможные темы проектов: 
    • Мини игра в стиле «Pacman» — графическая библиотека (OpenGl, WinAPI, Borland...).
    • Детектор движения в видео потоке — библиотека работы с видео потоком (Gstreamer…)
    • Плеер — библиотека работы со звуком (vlc, alsa…)
    • База данных — библиотека работы с базами данных (sqlite…)
    • Шифрователь — библитеки шифрования (openssh…)
    • Умный дом — библиотеки работы с контроллерами (stm…)
    • Бот для игры

    Требования к участникам:

    • Опыт программирования на языке C (Си)
    • Знание основ написания тестов
    • Понимание процесса review кода
    • Опыт работы с системами контроля версий

    Пример того, как проходит занятие:



    Программа

    развернуть

    Занятие 1. ООП в С++

    • Понятие ООП
    • Понятие класса
    • Спецификаторы доступа
    • Конструкторы, деструкторы
    • Move семантика
    • Ссылки
    • Практика:
      • Написание программы выводящей информацию о том, какие конструкторы когда вызываются
      • Разбор всех видом конструирования объектов на примерах
    развернуть

    Занятие 2. Методы класса

    • Методы класса
    • Операторы класса
    • Друзья
    • Псевдонимы
    • Шаблоны
    • Практика:
      • Реализация вектора
    развернуть

    Занятие 3. Ссылки. Конструкторы

    • Универсальные ссылки
    • Наследование
    • Виртуальные функции
    • Интерфейсы
    • Наследование конструкторов
    • Практика:
      • Уход от зависимостей от реализации, на зависимости от интерфейсов
    развернуть

    Занятие 4. Динамическое выделение памяти. Умные указатели

    • Динамическое выделение памяти
    • Умные указатели
    • Методы работы с умными указателями
    • Практика:
      • Реализация фабрики
    развернуть

    Занятие 5. Функциональные объекты. Лямбда-выражения. Стандартные алгоритмы

    • constexpt
    • Функциональные объекты
    • Лямбда выражения
    • Стандартные алгоритмы
      • std::find…
      • std::copy…
      • std::sort
      • std::binary_search..
      • std::equal
    • Практика:
      • Задачи на уменьшение асимптотической сложности при помощи сортировки и поиска
    развернуть

    Занятие 6. Стандартные контейнеры

    • Стандартные контейнеры
      • std::vector
      • std::list
      • std::forward_list
      • std::array
      • std::deque
      • std::set
      • std::map
      • std::multiset
      • std::multimap
      • std::unordered_set
      • std::unordered_map
      • std::unordered_multiset
      • std::unordered_multimap
      • std::stack
      • std::queue
      • std::priority_queue
    • Стандартные итераторы
    • Практика:
      • Задачи на уменьшение асимптотической сложности при помощи стандаартных контейнеров
    развернуть

    Занятие 7. Контрольная работа

    • Контрольная работа
    развернуть

    Занятие 8. Исключения

    • Исключения
    • Безопасность исключений
    • Пространства имен
    • Практика: 
      • Разбор примеров генерации исключений в самых неожиданных местах
      • Примеры реализации функций не генерирующих исключения
    развернуть

    Занятие 9. Потоки

    • Потоки
    • Примитивы синхронизации
    • Атомарные переменные
    • Future/promise
    • Практика: 
      • Реализация задачи нахождения БПФ с использованием параллельного программирования
      • Реализация очереди сообщений
    развернуть

    Занятие 10. Работа с файлами

    • Работа с файлами
    • Работа с файловой системой
    • Строки
    • Потоки строк
    • Практика:
      • Работа с файлами настроек
      • Реализация простейшей БД хранящей данные в текстовом формате
    развернуть

    Занятие 11. Шаблоны

    • Идиомы и паттерны проектирования
    • Распространенные идиомы
    • Практика:
      • Реализация COW строки
      • Реализация идиомы Pimpl
    развернуть

    Занятие 12. Курсовой проект

    • Сдача курсового проекта
    • Подведение итогов
    • Куда двигаться дальше?
    Сертификат после обучения
    По окончании обучения вы получите сертификат. Нас знают и ценят работодатели, поэтому сертификат станет вашим дополнительным преимуществом при трудоустройстве в IT-компанию. 


    Сертификат о прохождении курса мы отправим вам на почту. Вы легко сможете добавить ссылку на сертификат в резюме и подтвердить свой уровень подготовки.

    Преподаватели

    Евгений

    Senior С++ Developer в компании Zodiac Interactive

    Закончил БГТУ «Военмех» по специальности «Информатика и вычислительная техника».

    «Опыт разработки на С++ более 7-ми лет. За это время усвоил одну простую истину - C++ это
    универсальный язык. Хотите написать игру - берите С++. Хотите написать сервер - 
    берите С++. Хочется графический интерфейс - возьмите С++ и прилепите на него бантик. Хотите кошку, которая будет смотреть на мир через сложную систему зеркал? Ну Вы поняли...

    На курсе будет сложно, мы по шагам будем идти к цели, и надеюсь, что в результате большинство участников курса устроятся на работу и будут развиваться, как разработчики.
    Мы пройдем все от «А что такое программирование?» до «Что то мне лень писать программу, напишу программу, что бы она написала программу за меня» - говорит Евгений.

    Михаил

    C++ Developer в компании 2GIS.

    Закончил мех-мат ЮФУ по специальности "Прикладная математика и информатика".

    Опыт разработки более 7-ми лет. За это время попробовал не мало различных технологий и языков программирования, но большую часть времени занимался разработкой на С++ и всем, что с ним связано.
    В данный момент Михаил работает программистом в компании Яндекс. В решении задач использует как С++, так и Python.

    "Начинающему разработчику на С++ обычно не хватает терпения, сталкиваясь с различными трудностями в понимании механизмов языка. В наши дни почти у всех есть возможность для поиска информации по любому вопросу, но не всегда эта информация может быть достоверной или простой для понимания. В изучении языков программирования важно уметь эту информацию "фильтровать" и правильно использовать. От себя могу посоветовать одно - пробуйте все то, что вам интересно и ничего не бойтесь, даже если в самом начале пути будет получаться не так много, как хотелось бы!" - говорит Михаил.

    Фото с очных занятий в СПб

    Курсы программирования, тестирования, мобильных и веб-технологий от Level UP!
    Учитесь с профессионалами в сфере IT-образования!