Разработчик C++: кто это, обязанности, зарплаты и как им стать в 2024 году. Обзор профессии.

Обучение
Содержание

Кто такой разработчик C++?

Разработчик C++ (программист Си Плюс Плюс) — это разработчик программного обеспечения, который специализируется на языке программирования C++.

Что делают разработчики C++ и чем занимаются?

Обязанности на примере одной из вакансий:

  • разработка высокопроизводительного кода C++ для обработки данных
  • планирование разработки, участие в пуско-наладке и отладке

Что должен знать и уметь разработчик C++? 

Требования к разработчикам C++:

  • Разработка приложений на C++
  • Кроссплатформенная разработка
  • Работа с библиотекой STL
  • Отладка и мониторинг приложений
  • Работа с SQL
  • Работа с многопоточностью
  • Написание кода для Unreal Engine 4
  • Создание микросервисов
  • Работа с git, gcc, gdb
  • Создание REST API
  • Работа с документацией

Востребованность и зарплаты разработчиков C++

На сайте поиска работы в данный момент открыто 4 994 вакансии, с каждым месяцем спрос на разработчиков C++ растет.

Количество вакансий с указанной зарплатой разработчика C++ по всей России:

  • от 90 000 руб. – 1 349
  • от 175 000 руб. – 771
  • от 260 000 руб. – 353
  • от 350 000 руб. – 153
  • от 435 000 руб. – 80

Вакансий с указанным уровнем дохода по Москве:

  • от 120 000 руб. – 493
  • от 225 000 руб. – 221
  • от 330 000 руб. – 91
  • от 440 000 руб. – 46
  • от 545 000 руб. – 30

Вакансий с указанным уровнем дохода по Санкт-Петербургу:

  • от 90 000 руб. – 264
  • от 165 000 руб. – 155
  • от 240 000 руб. – 74
  • от 315 000 руб. – 35
  • от 390 000 руб. – 13

Как стать разработчиком C++ и где учиться?

Варианты обучения для разработчика C++ с нуля:

  • Самостоятельное обучение – всевозможные видео на YouTube, книги, форумы, самоучители и т.д. Плюсы – дешево или очень недорого. Минусы – нет системности, самостоятельное обучение может оказаться неэффективным, полученные навыки могут оказаться невостребованными у работодателя;
  • Классическое оффлайн-образование в ВУЗах, колледжах и университетах. Диплом является преимуществом при устройстве на работу, при этом обучение обычно длится не менее четырех лет, часто дают устаревшие неактуальные знания;
  • Онлайн-обучение. Пройти курс можно на одной из образовательных платформ. Такие курсы рассчитаны на людей без особой подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику – это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.

Ниже сделали обзор 15+ лучших онлайн-курсов.

15+ лучших курсов для обучения разработчика C++: подробный обзор

Стоимость: Рассрочка на 28 мес. от 5 245 ₽/месяц.

Программисты на C++ создают сложные программы и сервисы. Они разрабатывают высоконагруженные сетевые приложения, игры, графические движки, компоненты для операционных систем и железа. На этом языке написаны Windows, Linux и macOS, Android, Chrome, Counter-Strike, StarCraft и Diablo.

Вы освоите легендарный язык программирования с нуля: напишете поисковой движок, собственный Booking.com и получите навыки работы в команде.

  • 2 проекта в портфолио
  • Поддержка наставника
  • Помощь в трудоустройстве
  • Онлайн-уроки в удобное время

Разработчики на C++ работают в крупных IT-компаниях, геймдеве, веб-разработке, создают корпоративные и банковские приложения, проектируют операционные системы и софт для роботов.

  • 4 018 компаний

сейчас ищут разработчиков на С++

  • 120 000 рублей

средняя зарплата junior-специалиста

 

Кому подойдёт этот курс

  • Тем, кто хочет стать программистом

Изучите основные принципы программирования на языке C++. Напишете свои первые программы, соберёте портфолио и сможете начать карьеру в понравившемся направлении.

  • Разработчикам на других языках

Познакомитесь с синтаксисом C++ и выучите востребованный язык. Напишете микросервис, сделаете игру для UE4 и сможете претендовать на позицию middle-разработчика в геймдеве или IT-компании.

 

Что вам даст этот курс

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

 

Чему вы научитесь

  1. Программировать на C++

Изучите синтаксис, циклы, условия и функции языка. Узнаете, как превратить строки кода в работающие программы.

  1. Работать с базами данных

Изучите язык SQL и сможете быстро получать информацию с помощью запросов к базам данных.

  1. Использовать Git

Научитесь работать с распределённой системой контроля версий и сможете вносить изменения в проект вместе с командой.

  1. Понимать принципы ООП

Познакомитесь с парадигмой объектно-ориентированного программирования и научитесь работать с объектами и классами.

  1. Разрабатывать микросервисы

Узнаете, как создавать алгоритмы, и сможете разрабатывать сложные программы из разных независимых компонентов.

  1. Создавать игры для UE4

Научитесь применять инструментарий C++ для разработки игр. Сможете создавать простые арканоиды и шутеры для движка Unreal Engine.

 

Акция!

Всем студентам курса на время обучения мы даём бесплатный доступ к специализированной IDE (среде разработки) от компании JetBrains — CLion. Умная кросс-платформенная IDE для C и C++.

 

Помогаем построить карьеру мечты

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

За 2021 год мы трудоустроили более 1000 студентов на работу по новой профессии

 

Программа

Вас ждут онлайн-лекции и практические задания на основе реальных кейсов.

  • 95 тематических модулей
  • 450 онлайн-уроков

Базовые навыки

  1. C++
    1. Вводный модуль. Первая программа.
    2. Целочисленные переменные. Данные и вычисления.
    3. Ввод данных пользователя. Строки.
    4. Конструкция условия if.
    5. Логические операторы и сложные условия.
    6. Введение в циклы: while, do while.
    7. Циклы for и алгоритмы на циклах.
    8. Числа с плавающей запятой. Математические вычисления.
    9. Строки и текстовые данные. Базовые алгоритмы со строками.
    10. Установка и настройка IDE.
    11. Функции в программировании.
    12. Массивы.
    13. Знакомство с std::vector v2.
    14. Двумерные массивы.
    15. Алгоритмы на массивах.
    16. Типы данных.
    17. Указатели.
    18. Расширенная работа с функциями.
    19. Чтение из файлов.
    20. Запись в файлы.
    21. Структуры данных.
    22. Словари std::map.
    23. Макросы и препроцессор.
    24. Работа с датами.
    25. Структура проекта.
    26. Введение в ООП. Часть 1.
    27. Введение в ООП. Часть 2.
    28. Введение в многопоточность.
  2. Система контроля версий Git
    1. Версии программного кода.
    2. Установка Git.
    3. Индекс и частичные коммиты.
    4. Сравнение версий.
    5. Отмена изменений и откат версий.
    6. Репозитории и коллективная работа.
    7. Ветки — создание и управление.
    8. Слияние и разрешение конфликтов.
    9. Полезные инструменты.
    10. Правила работы с Git.
  3. Язык запросов SQL
    1. Введение.  
    2. Структура БД, запрос DESCRIBE.  
    3. Выбор и фильтрация данных, запрос SELECT.
    4. Функции и выражения, агрегация данных.
    5. Отношения и соединение таблиц: JOIN.
    6. Группировка.
    7. Модификация данных.
    8. Подзапросы.
    9. Объявление и изменение структуры данных.
  4. Универсальные знания программиста
    1. Как стать первоклассным программистом.
    2. Как искать заказы на разработку.
    3. Личный бренд разработчика.
    4. Photoshop для программиста.
    5. Вёрстка email-рассылок. Советы на реальных примерах.
    6. The state of soft skills.
    7. Как мы создавали карту развития для разработчиков.
    8. Как эффективно работать с почтой.
    9. Повышение своей эффективности.
    10. Спор о первом языке программирования.
    11. Саморазвитие.
    12. Data-driven-подход к продуктивности — инсайты из данных миллиона людей.

Продвинутый уровень

  1. ООП и работа с сетью
    1. Парадигмы ООП.
    2. Выполнение запросов по сети с помощью libcurl.
    3. Дополнительные возможности классов.
    4. Сериализация и десериализация JSON.
    5. Использование исключений.
    6. Знакомство с REST API.
    7. Отладка приложений.
    8. Создание своего REST API с помощью Pistache.
    9. Введение в юнит-тестирование на примере gtest.
    10. Логирование в приложениях на примере spdlog.
    11. Бинарный формат сериализации protobuf.
    12. Мониторинг приложений.
    13. Использование баз данных.
    14. Паттерны проектирования.
    15. Введение в CI/CD.
    16. Введение в шаблоны C++.
    17. Использование регулярных выражений.
    18. Расширенные возможности многопоточности.
    19. Работа с умными указателями.
    20. Введение в очереди сообщений.
    21. Введение в библиотеку boost.
    22. Безопасность приложений.
    23. Новые возможности C++.

Программирование игр на C++ для Unreal Engine

  1. Делаем простой арканоид на Blueprints
    1. Создание проекта, интерфейс редактора, базовые операции.
    2. Базовые классы, настройки проекта, структура проекта и движка.
    3. Как использовать Git при работе в одиночку.
    4. Первый блюпринт, компоненты.
    5. Переменные, функции, управление потоком в Blueprints.
    6. Actor, взаимодействие между Actor.
    7. Отладка, тестирование Blueprints.
    8. Наследование, массивы.
    9. События скриптов (Construction Script, Spawn, Event Dispatcher).
    10. Сборка на Blueprints.
  2. Усложняем задачу: пишем арканоид на С++
    1. Инструменты C++.
    2. Базовый синтаксис C++ и принципы ООП на примере «Змейки».
    3. «Змейка»: переписываем классы с помощью STL.
    4. Создание проекта, создание базовых классов на C++, настройка проекта.
    5. Правила создания классов и объектов, заголовки и макросы.
    6. Переписываем Arkanoid на С++.
    7. Отладка и тестирование.
    8. Сборка.
  3. Делаем шутер с видом сверху (TDS)
    1. Создание проекта, настройка проекта, настройка базовой сцены.
    2. Разбор диздока, разработка архитектуры проекта и настройка базовых классов под определенный жанр.
    3. Работа с камерой.
    4. ООП в UE4: Как строить архитектуру фичи на базе фреймворка UE4.
  4. Создаём окружение
    1. Типы ассетов.
    2. Импорт различных типов ассетов, правила наименования, структура проекта.
    3. Статичные модели (Static Mesh).
    4. Модели со скелетной анимацией (Skeletal Mesh).
    5. Анимация моделей с помощью инструментов Animation Blueprint, State Machine, Blending.
    6. Создание ландшафтов с помощью Landscape.
  5. Разбираемся с основными классами и методами
    1. Система событий.
    2. Базовый класс Pawn.
    3. Механизм процедурных разрушений (Destructable Mesh).
    4. Взаимодействие между Actor.
    5. Контроллер (Controller).
    6. Навигационные данные (Navmesh) и навигация.
    7. Получение управления классом Pawn (Possess), создание новых Actor (Spawn).
    8. Ссылка на функцию (Delegates).

Дипломные проекты

  1. Поисковый движок

Разработаете поисковый движок для корпоративного портала компании — аналог поисковой строки Яндекса или Google. Научитесь получать данные с веб-страниц и строить поисковые индексы. Напишете формулу релевантности для выдачи результатов поиска.

  1. Сервис бронирования отелей

Придумаете архитектуру сервиса бронирования отелей — аналог Booking.com. Вы напишете микросервисы для: управления информацией об отелях и свободных номерах, поиска номеров по заданным параметрам, запросов бронирования и подтверждения брони, управления рейтингом отелей, начисления персональных баллов, индивидуальных настроек пользователя. После разработки отдельных компонентов вы объедините их в рабочее приложение.

 

Ваше резюме после обучения

  • Должность Разработчик на С++
  • Зарплата от: 120 000 ₽

Профессиональные навыки:

  • Разработка приложений на C++
  • Кроссплатформенная разработка
  • Работа с библиотекой STL
  • Отладка и мониторинг приложений
  • Работа с SQL
  • Работа с многопоточностью
  • Написание кода для Unreal Engine 4
  • Создание микросервисов
  • Работа с git, gcc, gdb
  • Создание REST API
  • Работа с документацией

 

Диплом Skillbox

Подтвердит, что вы прошли курс, и станет дополнительным аргументом при устройстве на работу.

Стоимость: Рассрочка на 36 месяцев — от 3 589 ₽ / мес

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

Длительность — 18 месяцев с учетом праздников/перерывов

Гарантия – Трудоустройство после обучения

Результат — 9 проектов в портфолио

Формат обучения — Онлайн, 2 вебинара в неделю

 

Разработчик C++ создаёт программы, приложения, игры, операционные системы, драйверы и другое высоконагруженное программное обеспечение. Если вы хотите выжать максимум из любого «железа», программировать роботов, создать свою ОС, язык или другую мощную и жадную до ресурсов штуку — вам понадобится язык программирования С++.

Как вы найдёте работу с помощью GeekBrains

Проконсультируем

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

Вместе оформим резюме

HR-менеджер GeekBrains изучит ваше резюме и даст советы, как его улучшить. Мы расскажем, как выделиться среди других кандидатов.

Найдем вакансии

Менеджер по трудоустройству соберет самые перспективные вакансии, чтобы вы не тратили время на поиск.

Поможем пройти отбор

Расскажем, как вести себя на собеседовании, и как проявить себя. А потом поздравим с оффером 🙂

Гарантия трудоустройства закреплена в договоре. Если после успешного обучения вы не найдёте работу, мы вернём вам деньги.

 

Программа обучения

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

210 часов обучающего контента

220 часов практики

2 вебинара в неделю

 

Подготовка

Курсы

  • Как учиться эффективно. Видеокурс от методистов GeekUniversity
  • Базовый курс
  • Основы баз данных
  • Основы С. Интерактивный курс
  • Как найти первую работу

 

 

I четверть

Введение в C++. Фундаментальные знания

Начнёте осваивать технические основы профессии. Узнаете базовые понятия Git и языков C/C++, получите навыки работы с операционной системой Linux, алгоритмами и структурами данных императивного программирования.

Курсы

Введение в C++. Фундаментальные знания

Начнёте осваивать технические основы профессии. Узнаете базовые понятия Git и языков C/C++, получите навыки работы с операционной системой Linux, алгоритмами и структурами данных императивного программирования.

4 месяца

Основы C++

Вы познакомитесь с основами программирования, ключевыми инструментами и понятиями. Узнаете, что такое компиляция, сборка проекта, переменные, функции, циклы и массивы.

1 месяц — 8 уроков

Рабочая станция Linux

Изучите основы работы в Linux. Научитесь управлять пользователями и правами файлов, писать скрипты в Bash, работать с процессами и управлять загрузкой и сервисами.

1 месяц — 8 уроков

Алгоритмы и структуры данных

Разберётесь в основных структурах данных и базовых алгоритмах. Получите общее понимание процессов внутри программы и освоите базовые навыки выстраивания работы алгоритмов.

1 месяц — 17 уроков

Итоги четверти

Разработаете игру в крестики-нолики в процедурном стиле.

 

II четверть

Применение C++.Понимание окружения

Познакомитесь с инструментарием разработчика, не всегда напрямую связанным с программированием. Рассмотрите принципы ООП, сложные моменты программирования на C/C++, работу с сетями и базами данных.

Курсы

Применение C++. Понимание окружения

Познакомитесь с инструментарием разработчика, не всегда напрямую связанным с программированием. Рассмотрите принципы ООП, сложные моменты программирования на C/C++, работу с сетями и базами данных.

3 месяца

ООП на примере C++

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

1 месяц — 8 уроков

Компьютерные сети

Разберётесь, как функционируют стек протоколов TCP/IP, клиент-серверная архитектура и протоколы прикладного уровня. Научитесь создавать приложения, устойчивые к взлому.

1 месяц — 8 уроков

Сложные моменты C++ 

Изучите продвинутые возможности С++ и стандартной библиотеки (STL). Научитесь писать эффективный и понятный код.

1 месяц — 8 уроков

Итоги четверти

Вы создадите игру в блек-джек с применением ООП.

 

III четверть

С++ в контексте.
Оптимизация и тонкости

Научитесь использовать язык программирования C++ эффективно, узнаете об основных паттернах проектирования и создании графических интерфейсов. Вы объедините все полученные знания о языке и начнёте использовать их в комплексе. Это позволит создавать более сложные и технологичные приложения.

Курсы

С++ в контексте. Оптимизация и тонкости

Научитесь использовать язык программирования C++ эффективно, узнаете об основных паттернах проектирования и создании графических интерфейсов. Вы объедините все полученные знания о языке и начнёте использовать их в комплексе. Это позволит создавать более сложные и технологичные приложения.

4 месяца

Паттерны проектирования GoF

Паттерны проектирования GoFИзучите основные паттерны объектно-ориентированного проектирования. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учётом ограничений, возникающих при разработке.

1 месяц — 8 уроков

Сетевое программирование на С++

Познакомитесь с сетевыми технологиями. Разберётесь в сокетном взаимодействии, работе серверных протоколов прикладного уровня. Научитесь понимать принципы работы сетевых приложений от простейших сетевых сервисов до REST и Telegram-ботов.

1 месяц — 8 уроков

Разработка программ с графическим интерфейсом Qt

Вы узнаете, как перестать выводить результаты работы в консоль и вместо этого нативно рисовать интерфейс. Научитесь работать с сигналами и слотами, подключать основные модули Qt, работать с Qt Designer.

1 месяц — 8 уроков

Итоги четверти

 

Создадите:

  • HTTP-сервер, способный обрабатывать клиентские подключения и базовые запросы.
  • Базовый сетевой сканер.
  • Файловый менеджер с автоматическим монтированием внешних накопителей.
  • Игру SBomber.

 

IV четверть

Современные технологии, где применяется C++

Погрузитесь в практическое программирование и научитесь создавать современные приложения с использованием С++, которые можно добавить в портфолио. Приобретёте навык командной работы над проектом.

Курсы

Мобильная разработка на С++/Qt Quick

Познакомитесь с технологией, компонентами и алгоритмами работы Qt Quick, научитесь создавать мобильные приложения для ОС Android с использованием языка C++.

1 месяц — 8 уроков

Основы работы с Unreal Engine

Познакомитесь с движком Unreal Engine 4 и напишете на нём небольшую игру.

1 месяц — 8 уроков

Командная разработка

Разработаете open-source текстовый редактор типа Emacs на C++ с плагинами. Вы получите навыки командной работы, работы с Git и taskTracker, а также познакомитесь с методологиями Agile-разработки, Scrum и Kanban.

1 месяц — 12 уроков

Итоги четверти

 

Создадите:

  • Высокорегулируемый текстовый редактор с возможностью применения скриптов.
  • Мобильный список задач, который позволяет создавать, хранить и синхронизировать списки дел или покупок.
  • Игру в тетрис (или Arkanoid) на движке Unreal Engine 4.

 

Законное индивидуальное предпринимательство и фриланс

Факультатив подготовлен российским диджитал-банком для предпринимателей «Точка».

Курсы

  • Законодательные тонкости при работе с валютой
  • Регистрация и налоги
  • Работа с площадками Google, Upwork, AppStore

 

Ваше резюме после обучения

Мои навыки:

  • Навыки программирования на C/ C++
    • Знание алгоритмов и структур данных, в том числе STL
    • Сетевое программирование
    • Основы разработки графического интерфейса во фреймворке Qt
    • Работа с системой контроля версий Git
    • Управление компиляцией
    • Навыки использования шаблонов проектирования
    • Владение игровым движком Unreal Engine 4
    • Базовые навыки командной работы

 

Мы проводим обучение на основании государственной лицензии № 040485. Вы получите диплом о профессиональной переподготовке и электронный сертификат, которые можно добавить в портфолио и показать работодателю.

Стоимость: Рассрочка на 36 месяцев — от 2 597 руб. / мес

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

 

Краткая программа профессии

1-ый блок

2 месяца

Основные конструкции C++

  • Переменные, типы данных
  • Порядок выполнения кода в программе. Ветвления, циклы
  • Массивы. Строки. Указатели и ссылки
  • Функции ООП
  • Исключения
  • Управление памятью C/C++
  • Шаблоны

В результате вы:

Научитесь использовать основные возможности языка. Решите свыше 20 практических заданий для закрепления материала.

2-ой блок

2 месяца

Алгоритмы и структуры данных

  • Оценка времени работы алгоритмов
  • Алгоритмы сортировки
  • Элементарные структуры данных
  • Введение в алгоритмы поиска
  • Сбалансированные деревья поиска
  • Хеширование
  • STL

 

Программа:

В результате вы:

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

 

3-ий блок

1 месяц

Основы Linux на примере Ubuntu

  • Работа с файлами и директориями в терминале
  • Работа с пользователями и правами доступа
  • Устройство компьютера, базовые принципы работы. Компиляция программы


4-ый блок

1 месяц

Параллельное программирование

  • Что такое параллелизм
  • Потоки и процессы
  • Управление потоками
  • Асинхронная работа с сетью
  • Пулы потоков, прерывание потоков

 

5-ый блок

1,5 месяца

Работа с базами данных

  • Введение в реляционные базы данных
  • Проектирование баз данных на примере PostgreSQL
  • Язык запросов SQL
  • Работа с базами данных в C++
  • Обзор NoSql

В результате вы:

Научитесь проектировать базы данных, освоите язык запросов SQL, и научитесь взаимодействовать с БД из C++. А также познакомитесь NoSQL базами данных, и научитесь их использовать в проектах на C++

 

6-ой блок

2 недели

Тестирование

  • Unit-тестирование
  • TDD (Gtest, Gmock)

В результате вы:

Научитесь писать надёжный код и покрывать его тестами.

 

7-ой блок

2 недели

Современные стандарты C++

  • Что нового в C++ 11 (Умные указатели)
  • Что нового в C++ 14 (Лямбда-выражения)
  • Новшества C++ 17
  • Все что нужно знать про C++ 20

В результате вы:

Будете знать ключевые изменения, привнесённые в стандарты С++ 11, 14, 17, 20

 

8-ой блок

2 недели

Desktop-разработка на Qt

  • Введение в Qt
  • Создание UI для проекта

В результате вы:

Cоздадите интерфейс для итогового проекта

 

Ваше резюме после обучения

Я уверенно могу:

— Решать задачи любой сложности с помощью С++
— Знать основные возможности и стандарты языка C++
— Писать высокопроизводительный код
— Писать надежный код и покрывать его тестами
— Знаю и использую концепцию TDD
— Проектировать и взаимодействовать с базами данных (SQL, noSQL)

Разработчик С++. Углубленный уровень

Что даст вам этот курс

  • Умение писать на С++ правильно.
  • Понимание современных проблем языка и специфики его применения.
  • Освоение паттернов проектирования, принципов написания многопоточного кода.
  • Знание, как взаимодействовать с сетью, хранить и обрабатывать большие объемы данных.
  • Владение нюансами программирования на С++, которые отличают разработчика уровня Middle от Junior.

 

Отзывы на сайте.

Необходимые знания

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

1. Синтаксис языка программирования стандарта C++03:
— Переменные, функции, указатели
— Классы, структуры, union
— Переопределение операторов
— Наследование
— Исключения
— Понимание шаблонов в языке C++

2. Основы computer science:
— Простые алгоритмы и их оценки сложности
— Структуры данных и их применение
— Принципы работы с памятью — стек, heap

3. Основы SQL – некоторые уроки посвящены изучению работы с базами данных.

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

 

Подготовительный курс

  • Курс по разработке на C++ для начинающих программистов
  • Занятия в формате видео и проверочные тесты
  • Все необходимые знания и навыки для курса «Разработчик С++»

 

Программа обучения

В процессе обучения вы получите комплексные знания и навыки.

Модуль 1. Современный C++

Тема 1. Система сборки: build, test and deploy.

Тема 2. Особенности C++11. auto, lambda, tuple

Тема 3. Особенности C++11. Move, variadic templates

Тема 4. Сравнение C++11/C++14 с С++ 03

Тема 5. Реализация умных указателей

Тема 6. Идея аллокаторов

Тема 7. Шаблонная магия

Тема 8. Обзор C++17. Constexpr lambda. Fold expression. Attributes. Type deduction

Тема 9. Обзор C++17. If constexpr. Structured bindings. Statements with initializer. std::filesystem

Тема 10. C++20 — что это и зачем?

 

Модуль 2. Архитектура

Тема 11. Принципы проектирования ПО

Тема 12. GRASP

Тема 13. Шаблоны GoF. Порождающие

Тема 14. Шаблоны GoF. Структурные

Тема 15. Шаблоны GoF. Поведенческие. Command, Interpreter, Iterator, Mediator, Memento, Chain of responsibilily

Тема 16. Шаблоны GoF. Поведенческие. Observer, State, Strategy, Template method, Visitor

Тема 17. STL. Контейнеры

Тема 18. STL. Алгоритмы

Тема 19. Бонус. Красно-чёрные деревья

Тема 20. Boost. Разное

Тема 21. Boost. Паттерны проектирования

Тема 22. Бонус. Хэш-функции и хэш-таблицы

 

Модуль 3. Параллельные вычисления

Тема 23. Многопоточность

Тема 24. Шаблоны 5

Тема 25. Асинхронное программирование

Тема 26. Lockfree DS

Тема 27. Атомарные типы данных

 

Модуль 4. Сеть

Тема 28. Сетевое взаимодействие

Тема 29. Асинхронный ввод/вывод

 

Модуль 5. Хранилища

Тема 30. РСУБД

Тема 31. Key Value

Тема 32. Много данных

Тема 33. ORM

 

Модуль 6. ML

Тема 34. Dlib. Кластеризация и классификация

Тема 35. Dlib. Регрессия

 

Модуль 7. Проектная работа

Тема 36. Выбор темы и организация проектной работы

Тема 37. Консультация по проектам и домашним заданиям

Тема 38. Защита проектных работ

Тема 39. Подведение итогов курса

 

После обучения вы

  • заберете с собой материалы по всем занятиям (презентации, записи вебинаров, примеры практических задач);
  • получите сертификат о прохождении курса программирования на С++;
  • научитесь прикладному применению стандартов C++11 / C++14 / C++17;
  • освоите асинхронное и многопоточное программирование;
  • получите глубокое представление о шаблонной магии и паттернах проектирования;
  • получите приглашение пройти собеседование в компаниях-партнерах Otus (в случае успешного обучения на курсе).
Стоимость: нет информации

О курсе

Курс дает знания процедурного программирования на языках C/C++, которые послужат фундаментом для дальнейшего изучения самых востребованных сегодня языков программирования: Python, Java, C#, JavaScript, PHP, так как эти языки являются «Си-подобными». А также для дальнейшего изучения языка C++, который уже много лет является главным языком системного программирования. Язык C++ ­­– это самый низкоуровневый язык из всех универсальных и самый универсальный из всех низкоуровневых. Автор полагает, что именно его и нужно изучать для знакомства с программированием как таковым, независимо от того, в какой области вы будете заниматься программированием в своей профессиональной жизни.

Программа курса

  1. Устройство компьютера: процессор, память, устройства ввода-вывода.
  2. Создание проекта в MS Visual Studio. Программа Hello World. Установка среды Cygwin компиляция программы компилятором GCC.
  3. Структура программы на языке C. Инструкции и выражения. Переменные: типы данных; объявление, инициализация, присваивание. Функции: объявление, определение, вызов. Области видимости: локальные и глобальные переменные.
  4. Ввод-вывод данных. Функции printf, scanf, gets, getchar. Задача: консольный калькулятор. 
  5. Ветвления (if-else). Циклы (while, do-while, for). Задачи: факториал, наибольший общий делитель, простые числа, числа Фибоначчи, алгоритм Евклида.
  6. Массивы (одномерные и многомерные) и указатели. Указательная арифметика. Строки. Преобразования типов. Задачи: сортировка массива (метод вставки, метод пузырька, быстрая сортировка), поиск подстроки, дамп памяти.
  7. Структуры. Ссылки. Передача параметров по значению и по ссылке. Задачи: векторы и матрицы в виде структур и операции над ними.
  8. Динамическое выделение памяти (функции malloc и free). Работа с файлами (функции fopen, fclose, fwrite, fread, fseek). Задачи: чтение и запись текстового файла.

Результаты обучения

Получение знаний процедурного программирования на языках С/С++

Разработчик C++ участвует в создании сложных современных IT-продуктов: от беспилотных автомобилей и робототехники до веб-браузеров, микроконтроллеров, серверов и видеоигр. Вы изучите важнейшие инструменты программирования на C++, а также освоите необходимые в бэкенд-разработке базы данных и Git. В процессе обучения создадите несколько действующих сервисов.

 

Программа обучения

1

Основы C++. Бесплатный вводный курс

30 часов

Вы познакомитесь с основными возможностями языка С++ и самостоятельно напишете на нём более 25 программ. По итогам этого модуля вы создадите на С++ собственную поисковую систему.

+ 1 проект в портфолио

2

Основные компоненты C++

120 часов

Вы освоите ряд понятий, важных для полноценной разработки на C++. Итераторы помогут применять всё многообразие стандартных алгоритмов, конструкторы сделают создание объектов удобным и гибким, а шаблоны функций позволят сделать код более универсальным.

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

+ 1 проект в портфолио

3

Эффективность кода

120 часов

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

Писать производительные программы во многом помогают стандартные алгоритмы и контейнеры. Вы познакомитесь с внутренним устройством некоторых контейнеров и напишете первую версию собственного вектора. Заглянув под капот, вы лучше поймёте, как настроить элементы языка на более эффективную работу.

Избежать лишних копирований позволяет move-семантика. А многопоточные программы при грамотном проектировании выжмут максимум из всех ядер процессора.

+ 1 проект в портфолио

4

Элегантность и масштабируемость

120 часов

Некоторые инструменты языка формально не нужны. Без них можно обойтись, но они делают код опрятным и защищают его от человеческих ошибок. Так, пространства имён разделяют сущности языка на смысловые блоки с общим именем. Константность и RAII подсказывают разработчику, как лучше использовать конкретный объект, метод или класс.

Вы освоите приёмы, которые помогут будущим поколениям понять, «что хотел сказать автор», и избавят программу от проблем роста.

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

+ 1 проект в портфолио

5

Разработка библиотек и больших проектов

120 часов

Вы изучите темы, важные для разработки больших программ и даже отдельных библиотек. Основы сериализации объектов и библиотека protobuf помогут вашим программам обмениваться данными, а плотная упаковка сэкономит ценную память. Понимание концепции undefined behaviour и умение его обнаружения позволит избежать сложных ошибок.

Вы напишете полноценный вектор, попутно познакомитесь с variadic templates — шаблонами с переменным числом аргументов — и гарантиями безопасности исключений.

+ 1 проект в портфолио

6

Дипломный проект

50 часов

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

+ 1 проект в портфолио

Стоимость: бесплатно
  • C++ закрывается консоль. Что делать? Задержка экрана консоли. Урок #21.
  • Escape — последовательности. Как использовать. C++ для начинающих. Урок #3.
  • If else. Конструкция логического выбора if. Лесенка if — else if. Примеры использования. Урок #12.
  • Калькулятор. Меню. Домашнее задание. С++ #3.
  • Что это. Пример. Синтаксис. Оператор множественного выбора. Урок #13.
  • Visual studio 2017. Как создать проект. Изучение c++ с нуля. Первая программа. C++ #1.1
  • Visual studio где exe. Как сделать exe файл в visual studio. Как скомпилировать cpp в exe. Урок #20.
  • Visual studio. Как создать проект. Первая программа. C++ для начинающих. Урок #1.
  • Без этого вы не станете программистом! Найти ошибку в коде. Отладка. Как пользоваться отладчиком #23
  • Ввод данных. Cin. Пример. Синтаксис. C++ для начинающих. Урок #7.
  • Где скачать Visual studio бесплатно. Visual studio установка. C++ для начинающих. Урок #0.
  • Домашнее задание. C++. Сумма, произведение, среднее арифметическое чисел.
  • Инкремент и декремент. Постфиксный и префиксный. Пример. Синтаксис. C++ для начинающих. Урок #9.
  • Ключевое слово break. Оператор break. Описание. Пример. Синтаксис. Урок #18.
  • Ключевое слово continue c++ что это. Оператор continue. Пример. Синтаксис. Урок #19.
  • Константы. Ключевое слово const. C++ для начинающих. Урок #6.
  • Логические операции. Операторы сравнения, равенства, объединения, инверсия. C++ Урок #11.
  • Напишите программу, проверяющую число, введенное с клавиатуры на четность. Домашнее задание. C++ #2.
  • Оператор перехода goto. Когда код становится непонятен даже создателю. Урок #22.
  • Операторы. Арифметические операции с числами. C++ для начинающих. Урок #8.
  • Переменные. Способы объявления. Правила именования. C++ для начинающих. Урок #5.
  • Работа с циклами. Примеры. Цикл Do while. Домашнее задание #5
  • Работа с циклами. Примеры. Цикл while. Домашнее задание #4
  • Сокращенные арифметические формы +=, -= и т д. C++ для начинающих. Урок #10.
  • Структура и порядок выполнения программы. #Include. using namespace. C++ для начинающих. Урок #2.
  • Типы данных в C++. C++ для начинающих. Урок #4.
  • Цикл for. Фишки. Фичи. Особенности. Несколько переменных. Урок #17.
  • Цикл for. Что это. Что делает. Пример. Синтаксис. Циклы. Урок #16.
  • Циклы. Цикл do while. Что это. Что делает. Пример. Синтаксис. Урок #15.
  • Циклы. Цикл while. Что это. Что делает. Пример. Синтаксис. Урок #14.
Стоимость: бесплатно

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

 

Мы постарались подобрать тесты и задачи на программирование, которые помогут проверить понимание изложенного материала. К сожалению, мы сможем проверять только работоспособность присланных нам решений — мы не сможем провести code review всех решений и дать комментарии относительно стиля кодирования. Однако, мы можем обсудить наиболее популярные ошибки: как фактические, приводящие к неработоспособности программы, так и стилистические, ошибки, которые ухудшают читабельность кода и усложняют его поддержку.

 

Для кого этот курс

Студенты младших курсов

Курс рассчитан на студентов, владеющих синтаксисом хотя бы одного из «стандартных» структурных языков программирования (C, Pascal, Java, Fortran, и т.п.). Это значит, что мы предполагаем, что слушатели нашего курса уже знакомы с такими базовыми понятиями, как «переменная», «функция», «условный оператор» и «цикл». На первой лекции рассказывается о базовых синтаксических конструкциях, но в дальнейшем этому уделяется мало внимания.

 

Программа курса

Введение в язык C++

  1. Обзор
  2. История языка C++
  3. Характеристики языка C++
  4. Зачем нужен компилятор?
  5. Структура кода на C++
  6. Как компилируется программа на C++
  7. Введение в синтаксис C++, часть 1
  8. Введение в синтаксис C++, часть 2

Как выполняются программы на C++

  1. Как выполняются программы на C++
  2. Стек вызовов
  3. Указатели и массивы
  4. Использование указателей
  5. Ссылки
  6. Динамическая память
  7. Многомерные массивы
  8. Строки и ввод-вывод

Структуры и классы

  1. Структуры
  2. Методы
  3. Конструкторы и деструкторы
  4. Объекты и классы
  5. Модификаторы доступа
  6. Константность
  7. Конструктор копирования и оператор присваивания
  8. Класс массива

Объектно-ориентированное программирование

  1. Наследование
  2. Перегрузка
  3. Виртуальные методы
  4. Таблица виртуальных методов
  5. Объектно-ориентированное программирование
  6. Особенности наследования в C++

Дополнительные возможности C++

  1. Перегрузка операторов
  2. Правила переопределения операторов
  3. Умные указатели
  4. Ключевые слова static и inline
  5. Ключевое слово friend
  6. Шаблон проектирования Singleton

Шаблоны

  1. Шаблоны классов
  2. Шаблоны функций
  3. Специализация шаблонов
  4. Ещё о шаблонах

Заключительный модуль

  1. Заключительный урок
Стоимость: бесплатно

Язык C++ (произносится как «Си плюс плюс») был разработан Бьёрном Страуструпом в подразделении Bell Labs компании AT&T в качестве дополнения к языку Cи. С++ добавил множество новых возможностей в язык Си. Его популярность была вызвана объектно-ориентированностью языка. Сейчас C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. С его помощью создают операционные системы, разнообразные прикладные программы, драйверы устройств, игры и пр.

Среди самого популярного программного обеспечения, написанного на C++ (или с его использованием), находятся СУБД MySQL, интернет-браузер Mozilla Firefox, большая часть программного обеспечения от Microsoft: операционные системы семейства Windows, IDE Visual Studio, Internet Explorer, Microsoft Office. Adobe Photoshop, Adobe Illustrator и Adobe Premiere Pro целиком написаны на C++. Также данный язык лежит в основе игрового движка Unity.

Глава №0. Введение. Начало работы

№1. Введение в программирование

№2. Введение в языки программирования C и С++

№3. Введение в разработку программного обеспечения

№4. Установка IDE (Интегрированной Среды Разработки)

№5. Компиляция вашей первой программы

№6. Режимы конфигурации «Debug» и «Release»

№7. Решения самых распространенных проблем

Глава №1. Основы C++

№8. Структура программ

№9. Комментарии

№10. Переменные, Инициализация и Присваивание

№11. cout, cin и endl

№12. Функции и оператор возврата return

№13. Параметры и аргументы функций

№14. Почему функции — полезны, и как их эффективно использовать?

№15. Локальная область видимости

№16. Ключевые слова и идентификаторы

№17. Операторы

№18. Базовое форматирование кода

№19. Прототип функции и Предварительное объявление

№20. Многофайловые программы

№21. Заголовочные файлы

№22. Директивы препроцессора

№23. Header guards и #pragma once

№24. Конфликт имен и std namespace

№25. Разработка ваших первых программ

№26. Отладка программ: степпинг и точки останова

№27. Отладка программ: стек вызовов и отслеживание переменных

Глава №1. Итоговый тест

 

Глава №2. Переменные и основные типы данных в C++

№28. Инициализация, присваивание и объявление переменных

№29. Тип данных void

№30. Размер типов данных

№31. Целочисленные типы данных: short, int и long

№32. Фиксированный размер целочисленных типов данных

№33. Типы данных с плавающей точкой: float, double и long double

№34. Логический тип данных bool

№35. Символьный тип данных char

№36. Литералы и магические числа

№37. const, constexpr и символьные константы

Глава №2. Итоговый тест

Глава №3. Операторы в C++

№38. Приоритет операций и правила ассоциативности

№39. Арифметические операторы

№40. Инкремент, декремент и побочные эффекты

№41. Условный тернарный оператор, оператор sizeof и Запятая

№42. Операторы сравнения

№43. Логические операторы: И, ИЛИ, НЕ

№44. Конвертация чисел из двоичной системы в десятичную и наоборот

№45. Побитовые операторы

№46. Битовые флаги и битовые маски

Глава №3. Итоговый тест

 

Глава №4. Область видимости и другие типы переменных в C++

№47. Блоки стейтментов (составные операторы)

№48. Локальные переменные, область видимости и продолжительность жизни

№49. Глобальные переменные

№50. Почему глобальные переменные – зло?

№51. Статические переменные

№52. Связи, область видимости и продолжительность жизни

№53. Пространства имен

№54. using-стейтменты

№55. Неявное преобразование типов данных

№56. Явное преобразование типов данных

№57. Введение в std::string

№58. Перечисления

№59. Классы enum

№60. Псевдонимы типов: typedef и type alias

№61. Структуры

№62. Вывод типов: ключевое слово auto

Глава №4. Итоговый тест

Глава №5. Порядок выполнения кода в программе. Циклы, ветвления в C++

№63. Операторы управления потоком выполнения программ

№64. Операторы условного ветвления if/else

№65. Оператор switch

№66. Оператор goto

№67. Цикл while

№68. Цикл do while

№69. Цикл for

№70. Операторы break и continue

№71. Генерация случайных чисел

№72. Обработка некорректного пользовательского ввода

№73. Введение в тестирование кода

Глава №5. Итоговый тест

Глава №6. Массивы, Строки, Указатели и Ссылки в C++

№74. Массивы

№75. Фиксированные массивы

№76. Массивы и циклы

№77. Сортировка массивов методом выбора

№78. Многомерные массивы

№79. Строки C-style

№80. Указатели

№81. Нулевые указатели

№82. Указатели и массивы

№83. Адресная арифметика и индексация массивов

№84. Символьные константы строк C-style

№85. Динамическое выделение памяти

№86. Динамические массивы

№87. Указатели и const

№88. Ссылки

№89. Ссылки и const

№90. Оператор доступа к членам через указатель

№91. Цикл foreach

№92. Указатели типа void

№93. Указатели на указатели

№94. Введение в std::array

№95. Введение в std::vector

Глава №6. Итоговый тест

Глава №7. Функции в C++

№96. Параметры и аргументы функций

№97. Передача по значению

№98. Передача по ссылке

№99. Передача по адресу

№100. Возврат значений по ссылке, по адресу и по значению

№101. Встроенные функции

№102. Перегрузка функций

№103. Параметры по умолчанию

№104. Указатели на функции

№105. Стек и Куча

№106. Ёмкость вектора

№107. Рекурсия и Числа Фибоначчи

№108. Обработка ошибок, cerr и exit()

№109. assert и static_assert

№110. Аргументы командной строки

№111. Эллипсис

Глава №7. Итоговый тест

Глава №8. Основы ООП в C++

№112. Введение в ООП

№113. Классы, Объекты и Методы

№114. Спецификаторы доступа public и private

№115. Инкапсуляция, Геттеры и Сеттеры

№116. Конструкторы

№117. Список инициализации членов класса

№118. Инициализация нестатических членов класса

№119. Делегирующие конструкторы

№120. Деструкторы

№121. Скрытый указатель *this

№122. Классы и заголовочные файлы

№123. Классы и const

№124. Статические переменные-члены класса

№125. Статические методы класса

№126. Дружественные функции и классы

№127. Анонимные объекты

№128. Вложенные типы данных в классах

№129. Измерение времени выполнения (тайминг) кода

Глава №8. Итоговый тест

Стоимость: бесплатно
  • Уроки C++ с нуля / #1 — Основы
  • #2 — Первая программа на С++
  • #3 — Переменные и создание калькулятора
  • #4 — Условия и логические операции
  • #5 — Генератор чисел и работа со строками
  • #6 — Циклы For, While, Do while
  • #7 — Исключения и отлов ошибок
  • #8 — Массивы данных. Одномерные и многомерные
  • #9 — Указатели и ссылки
  • #10 — Динамический массив
  • #11 — Символы и строки
  • #12 — Структуры данных
  • #13 — Перечисления (Enum)
  • #14 — Работа с файлами
  • #15 — Функции в C++
  • #16 — Перегрузка функций
  • #17 — Математические операции
  • #18 — (Введение в ООП) Классы и объекты
  • #19 — Конструкторы и деструкторы
  • #20 — Дружественные функции
  • #21 — Дружественные классы
  • #22 — Указатель this
  • #23 — Наследование классов (ООП)
  • #24 — Шаблоны функций (template)
  • #25 — Шаблоны классов в С++
  • #26 — Заключительный урок
Стоимость: бесплатно

После бесплатной регистрации Вам будут доступны другие уроки и курсы данного автора:

  • Escape — последовательности. Как использовать. C++ для начинающих. Урок #3.
  • Типы данных в C++. C++ для начинающих. Урок #4.
  • Переменные. Способы объявления. Правила именования. C++ для начинающих. Урок #5.
  • Константы. Ключевое слово const. C++ для начинающих. Урок #6.
  • Ввод данных. Cin. Пример. Синтаксис. C++ для начинающих. Урок #7.
  • Операторы. Арифметические операции с числами. C++ для начинающих. Урок #8.
  • Домашнее задание. C++. Сумма, произведение, среднее арифметическое чисел.
  • Инкремент и декремент. Постфиксный и префиксный. Пример. Синтаксис. C++ для начинающих. Урок #9.
  • Сокращенные арифметические формы +=, -= и т д. C++ для начинающих. Урок #10.
  • Логические операции. Операторы сравнения, равенства, объединения, инверсия. C++ Урок #11.
  • If else. Конструкция логического выбора if. Лесенка if — else if. Примеры использования. Урок #12.
  • Напишите программу, проверяющую число, введенное с клавиатуры на четность. Домашнее задание. C++ #2.
  • Что это. Пример. Синтаксис. Оператор множественного выбора. Урок #13.
  • Калькулятор. Меню. Домашнее задание. С++ #3.
  • Циклы. Цикл while. Что это. Что делает. Пример. Синтаксис. Урок #14.
  • Циклы. Цикл do while. Что это. Что делает. Пример. Синтаксис. Урок #15.
  • Работа с циклами. Примеры. Цикл while. Домашнее задание #4
  • Работа с циклами. Примеры. Цикл Do while. Домашнее задание #5
  • Цикл for. Что это. Что делает. Пример. Синтаксис. Циклы. Урок #16.
  • Цикл for. Фишки. Фичи. Особенности. Несколько переменных. Урок #17.
  • Ключевое слово break. Оператор break. Описание. Пример. Синтаксис. Урок #18.
  • Ключевое слово continue c++ что это. Оператор continue. Пример. Синтаксис. Урок #19.
  • Visual studio где Как сделать exe файл в visual studio. Как скомпилировать cpp в exe. Урок #20.
  • C++ закрывается консоль. Что делать? Задержка экрана консоли. Урок #21.
  • Оператор перехода goto. Когда код становится непонятен даже создателю. Урок #22.
  • Без этого вы не станете программистом! Найти ошибку в коде. Отладка. Как пользоваться отладчиком #23
  • Что такое вложенный цикл. Вложенная конструкция. C++ для начинающих. Урок #24.
  • Вложенная конструкция. Вложенный цикл. Домашнее задание #6
  • Что такое массив. Примеры. Теория. Array. Одномерный массив. Синтаксис. C++. Урок #25.
  • Инициализация массива. Способы. Инициализация массива нулями. C++ для начинающих. Урок #26.
  • Вывод массива. Массивы и циклы. Цикл с массивом. Array c++. C++ для начинающих. Урок #27.
  • sizeof что это. sizeof c++ массив. Узнать количество элементов массива. sizeof array. Урок #28.
  • srand. rand задать диапазон. srand time null. Генератора случайных чисел. randomize. Урок #29.
  • Заполнить массив случайными числами. Генератор уникальных случайных чисел. rand. srand ДЗ #7
  • Найти минимальный элемент массива. Поиск минимального элемента в массиве. C++ для начинающих. ДЗ#8.
  • Двумерный массив что это. Многомерные массивы. Пример. Теория. Что такое массив. Array. C++ #30
  • Двумерный массив инициализация. Двумерный массив индексы. Синтаксис. Пример. Урок #31
  • Двумерные массивы вывод. Заполнение. Двумерный массив циклы. C++ для начинающих. #32
  • Функции c++ примеры. Синтаксис. Объявление, реализация функции. Параметры, аргументы. C++ #33
  • Передача параметров в функцию по значению. Параметры функции. Передача аргументов в функцию. #34
  • Передача массива в функцию. Как передать массив в функцию. C++ для начинающих. Урок #35.
  • Прототипы функций. Прототип функции что это. Прототип функции пример. C++ для начинающих. Урок #36
  • Область видимости. Глобальные переменные и локальные переменные. C++ для начинающих. Урок #37
  • Параметры по умолчанию. Передача аргументов в функцию по умолчанию. Аргументы по умолчанию. Урок #38
  • inline c++ что это. Ключевое слово inline. Встраиваемая функция. C++ для начинающих. Урок #39
  • Перегрузка функций c++ пример.Что такое перегрузка функций. Как перегрузить функцию. Урок #40
  • Шаблоны функций. Шаблонные функции c++. template typename. template class. Урок #41
  • Функции и стек. Стек алгоритм. Стек что это. Стек рекурсии. Стек c++. Стек рекурсивных вызовов #42
  • Рекурсия что это. Рекурсия программирование. Рекурсия и цикл. Рекурсия с++. Для начинающих. Урок #43
  • Рекурсия. Факториал числа c++ рекурсивно. Рекурсия факториал. Рекурсивный алгоритм факториал. #44
  • Что такое динамическая память. Утечка памяти. Стек и куча. Статическая память. Обзорный урок #45
  • Указатели c++ что это. Для чего нужны. Указатели c++ разыменование. C++ для начинающих. Урок #46
  • Арифметика указателей. Указатели и массивы. Массив это указатель. C++ для начинающих. Урок #47
  • Передача параметров в функцию по указателю c++. Передача указателя в функцию си. Урок #48
  • Возврат нескольких значений функции через указатели. Функция возвращает несколько значений. #49
  • Напишите функцию, меняющую местами значения переменных с помощью указателей. С++ для начинающих ДЗ#9
  • c++ ссылки что это. c++ ссылки и указатели разница. Указатель на ссылку. Для начинающих. Урок #50
  • Передача параметров в функцию по ссылке. Разница между ссылкой и указателем. Урок #51
  • Возврат нескольких значений функции через ссылки. Как вернуть несколько значений функции. Урок #52
  • Шаблонная функция. Меняет местами значения переменных с помощью ссылок. c++ для начинающих. Дз#10
  • new c++ что это. new c++ пример. c++ new delete. delete c++ что это. delete c++ пример. Урок #53
  • Что такое null pointer. null c++ что это. nullptr c++ что это. nullptr c++11. Урок #54
  • Динамический массив с++ пример. Создание, заполнение, удаление, размер динамического массива. #55
  • Двумерный динамический массив c++ пример. Создание, заполнение, удаление. Динамические массивы. #56
  • Константные аргументы функции. Константный указатель. Константные параметры. Для начинающих Урок #57
  • Копирование динамического массива c++. Скопировать массив с++. С++ Для начинающих. Урок #58
  • Изменить размер массива. Удалить. Добавить элемент в массив. Увеличение массива. с++ Урок #59
  • Строки в с++. Нуль терминатор. Что такое строка в с++. char c++ массив. С++ Для начинающих. Урок #60
  • Приведение типов в стиле с. Явное и неявное преобразование типов. Преобразование типов. С++ Урок #61
  • Что такое ascii символы. ascii что это такое? Таблица ascii c++. C ++ Для начинающих. Урок #62
  • Указатели символьные строки и функции. Строки и указатели в c++. C ++ Для начинающих. Урок #63
  • strlen c++ реализация. Посчитать количество символов в строке c++ ДЗ#11
  • Конкатенация строк что это. Объединение строк.Тип данных string c++ что это. Урок #64
  • Указатель на функцию в качестве параметра. Передача функции в качестве параметра. С++ Урок #65
  • Препроцессор что это. Директива #define. Макросы. Директивы препроцессора что это. C ++ Урок #66
  • c++ макрос функция. Макросы с аргументами. Макрос с параметрами. C ++ Для начинающих. Урок #67
  • Условная компиляция. #ifdef #else #endif #if #elif #endif #ifndef что это. C ++ Урок #68
  • Условный тернарный оператор что это. Как работает. Как использовать. C ++ Для начинающих. Урок #69
  • argc argv c++ что это. Параметры функции main argc argv. Аргументы main. C ++ Урок #70
  • int main или void main. int main vs void main c++. C ++ Для начинающих. Урок #71
  • Что такое ООП простыми словами. Объектно ориентированное программирование это. Урок #72
  • Что такое класс. Что такое объект класса. Экземпляр класса это. Класс ООП это. Урок #73
  • Методы класса. Что такое методы в программировании. Вызов метода класса. Функции. C++ Урок #74
  • Модификаторы доступа классов. public private protected что это. Спецификаторы доступа. C++ Урок #75
  • Что такое геттеры и сеттеры для класса. Методы get и set. Инкапсуляция это. Пример. C++ Урок #76
  • Инкапсуляция ООП пример. private методы. Что такое инкапсуляция. C++ Для начинающих. Урок#77
  • Конструктор класса пример. Зачем нужен. Конструктор с параметрами. Конструктор по умолчанию. Урок#78
  • Перегрузка конструкторов класса. Что такое перегрузка. Как перегрузить конструктор. Урок#79
  • Деструктор что это. Зачем нужен деструктор класса в ООП. Деструктор с параметрами. Перегрузка. #80
  • Ключевое слово this в ООП. Что означает. Что это такое. Для чего нужен this указатель C++ #81
  • Конструктор копирования. Что это. Пример. Когда вызывается Копирование объектов по умолчанию C++ #82
  • Перегрузка операторов пример. ООП. Перегрузка оператора присваивания. C++ Для начинающих. Урок#83
  • Перегрузка оператора равенства == и не равно !=. Перегрузка логических операторов сравнения. C++ #84
  • (Стрим) Основы c++ для начинающих. Свой класс string. Стрим. #SimpleCode. Часть 1.
  • Перегрузка оператора сложения. Перегрузка операторов пример.C++ Для начинающих. Урок#85
  • Перегрузка инкремента и декремента. Постфиксного и префиксного. ООП перегрузка операторов. C++ #86
  • Перегрузка оператора индексирования . Перегрузка операторов пример. C++ Для начинающих. Урок#87
  • Дружественные функции и классы пример. Для чего используются. Как определяются. Для двух классов #88
  • Определение методов вне класса. Вынести функцию в из класса. Вынести описание метода вне класса. #89
  • Дружественный метод класса. ООП. friend c++ что это. Функции друзья. C++ Для начинающих. Урок#90
  • Основы c++ для начинающих. Свой класс string. Часть 2. Запись стрима. #SimpleCode
  • Дружественные классы. ООП. friend class. friend c++ что это. C++ Для начинающих. Урок #91
  • static что это. Статические поля класса. Инициализация. Ключевое слово static. C++ #92
  • id generator. Генератор уникальных идентификаторов с использованием static переменной Начинающим #93
  • Статические методы класса зачем нужны. Модификатор static. Как влияет. ООП. Для начинающих. Урок #94
  • Вложенные классы с++ пример. Внутренние классы. Зачем нужны. inner class. ООП. Для начинающих #95
  • Массив объектов класса. Динамический. Статический. Создание Особенности. ООП C++ Для начинающих #96
  • Что такое агрегация и композиция. Отношения между классами и объектами. ООП. C++ Для начинающих #97
  • Наследование в ООП пример. Что такое наследование. Для чего нужно наследование классов. ООП. C++ #98
  • Модификаторы доступа при наследовании. private public protected Спецификаторы доступа. ООП. C++ #99
  • Порядок вызова конструкторов при наследовании. Как вызываются конструкторы. ООП C++ Начинающим #100
  • Порядок вызова деструкторов при наследовании. Деструкторы. ООП C++ Для начинающих. Урок #101
  • Вызов конструктора базового класса из конструктора класса-наследника. Наследование. ООП C++ #102
  • Секрет начинающим программистам. Можно ли самому самостоятельно выучить программирование.
  • Виртуальные методы класса c++. Ключевое слово virtual. Ключевое слово override. ООП. C++ #103
  • Абстрактный класс с++ пример. Чисто виртуальная функция. virtual. override. Полиморфизм ООП C++ #104
  • Виртуальный деструктор класса C++. Что это такое. Наследование. Полиморфизм. Для начинающих #105
  • Чисто виртуальный деструктор c++. Наследование. Полиморфизм. virtual. override. Для начинающих #106
  • Делегирующие конструкторы c++. Вызов конструктора из конструктора. ООП. С++ Для начинающих. #107
  • c++ вызов виртуального метода базового класса. ООП. Изучение с++ с нуля. Для начинающих. Урок #108
  • Множественное наследование c++ пример. ООП. Изучение С++ с нуля для начинающих. Урок #109
  • Порядок вызова конструкторов при множественном наследовании. ООП. С++ начинающих. Урок #110
  • Порядок вызова деструкторов при множественном наследовании. ООП. С++ начинающих. Урок #111
  • Три типа ошибок программирования в любом языке. Типичные ошибки программистов.
  • С++ множественное наследование одинаковые методы. ООП. Изучение С++ для начинающих. Урок #112
  • Что такое интерфейс в ООП. Интерфейс c++ пример. Изучение С++ для начинающих. Урок #113
  • Виртуальное наследование c++. Ромбовидное наследование c++. Изучение С++ для начинающих. Урок #114
  • Стоит ли учить ассемблер новичку. #SimpleCode
  • Работа с файлами с++. Запись в файл. c++ ofstream. Изучение С++ для начинающих. Урок #115
  • Работа с файлами с++. Чтение из файла с++ ifstream. Изучение С++ для начинающих. Урок #116
  • Запись ОБЪЕКТА КЛАССА в файл с++. Чтение объекта из файла c++ Для начинающих. Урок #117
  • Чтение и запись в файл с++ используя класс fstream c++. Изучение С++ для начинающих. Урок #118
  • Потоковый ввод вывод в файл c++. Перегрузка операторов. Изучение С++ для начинающих. Урок #119
  • С++ try catch. Обработка исключений С++. try catch что это. Изучение С++ для начинающих. Урок #120
  • Не могу написать программу! Что делать! Как начать писать код!
  • Генерация исключений с++ пример. throw c++ пример. Изучение С++ для начинающих. Урок #121
  • Несколько блоков catch. Обработка исключений С++. Изучение С++ для начинающих. Урок #122
  • Свой класс exception c++. Создание собственного класса исключений. С++ для начинающих. Урок #123
  • Перечисляемый тип enum С++. Изучение С++ для начинающих. Урок #124
  • Пространства имен с++. namespace c++ что это. Изучение С++ для начинающих. Урок #125
  • Какой язык программирования учить в 2018 году
  • Шаблоны классов с++ примеры. Обобщенные классы. Изучение С++ для начинающих. Урок #126
  • Наследование шаблонных классов. Изучение С++ для начинающих. Урок #127
  • Специализация шаблона класса. Изучение С++ для начинающих. Урок #128
  • Структуры в C++ | struct C++. Разница между структурой и классом. Изучение С++ для начинающих.#129
  • Умные указатели. Smart pointers. Изучение С++ для начинающих. Урок #130
  • auto_ptr | unique_ptr | shared_ptr | Умные указатели. Изучение С++ для начинающих. Урок #131
  • Динамический массив и умные указатели. Изучение С++ для начинающих. Урок #132
  • Реализация односвязного списка c++ Часть 1 | Урок #133
  • Реализация односвязного списка c++ Часть 2 | Урок #134
  • Реализация односвязного списка c++ Часть 3 | Урок #135
  • vector | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #1
  • Ключевое слово auto | Изучение С++ для начинающих. Урок #136
  • LIST | STL C++ | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #3
  • Итераторы STL | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #2
  • Итераторы stl c++ | prefix vs postfix | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #4
  • Цикл foreach C++ | range-based циклы | Изучение С++ для начинающих. Урок #137
  • forward list stl c++ | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #5
  • array STL C++ | | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #6
  • Контейнеры STL и операторы сравнения. | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #7
  • deque stl c++ | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #8
  • SET | MULTISET | Ассоциативные контейнеры | Библиотека стандартных шаблонов (stl) | Уроки | C++ #9
  • typedef c++ что это | Изучение С++ для начинающих. Урок #138
  • MAP | MULTIMAP | Ассоциативные контейнеры | Библиотека стандартных шаблонов (stl) | Уроки | C++ #10
  • Многопоточность | Потоки | thread | Многопоточное программирование | Уроки | C++ #1
  • Stack | Адаптеры контейнеров | Библиотека стандартных шаблонов (stl) | Уроки | C++ #11
  • Потоки с параметрами | Многопоточное программирование | Уроки | C++ #2
  • queue | priority queue | Адаптеры контейнеров | Библиотека стандартных шаблонов (stl) | C++ #12
  • Многофайловый проект | Изучение С++ для начинающих. Урок #139
  • Многофайловый проект | Защита от повторного включения | Изучение С++ для начинающих. Урок #140
  • Возврат результата из потока по ссылке | Многопоточное программирование | Уроки | C++ #3
  • Union | Использование в С++ | Изучение С++ для начинающих. Урок #141
  • std::function | Полиморфная обёртка функции | Изучение С++ для начинающих. Урок #142
  • Лямбда-выражения | Лямбда функции | Анонимные функции | Изучение С++ для начинающих. Урок #143
  • Лямбда выражения и возврат результата выполнения потока | Многопоточное программирование | C++ #4
  • Захват контекста лямбдой | Лямбда функции | Лямбда-выражения | Анонимные функции | Урок #144
  • Как измерить время выполнения кода | Изучение С++ для начинающих. Урок #145
  • Функторы в с++ | Что такое функтор | Изучение С++ для начинающих. Урок #146
  • Предикаты с++ | Что такое предикат | Изучение С++ для начинающих. Урок #147
  • STL Алгоритмы сортировки | Бинарный предикат | Лямбда функции | C++ STL Уроки | #13
  • STL алгоритмы поиска | find | find_if | find_if_not | Библиотека стандартных шаблонов (stl) C++ #14
  • stl copy | stl copy_if | Выборка данных по условию | Библиотека стандартных шаблонов (stl) C++ #15
  • stl remove | stl remove_if | stl удаление элемента по условию | Библиотека (stl) #16
  • Поиск максимального элемента | max_element c++ | Библиотека стандартных шаблонов (stl) C++ #17
  • Поиск минимального элемента | min_element c++ | Библиотека стандартных шаблонов (stl) C++ #18
  • С++ потоки и методы класса | С++ метод класса в потоке | Многопоточное программирование | C++ #5
  • accumulate c++ | сумма и произведение элементов массива | Библиотека (stl) C++ #19
  • STL equal и mismatch | Сравнение массивов | Библиотека стандартных шаблонов (stl) C++ #20
  • С чего начать начинающему программисту
  • Что такое mutex | Cинхронизация потоков | Многопоточное программирование | C++ #6
  • std equal predicate | Библиотека стандартных шаблонов (stl) C++ #21
  • lock_guard mutex c++ | Cинхронизация потоков | Многопоточное программирование | C++ #7
  • Deadlock Взаимная блокировка | Многопоточное программирование | C++ #8
  • Алгоритм for_each c++ | Библиотека стандартных шаблонов (stl) C++ #22
  • recursive_mutex C++ | Рекурсивный мьютекс | Многопоточное программирование | C++ #9
  • STL unique | Удалить повторяющиеся элементы | Библиотека стандартных шаблонов (stl) C++ #23

Содержание

Курс состоит из 6 разделов

Введение

 

В данном разделе Вы узнаете:

  1. Как наиболее эффективно проходить курс?
  2. Как работает язык C++ изнутри? Это очень важно понимать, поскольку такие базовые знания отличают дилетанта от профессионала.
  3. В какой среде разработки лучше писать код на C++? Как её скачать, установить (особенно важно, какие компоненты необходимы) и как настроить?

После просмотра данного раздела Вы уже будете знать, что это за язык, как он работает, а также у Вас уже будет всё готово для написания свои первых программ на C++.

Основы программирования на C++

 

В этом разделе Вы узнаете:

  1. Как пишутся программы на C++?
  2. Как правильно использовать комментарии?
  3. Что такое переменные, как они создаются и используются?
  4. Какие типы переменных есть в C++ и чем они отличаются друг от друга?
  5. Что такое константы и как с ними работать?
  6. Какие арифметические, логические и побитовые операции есть в C++ и как их использовать?
  7. Как работать с консолью?
  8. Как решить проблемы с кодировкой в консоли (не только на вывод, но и на ввод)?
  9. Что такое условный оператор и как он работает?
  10. Что такое оператор switch-case и когда его использовать?
  11. Что такое циклы и какие они есть в C++?
  12. Что такое цикл for, while и do-while и какая между ними разница?
  13. Что такое массивы, какие они бывают и, как и когда их использовать?
  14. Как работать с многомерными массивами?
  15. Что такое ссылки и для чего они нужны?
  16. Как создавать функции, как они работают изнутри, как они взаимодействуют со ссылками и многое-многое другое?
  17. Что такое область видимости переменных?
  18. Что такое статические переменные
  19. Что такое пространства имён, для чего нужны и как применяются?
  20. Что такое макросы?
  21. Как правильно разбивать код на разные файлы?
  22. Как собрать проект?

После прохождения этого раздела Вы уже сможете писать несложные программы на языке C++.

Работа с указателями

 

Указатели – это неотъемлемая часть языка C++. Мне трудно представить серьёзный и грамотно написанный проект, где не использовались бы указатели. Поэтому работать с ними надо уметь обязательно, и как раз в этом разделе этим мы и займёмся.

Посмотрев данный раздел, Вы узнаете:

  1. Что такое указатели и чем они отличаются от ссылок?
  2. Как взаимодействуют между собой указатели и массивы?
  3. Как работают константы и указатели вместе?
  4. Как работать с массивами в параметрах функций?
  5. Что такое указатель на функцию, а также как и когда его использовать?
  6. Что такое динамические объекты?
  7. Как не допустить утечку памяти?

Объектно-ориентированное программирование

 

Объектно-ориентированное программирование (ООП) – это самая популярная методика программирования, без которой немыслимо подавляющее большинство проектов не то, что средних и крупных, а даже маленьких. И сам язык C++, если ООП не использовать, становится бессмысленным (уж лучше тогда язык C использовать). Поэтому ООП надо обязательно знать любому, кто работает с C++. И как раз в этом разделе Вы и освоите ООП.

В этом разделе Вы узнаете:

  1. Что такое объектно-ориентированное программирование и какие парадигмы в нём есть?
  2. Как создаётся класс в C++?
  3. Что такое конструкторы и деструкторы?
  4. Что такое методы (функции класса) и их перегрузка?
  5. Как правильно использовать .h и .cpp файлы?
  6. Что такое модификаторы доступа и как правильно их применять?
  7. Что такое дружественные функции и классы?
  8. Что такое статические поля и методы?
  9. Что такое перечисления?
  10. Что такое структуры?
  11. Что такое наследование и как его использовать в C++?
  12. Что такое виртуальные методы?
  13. Как делать перегрузку операторов?
  14. Что такое абстрактные классы и методы?
  15. Что такое шаблоны и как они используются?

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

Обработка исключений

 

В этом разделе Вы узнаете:

  1. Что такое исключения и почему они так важны?
  2. Как обрабатываются исключения в C++?
  3. Как генерировать исключения?
  4. Как обрабатывать много исключений?
  5. Как создавать свои собственные исключения?

Просмотрев этот раздел, Вы сможете грамотно обрабатывать самые различные исключительные ситуации, как в чужих библиотеках, так и при написании собственных.

Стандартные классы в C++

 

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

В данном разделе Вы узнаете:

  1. Как выполнять самые различные строковые операции?
  2. Что такое регулярные выражения, как их создавать и как использовать?
  3. Как выполнять разнообразные математические операции?
  4. Как считывать данные из файла?
  5. Как записывать данные в файл?
  6. Как использовать контейнеры – важнейшие классы, без которых не обходится ни одна мало-мальски серьёзная программа?
  7. Как быстро и легко осваивать новые классы, которые могут понадобиться Вам в процессе программирования?

После прохождения данного раздела Вы не просто освоите те классы, без которых немыслимо программирование, но и, что куда более важно, научитесь самостоятельно осваивать новые классы, а это, в свою очередь, является важнейшей частью при написании программ с абсолютно любым функционалом. Невозможно (и не нужно) знать и помнить всё, но решить любую поставленную задачу за счёт умения программировать и умения пользоваться справочной информацией, Вы научитесь, пройдя этот курс и этот раздел, в частности.

Программирование на C++ в Unreal Engine

 

Одной из основных областей применения языка C++ являются игры. Безусловно, на C++ можно создавать игры с нуля, однако, это разумно только для совсем простых игр, либо уж очень необычных игр. Для 3D-игр, которые достаточно сложны, разумнее использовать игровой движок. И самым подходящим для подавляющего большинства задач (по моему мнению и не только) является Unreal Engine. А вот там как раз используется C++. И очень многие мои ученики, когда просили записать курс по C++, практически всегда просили разобрать его использование в Unreal Engine.

Поэтому все, кто закажет основной курс, получат бесплатно и достаточно крупный Бонус «Программирование на C++ в Unreal Engine», который содержит 16 уроков общей продолжительностью около 6 часов. В рамках этих уроках Вы увидите создание игры на C++ в Unreal Engine. Вот что Вы узнаете, посмотрев данный Бонус (всё нижеописанное, разумеется, создаётся на C++):

  1. Как вообще происходит программирование в Unreal Engine?
  2. В чём особенность программирования на C++ в Unreal Engine?
  3. Как создать базового персонажа?
  4. Как создать игрока?
  5. Как программируется анимация?
  6. Как создаётся GameMode?
  7. Как делаются компоненты?
  8. Как создаются виджеты?
  9. Как делаются игровые интерактивные объекты?
  10. Как создаются противники?
  11. Как создаётся искусственный интеллект?
  12. Как работать со звуками?
  13. Как создаются интерфейсы и как применяются?
  14. Как правильно пользоваться официальной документацией для решения любых возникающих задач?
    Многое-многое другое.
Стоимость: 30 дней за 9.99 USD

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

Чему вы научитесь с помощью данного видео курса:

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

Как устроены курсы?

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

 

Белый пояс

Вы научитесь использовать С++ для решения задач. Уже на этом этапе вы напишете больше 20 работающих программ и в конце курса справитесь с объемным финальным проектом. Главное —  никакой ненужной теории. Если в лекции вам что-то рассказывают — вы тут же сможете попробовать это на практике.

 

Желтый пояс

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

 

Красный пояс

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

 

Коричневый пояс

Курс начнется в декабре 2018 года. Его основная цель научить идиомам C++, то есть показать, как с помощью различных возможностей языка создавать элегантные, эффективные и надёжные блоки кода. Это позволит вам создавать не только быстрые, но и легко поддерживаемые программы.

 

Черный пояс

Курс запустится в 2019 году. В нем будут изложены темы, без которых представление о C++ будет неполным, — это таблицы виртуальных методов, виртуальные деструкторы, неопределённое поведение, шаблоны с произвольным числом аргументов и forwarding-ссылки. У вас будет возможность поработать с библиотеками и инструментами, без которых трудно представить современную разработку на С++, — это санитайзеры и protobuf. Наконец, «Чёрный пояс» будет содержать большой проект, который на этот раз будет длиться не одну неделю как обычно, а целых три.

Programming with C++

На курсе «Программирование на Visual С++» рассматриваются все этапы подготовки и написание программ на языке C++. Вы научитесь работать с различными типами данных, операторами и функциями С++, производить инкапсуляцию, использовать конструкторы и деструкторы. Освоите абстрактные классы и интерфейсы, шаблоны функций, узнаете, как управлять исключениями. Программа курса также предусматривает изучение современной среды разработки Microsoft Visuаl Studio.

На курсе «Программирование на Visual С++» рассматриваются все этапы подготовки и написание программ на языке C++. Вы научитесь работать с различными типами данных, операторами и функциями С++, производить инкапсуляцию, использовать конструкторы и деструкторы. Освоите абстрактные классы и интерфейсы, шаблоны функций, узнаете, как управлять исключениями. Программа курса также предусматривает изучение современной среды разработки Microsoft Visuаl Studio.

Вы научитесь

  • Работать с различными типами данных, операторами и функциями С++
  • Производить инкапсуляцию
  • Использовать конструкторы и деструкторы
  • Перегружать операции
  • Использовать наследование и полиморфизм
  • Разрабатывать абстрактные классы и интерфейсы
  • Применять шаблоны функций и классов
  • Управлять исключениями
  • Использовать современную среду разработки Microsoft Visuаl Studio

Программа курса

Модуль 1. Типы данных, операции и функции в С++  (4 ак. ч.)

  • Ссылочный тип данных.
  • Операции — расширения контекста.
  • Операции  new и delete.
  • Встроенные inline-функции.
  • Перегрузка функций. Аргументы по умолчанию

Модуль 2. Инкапсуляция (4 ак. ч.)

  • Декларация класса.
  • Управление доступом.
  • Указатель this.
  • Дружественные классы и функции.

Модуль 3. Специальные методы класса (4 ак. ч.)

  • Конструктор по умолчанию.
  • Конструктор  копирования.
  • Перегрузка конструкторов.
  • Деструктор.

Модуль 4. Константные и статические члены класса  (4 ак. ч.)

  • Константные функции и объекты.
  • Статические данные и функции.
  • Правила инициализации и использования.

Модуль 5. Перегрузка операций  (4 ак. ч.)

  • Правила перегрузки операций в С++.
  • Примеры перегрузки основных операций.
  • Перегрузка операции присваивания и конструктора копирования.

Модуль 6. Потоки данных в С++ (4 ак. ч.)

  • Иерархия классов потоков в С++.
  • Форматированный ввод/вывод.
  • Использование и создание манипуляторов.
  • Перегрузка операций ввода/вывода.
  • Работа с файлами.

Модуль 7. Наследование и полиморфизм  (4 ак. ч.)

  • Наследование как механизм повторного использования кода.
  • Виртуальные функции и позднее связывание.
  • Множественное наследование
  • Виртуальный базовый класс.
  • Чистые виртуальные функции и абстрактные классы.

Модуль 8. Шаблоны функций и классов  (4 ак. ч.)

  • Области применения шаблонов.
  • Создание и перегрузка шаблонных функций.
  • Определение, специализация и использование шаблонов классов.

Модуль 9. Управление исключениями  (4 ак. ч.)

  • Применение операторов try, catch, throw.
  • Динамическая идентификация типов времени выполнения (RTTI).
  • Операции приведения типа.

Модуль 10. Итоговое занятие  (4 ак. ч.)

  • Выполнение курсовой работы.

Обучение С++ с нуля позволит в скором времени создавать игры, программное обеспечение, прикладные приложения и нейросети.

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

На курсе ты научишься:

  • Понимать основные принципы C++
  • Разрабатывать простое ПО на C++
  • Выполнять математические расчеты, решать задачи и реализовывать типовые алгоритмы

 

План обучения на курсе C++:

  1. Немного истории
  • Что такое язык программирования
  • Машинные языки
  • Низкоуровневые языки (язык ассемблера)
  • Высокоуровневые языки
  • Трансляторы
  • Компиляция
  • Интерпретация
  • Парадигмы программирования
  • Модульная парадигма программирования
  • Функциональная парадигма программирования
  • Обобщенная парадигма программирования
  • Объектно ориентированная парадигма программирования
  • История С++
  1. Основы системы контроля версии GIT
  • Что такое система контроля версии и что она решает
  • Основные элементы git
  • Что такое коммит
  • Что такое ветка
  • Способы создания репозитория. Виды сервисов, позволяющие создать удаленный репозиторий
  • Базовые команды git
  • Практика. Создания репозитория локально. Создания репозитория на удаленном сервере
  1. Состав языка С++
  • Пример простой программы С++
  • Базовые способы собрать приложение
  • Алфавит языка
  • Что такое лексемы
  • Что такое идентификатор как важная составляющая программы
  • Что такое ключевые слова
  • Комментарии (однострочные, многострочные)
  • Что такое литера. Виды литералов. И зачем они нужны в коде
  • Чем отличаются строковый литерал от остальных типов литералов
  • Что такое инструкции
  • Что значит синтаксическая ошибка. Пример простой синтаксической ошибки
  • Что такое семантическая ошибка. Пример семантической ошибки и возможные ее последствия
  1. Переменные и типы данных
  • Что такое переменная. Синтаксис объявления переменной
  • Тип данных. Что такое строгая типизация. Зачем переменной нужен тип данных
  • Целочисленный тип данных
  • Символьные типы
  • Начиная с С++11, целочисленные типы с фиксированными размером, какие проблемы они решают
  • Что такое алиас на тип данных. Пример с описанием typedef.
  • Понимания типов size_t, time_t — это просто алиас на встроенный тип
  • Тип void как маркер разного контекста. Пример контекста использования этого типа
  • Логический тип данных
  • Вещественные типы данных. Возможные подводные камни представления в памяти
  • Простой пример на ассемблере способа представления целочисленных типов и вещественных типов
  • Способы объявления переменных. Инициализация переменных.
  • Проблема неинициализированных переменных
  • Оператор sizeof для получения размера переменных и типов
  • Способы инициализации переменных до С++11 и универсальная инициализация начиная с С++11 как средство решения проблем старой инициализации
  • Автоматический вывод типа. Ключевое слово auto и decltype
  • Константы
  • Способы объявления констант
  • Что такое свертка констант. Пример С++-кода с объявлением констант и оптимизированного ассемблерного кода
  1. Основные операции С++
  • Виды операторов (унарный, бинарный, тернарный). Их синтаксис
  • Неявное преобразование при операторе присвоения. Что такое срезка.
  • Что такое сужающее преобразование. Проблема знакового и беззнакового преобразования
  • Явное преобразования типов (С-подход и С++-подход)
  • Арифметические операции
  • Проблема арифметических операций. Целочисленное деление на ноль, переполнение и т.д.
  • Смешанные выражения. Приоритет операций
  • Автоматический вывод типа как решение проблемы переполнения в арифметических выражениях
  • Временная переменная как результат промежуточного вычисления выражения. Как выглядит временная переменная в сгенерированном ассемблерном коде (простое описание)
  • Базовые понятия Rvalue и Lvalue
  • Составной оператор
  • Пост- и пре-инкремент и декремент. В чем отличие между пре- и пост- операцией
  • Операторы отношения между операндами. Возможные подводные камни
  • Логические операции
  • Битовые операции. Что такое установка бита, что такое сброс бита. Что такое little-endian и big-endian. Что такое битовые маски, пример битовых масок до С++11 и начиная с С++11
  • Описание разницы между логическим сравнением с применением логических операторов {|| &&} и битовыми операциями {| &}
  • Арифметические операции, применимые к типу char и разница с выводом на поток символьного типа и целочисленного типа
  • Целочисленный оператор «остаток от деления». Рассмотрения примера ошибочной путаницы между знаковыми и беззнаковыми типами на сгенерированном ассемблерном коде
  1. Операторы, управляющие ходом выполнения программы
  • Условный оператор if. Пример возможных проблем с висячими else.
  • Разные подходы с написаниям оператора if во избежание спагетти-кода
  • Что такое область видимости. Что такое блок
  • Оператор выбора switch. Проблема fall through. В чем отличие между оператором выбора switch и логическим оператором if
  • Что такое compile time и run time-выражение на примере case-веток оператора выбора switch
  • Оператор цикла for. Способы объявления цикла for. Зачем нужен вечный цикл. Возможные проблемы знакового и беззнакового сравнения и их последствия
  • Оператор цикла while
  • Оператор цикла do while. Использование do while, для решения проблем с ветвлением кода с использованием оператора if
  • Тернарный оператор
  • Простое понимание точки следования на примере оператора запятой
  1. Массивы
  • Что такое массив и в чем его преимущества
  • Объявления массивов. Способы указания размера массива
  • Инициализация массива. Возможные ошибки при инициализации массива
  • Массив переменной длины, как расширение компилятора. Флаг компиляции — pedantic
  • Массив символов vs строки. Способы объявления. Что такое символ «терминальный ноль». Возможные проблемы при инициализации символьного массива
  • Доступ к элементам массива
  • Что такое выход за границы массива. Что такое buffer overflow
  • Циклы как способ обхода, обработки и вывода массива на экран
  • Частые ошибки при выборе типа для переменной цикла при работе с массивом
  • Размер массива. Как получить количество элементов массива
  • С++11 range for как способ удобной работы с массивом. В чем отличие range for и других циклов и какие проблемы решает range for в отличии от других циклов
  • Отличие символьного массива от других типов массивов. Как правильно обходить символьный массив в циклах. Как вывести символьный массив на экран. Как считывать символы введенные с клавиатуры в символьный массив и возможные проблемы
  • Многомерные массивы. Примеры представления многомерного массива одномерным массивом
  1. Указатели
  • Базовые понятия памяти стек
  • Что такое локальные переменные и как переменные создаются на стеке.
  • Что такое автоматическое управление памятью
  • Базовое понятие указателя
  • Объявление указателей
  • Способы инициализации указателя. Что такое невалидный указатель.
  • Что такое разыменования указателя и возможные проблемы. nullptr как правильный литерал для инициализации указателя. Что значит понятие «указатель на тип». Размер указателя, модели памяти разных ОС и платформ. Почему для указателя правильный тип есть void*
  • Что такое константный указатель и указатель на const. Пример возможных ошибок
  • Арифметика с указателями. Чем отличаются арифметика с указателями от арифметики с переменными
  • Что общего между массивом и указателем. Как обходить массив с помощью указателя. Что означает указатель на элемент за последним элементом массива и зачем так делать
  1. Функции
  • Что такое функция и какие она решает проблемы в коде
  • Синтаксис функции
  • Базовое понятие что такое объявление и определение функции. Пример отличия
  • Что такое списки параметров. Способ вызова функции. Задание значения по умолчанию для параметра
  • Возвращаемое значение из функции. auto как автоматический вывод возвращаемого значения. Проблемы при автоматическом выводе типа.
  • Тип void как маркер невозвращаемого значения функции
  • Передача параметров по значению
  • Что такое фактические и формальные параметры
  • Неправильное использования auto в качестве параметров функции и последующее расширения компиляторов
  • Что такое глобальные переменные. Проблема сокрытия имен глобальных и локальных переменных
  • Передача по указателю. Способ возврата нескольких значений с функции
  • Что такое ссылки. В чем отличие ссылки от указателя
  • Ссылка как часть интерфейса функции
  • Какие проблемы решает ссылка в сравнении с указателем как параметр функции. Какие преимущества константной ссылки. Почему можно передавать Rvalue как аргумент константной ссылки
  • Пример как сделать ссылку невалидной
  • Стек и вызов функций
  • Соглашение о вызове функций
  • Массивы как параметры функции. Способы объявления массива как параметра функции и частые ошибки. Проблема получения количества элементов массива в функции
  • Рекурсия. Inline-функции
  • Что такое перегрузка функций. Что такое mangling имен функции на примере генерации ассемблерного кода
  • Почему перегрузка недоступна в языке С. Простое описания ключевого слово extern «C» как пример описания перегрузки
  • Что такое указатель на функцию и какие решает проблемы передача функции как параметр функции на примере алгоритма сортировки
  • Базовые понятия что такое lambda как замена указателю на функцию.
  • Что такое std::function
  • Проблемы при возврате локальных переменных с функции по ссылке или указателю
  • Снятие константности с аргумента использования std::const_cast
  1. Пространства имен
  • Что такое пространства имен
  • Что такое вложенные пространства имен
  • Новые возможности объявления вложенных пространств имен в С++17
  1. Простые пользовательские типы данных
  • Что такое структуры. Какие они решают проблемы
  • Объявление структур
  • Способы доступа к полям структуры
  • Способы инициализации структур до С++11
  • Инициализация структур начиная с С++11
  • Размер структур. Что такое выравнивание структур. Что такое padding в структурах
  • Неименованные структуры
  • Struct binding С++17. Какие проблемы решает
  • Что такое перечисления и какие оно решает проблемы
  • Что такое unscoped-перечисления и какие у него проблемы
  • Что такое scoped-перечисления, начиная с С++11 и какие он решает проблемы
  • Что такое объединения. Какие он решает проблемы
  • Что такое каламбур типов и как объединение помогает в преобразовании несовместимых типов
  1. Работа с динамической памятью
  • Базовые понятия о моделях памяти. Их особенности и отличия
  • Отличие работы со стековой памятью и динамической памятью (куча)
  • Что такое менеджер памяти или почему динамическое выделение памяти такое дорогое
  • Работа с динамической памятью, используя С-функции
  • Работа с динамической памятью, используя С++-подход
  • Возможные проблемы при работе с динамической памятью
  1. Классы и объекты (ООП)
  • Базовые понятия ООП
  • Что есть недостатком функционального программирования и какие задачи решает ООП
  • Основные киты ООП
  • Синтаксис объявления класса
  • Что такое поля класса
  • Создание объекта класса
  • Уровни доступа в классе
  • Способы объявления константных полей в классе до С++11 и после
  • Что такое статические поля
  • Что такое метод класса. Чем отличается метод от обычной функции
  • Что такое this. Что такое соглашение о вызове thiscall
  • Способы объявления методов класса. Чем отличаются определение метода внутри класса от определения за пределами класса
  • Что такое константные методы и какие они решают проблемы.
  • Ключевое слово mutable
  • Что такое статические методы и чем они отличаються от обычных методов
  1. Конструкторы и деструкторы
  • Что такое конструктор и какие он решает проблемы
  • Виды конструкторов до С++11
  • Список инициализации. Способ инициализации полей класса, начиная с С++11. Подводные камни при инициализации полей класса
  • Зачем нужен конструктор копирования и оператор присваивания
  • Что такое деструктор и какие он решает проблемы
  • Правильная сигнатура для конструкторов и оператора присваивания
  • Перегрузка конструкторов
  • Порядок инициализации полей при создании объекта
  1. Наследование
  • Что такое наследование и какие оно решает проблемы
  • Виды наследования
  • Чем является наследование (public-наследования)
  • Расположение объектов в памяти при наследовании
  • Порядок инициализации при наследовании. Подводные камни
  • Порядок вызовов при разрушении объекта
  • Shadowing-методы при наследовании
  • Множественное наследование. В чем отличие от одиночного наследования. Подводные камни множественного наследования
  • Неоднозначность вызова метода при множественном наследовании
  • Проблема ромбового наследования
  • Что такое виртуальное наследование и зачем оно нужно в контексте наследования
  • Ключевое слово final
  1. Виртуальные функции
  • Что такое полиморфизм
  • Что такое виртуальная функция
  • Что такое динамический и статический полиморфизм и как он реализуется в языке С++
  • Ключевое слово override и какие он решает проблемы в контексте виртуальных функций
  • Что такое виртуальный деструктор и зачем он нужен
  • Что такое чисто виртуальные функции. Что такое абстрактный класс
  • Что такое vtable и vtpr. На что они влияют
  1. Шаблоны
  • Что такое шаблоны и обобщенное программирование
  • Что общего между макросом и шаблоном. Какие проблемы макроса
  • Шаблоны класса
  • Что такое инстанцирование шаблона
  • Проблема раздувания кода
  • Параметры шаблона. Передача значения в качестве шаблонного аргумента
  • Специализация. Частичная специализация. Явная специализация
  • Шаблонные функции
  • Шаблонный метод. Шаблонный конструктор. Какие задачи они позволяют решить
  • Разница в вызове шаблонного класса и шаблонной функции
  • Явная специализация шаблона функции
  1. Перегрузка операторов
  • Что такое перегрузка операторов
  • Когда стоит применять перегрузку операторов
  • Какие операции разрешено перегружать
  • В чем разница между перегрузкой оператора как методом класса и обычной функцией
  • Базовые соглашения о перегрузке операторов
  • Тонкости при перегрузке пре- и пост-инкремента и декремента
  • Рекомендации по написанию интерфейса перегрузки операторов
  • Особенности перегрузки вывода на поток
  1. Пространства имен
  • Что такое пространства имен. Их применения. Какие они решают проблемы
  • Что такое неименованные пространства имен, что общего между static и неименованными пространствами имен
  1. Базовые понятия о компиляции и системах сборки
  • Что такое препроцессинг
  • Что такое компиляция
  • Что такое линковщик
  • Виды компиляторов и их особенности
  • Что такое раздельная компиляция
  • Что такое заголовочный файл
  • Что такое стражи
  • Что такое библиотеки
  • Система сборки Make
  • CMake как генератор системы сборки
Стоимость: бесплатно

1

Очень короткое введение

2

Установка Microsoft Visual Studio 2015 Express

3

Online компиляторы для С++ и других языков программирования

4

Этапы сборки программы на C++ (ожидается)

5

Написание первой программы на языке C++ (+ видео)

6

Типы данных, переменные и константы в C++ (+ видео)

7

Вывод данных на экран. Ввод данных с клавиатуры (+ видео)

8

Арифметические операции (в т.ч. комбинированные операторы +=, -=, *= и /=)

9

Инкремент и декремент

10

Логические операции (+ видео)

Циклы и операторы ветвления

1

Операторы выбора if и else в C++ (+ видео)

2

Тернарный оператор ? : в C++ (+видео)

3

Оператор множественного выбора switch в C++ (+ видео)

4

Цикл for в C++ (+видео)

5

Операторы break и continue в C++

6

Циклы while и do while в C++ (+видео)

7

Вложенные конструкции в циклах

Массивы и строки

1

Массивы в C++. Одномерные массивы (+ видео)

2

Строки в C++ и символьные массивы (+ видео)

3

Функции для работы со строками в C++

4

Двумерные массивы в C++ (+ видео)

Дополнительные уроки

1

Генератор случайных чисел rand() в C++

2

Отладчик Microsoft Visual Studio

3

Исключения в C++

4

Перечисляемые типы (enum) в С++ (видео)

5

Преобразование типов

7

Форматирование ввода и вывода данных в C++ (ожидается)

8

Работа с файлами в C++. Библиотека fstream. Часть 1

9

Работа с файлами в C++. Библиотека fstream. Часть 2

Функции и введение в рекурсию

1

Функции в C++ (+ видео)

2

Параметры (аргументы) функции по умолчанию

3

Перегрузка функций в C++ (+ видео)

4

Шаблоны функций в C++ (+ видео)

5

Рекурсия в C++ (+ видео)

6

Локальные и глобальные переменные. Область видимости. (+видео)

7

Локальные и глобальные переменные. Область видимости. Пространства имён (+видео)

Указатели и ссылки

1

Указатели в C++. Часть 1: Динамические массивы. Операторы new и delete. (+ видео)

2

Указатели в C++. Часть 2: Передача строки в функцию по указателю. Возврат указателя из функции (+ видео)

3

Ссылки в C++ (видео)

4

Указатели на функции в C++

Структуры

1

Структуры (struct) в С++. Часть 1 (+ видео)

2

Структуры (struct) в С++. Часть 2 (+ видео)

3

Массив структур. Указатель на структуру

4

Динамический массив структур C++

5

Объединения (union) в C++ (видео)

6

Битовые поля в С++

Классы

1

Классы в C++ (видео)

2

Конструктор и деструктор класса в C++

3

Перегруженный конструктор класса

4

Конструктор копирования

5

Указатель this

6

Перегрузка операторов в C++ (видео)

7

Работа со строками в C++. Класс String C++ (видео)

8

Дружественные функции и дружественные классы (видео)

9

Статические поля и статические методы класса в C++ (видео)

10

Наследование классов в C++ (ожидается)

11

Указатели на объекты в С++

Контейнеры STL (Standard Template Library): vector, list, queu…

1

Введение. Массивы со статической и динамической размерностью

2

Контейнеры STL

3

Контейнеры STL: vector

4

Контейнеры STL: list

5

Классы string и wstrting

6

Ассоциативные контейнеры STL

7

Контейнер map

8

Контейнер multimap

9

Контейнеры set и multiset

10

Алгоритмы

11

Функциональные объекты

12

Сортировка

13

Сортировка структур

14

Обобщённые численные алгоритмы

15

Адаптеры STL

16

Указатели в контейнерах

 

В курсе рассматривается:

  • ​Язык программирования С
  • Компилятор GCC
  • Отладчик GDB
  • Язык программирования С++
  • Графическая библиотека QT

 

ПРОГРАММА

Модуль 1. Язык программирования С.

  • ​Архитектура операционной системы (Linux)
  • Анатомия С программы
  • Компилятор GCC и файл сборки
  • Типы данных, операторы и выражения
  • Конструкции ветвления, циклы, функции
  • Массивы и указатели
  • Структуры

 

Модуль 2. Язык программирования C++

  • ​Базовый класс
  • Перегрузка операторов
  • Механизм наследования
  • Наследование, полиморфизм
  • Пространства имен
  • Шаблоны
  • Отслеживание исключительных ситуаций и ошибок
  • Введение в C++ 11

Модуль 3. Анализ и проектирование программ.

  • ​Паттерны проектирования
  • Тестирование программ
  • Философия Qt
  • Слоты и сигналы
  • QtDesigner
  • Разработка GUI на базе QT
  • Процессы и потоки

Преимущества выбора курсов в РоманСеменцов.ру

1. Агрегатор онлайн-курсов


2. Рейтинги онлайн-школ

  • ТОП школ по любым направлениям
  • Дата начала: 2023-01-01
  • Дата окончания: 2023-12-31

3. Актуальное обучение

  • Выбирайте лучшие курсы по отзывам реальных учеников
  • Дата начала: 2023-01-01
  • Дата окончания: 2023-12-31

Автор статьи. Ответственный за актуальный контент, текст и редактуру сайта. Эксперт по выбору профессии, курсов и профессий с 2016 года. Делюсь личным практическим опытом.

Оцените автора
Блог Романа Семенцова
Добавить комментарий