Robot
Складчик
- #1
[Яндекс.Практикум] Разработчик C++ 2022-2023. Часть 4 из 9
- Ссылка на картинку
Разработчик C++ участвует в создании сложных IT-продуктов: от беспилотных автомобилей и робототехники до веб-браузеров, микроконтроллеров, серверов и видеоигр. На этом языке можно создавать с нуля самые разные программы, а крепкая база знаний по C++ позволит легко освоить любой смежный инструмент.
Что вы получите от курса:
Научитесь писать эффективный код
Разберётесь в стандартной библиотеке C++
Начнёте работать с Git, IDE и компиляторами
Познакомитесь с базовыми алгоритмами и структурами данных
Создадите действующие сервисы и добавите 3+ проекта в портфолио
Курс подойдёт вам, если:
Вы никогда не программировали и хотите начать с языка С++
Вы начинаете не с нуля и хотите освоить C++ для карьерного роста
Вы с опытом, но хотите выучить новый язык и сменить работу
Вам не хватает крепкой базы программирования
Будете учить только то, что точно пригодится в работе
С++ — сложный язык для сложных систем: беспилотных автомобилей и робототехники, веб-браузеров, микроконтроллеров, серверов и видеоигр. Курс непростой, но освоить его могут даже новички, если уделять обучению достаточно времени и усилий.
Программа
0 модуль. Базовые понятия программирования (опциональный). 10 часов
Вы узнаете об основах программирования и научитесь писать простые программы на C++
Знакомство с С++
Переменные и ввод
Условные конструкции, цикл for
Функции
1 модуль. Основы C++ (бесплатный). 30 часов
Вы познакомитесь с основными возможностями языка С++ и напишете на нём более 25 программ
Числа и строки. Операции над ними. Ввод и вывод
Условия и циклы
V значит вектор
Функции
Контейнер set
Глубокое копирование, ссылки и константность
Контейнер map
2 модуль. Основные компоненты C++. 120 часов
Вы освоите понятия, важные для полноценной разработки на C++:
итераторы — чтобы работать со всеми стандартными алгоритмами,
конструкторы — чтобы создавать объекты стало проще,
шаблоны функций — чтобы писать универсальный код.
А ещё научитесь обращаться со сложными программами: разбивать код на несколько файлов и тестировать его.
Спринт 1. Изучаем Git, базовые алгоритмы, структуры и классы данных. Погружаемся в детали и избегаем дублирования кода.
Git
Простые алгоритмы
Структуры и классы
Лямбда-функции
Спринт 2.
Работа со средой Eclipse
Числовые типы
Пары и кортежи
Шаблоны функций
Видимость и инициализация переменных
Спринт 3. Тестируем код.
Введение в тестирование
Фреймворк для юнит-тестов
Компиляция и отладка в консоли
Спринт 4. Осваиваем мощь и гибкость классов.
Жизненный цикл объекта
Перегрузка операторов
Обработка ошибок. Исключения
Спринт 5. Разбиваем код на несколько файлов и углубляем знания о стандартных алгоритмах.
Итераторы
Алгоритмы поиска
Стек, очередь, дек
Распределение кода по файлам
3 модуль. Эффективность кода. 120 часов
Вы научитесь оценивать эффективность высокопроизводительного приложения до и после его разработки. Познакомитесь с внутренним устройством контейнеров — это позволит понять, как настраивать элементы языка на эффективную работу. Чтобы избегать лишних копирований в коде, освоите move-семантику. А чтобы выжимать максимум из всех ядер процессора, начнёте писать многопоточные программы.
Спринт 6. Работаем над скоростью кода.
Профилируем и ускоряем
Потоковые хитрости
Просто о сложности. Теория быстродействия
Спринт 7. Учимся управлять памятью.
Модель памяти в C++
Односвязный список
Спринт 8. Постигаем внутреннее устройство контейнеров и осваиваем семантику перемещения.
Санитайзеры и другие инструменты поиска ошибок
Эффективные линейные контейнеры
Семантика перемещения
Спринт 9. Создаём многопоточные программы.
Параллельные алгоритмы
Асинхронные вычисления
Состояние гонки и защита от него
4 модуль. Элегантность и масштабируемость. 120 часов
Вы изучите инструменты, которые защищают код от человеческих ошибок и делают его опрятным: пространства имён, константность, RAII. Узнаете, как избавить программу от проблем роста. Освоите динамический полиморфизм.
Спринт 10. Изучаем ассоциативные контейнеры и пространства имён.
Ассоциативные контейнеры
Имена и пространства имён
Спринт 11. Упрощаем код благодаря наследованию, полиморфизму и умным указателям.
Умные указатели
Наследование и полиморфизм
Спринт 12. Осваиваем практики проектирования программ и работаем с файлами.
Константность как элемент проектирования программ
Работа с файлами
Идиома RAII
Спринт 13. Достигаем элегантности кода.
Философия хороших функций
Передаём данные в функцию
Получаем данные из функции
Рефакторинг
5 модуль. Разработка библиотек и больших проектов. 120 часов
Вы изучите основы сериализации объектов и библиотеку protobuf. Они помогут вашим программам обмениваться данными, а плотная упаковка сэкономит память. Разберётесь в концепции undefined behaviour. Напишете полноценный вектор, познакомитесь с variadic templates и гарантиями безопасности исключений.
Спринт 14. Пробуем себя в роли разработчиков библиотек.
Undefined Behavior
Vector своими руками
Спринт 15. Рассматриваем размещение объектов в памяти.
Хранение объектов в памяти
Таблица виртуальных методов
Собираем по-новому. CMake
Сериализация и protobuf
6 модуль. Дипломный проект. 40 часов
Вы закрепите навыки написания понятного и масштабируемого кода: разработаете крупную программу, которую сможете развивать в будущем.
Разработка интерпретатора языка Mython
Дипломный проект «Электронная таблица»
Что вы получите от курса:
Научитесь писать эффективный код
Разберётесь в стандартной библиотеке C++
Начнёте работать с Git, IDE и компиляторами
Познакомитесь с базовыми алгоритмами и структурами данных
Создадите действующие сервисы и добавите 3+ проекта в портфолио
Курс подойдёт вам, если:
Вы никогда не программировали и хотите начать с языка С++
Вы начинаете не с нуля и хотите освоить C++ для карьерного роста
Вы с опытом, но хотите выучить новый язык и сменить работу
Вам не хватает крепкой базы программирования
Будете учить только то, что точно пригодится в работе
С++ — сложный язык для сложных систем: беспилотных автомобилей и робототехники, веб-браузеров, микроконтроллеров, серверов и видеоигр. Курс непростой, но освоить его могут даже новички, если уделять обучению достаточно времени и усилий.
Программа
0 модуль. Базовые понятия программирования (опциональный). 10 часов
Вы узнаете об основах программирования и научитесь писать простые программы на C++
Знакомство с С++
Переменные и ввод
Условные конструкции, цикл for
Функции
1 модуль. Основы C++ (бесплатный). 30 часов
Вы познакомитесь с основными возможностями языка С++ и напишете на нём более 25 программ
Числа и строки. Операции над ними. Ввод и вывод
Условия и циклы
V значит вектор
Функции
Контейнер set
Глубокое копирование, ссылки и константность
Контейнер map
2 модуль. Основные компоненты C++. 120 часов
Вы освоите понятия, важные для полноценной разработки на C++:
итераторы — чтобы работать со всеми стандартными алгоритмами,
конструкторы — чтобы создавать объекты стало проще,
шаблоны функций — чтобы писать универсальный код.
А ещё научитесь обращаться со сложными программами: разбивать код на несколько файлов и тестировать его.
Спринт 1. Изучаем Git, базовые алгоритмы, структуры и классы данных. Погружаемся в детали и избегаем дублирования кода.
Git
Простые алгоритмы
Структуры и классы
Лямбда-функции
Спринт 2.
Работа со средой Eclipse
Числовые типы
Пары и кортежи
Шаблоны функций
Видимость и инициализация переменных
Спринт 3. Тестируем код.
Введение в тестирование
Фреймворк для юнит-тестов
Компиляция и отладка в консоли
Спринт 4. Осваиваем мощь и гибкость классов.
Жизненный цикл объекта
Перегрузка операторов
Обработка ошибок. Исключения
Спринт 5. Разбиваем код на несколько файлов и углубляем знания о стандартных алгоритмах.
Итераторы
Алгоритмы поиска
Стек, очередь, дек
Распределение кода по файлам
3 модуль. Эффективность кода. 120 часов
Вы научитесь оценивать эффективность высокопроизводительного приложения до и после его разработки. Познакомитесь с внутренним устройством контейнеров — это позволит понять, как настраивать элементы языка на эффективную работу. Чтобы избегать лишних копирований в коде, освоите move-семантику. А чтобы выжимать максимум из всех ядер процессора, начнёте писать многопоточные программы.
Спринт 6. Работаем над скоростью кода.
Профилируем и ускоряем
Потоковые хитрости
Просто о сложности. Теория быстродействия
Спринт 7. Учимся управлять памятью.
Модель памяти в C++
Односвязный список
Спринт 8. Постигаем внутреннее устройство контейнеров и осваиваем семантику перемещения.
Санитайзеры и другие инструменты поиска ошибок
Эффективные линейные контейнеры
Семантика перемещения
Спринт 9. Создаём многопоточные программы.
Параллельные алгоритмы
Асинхронные вычисления
Состояние гонки и защита от него
4 модуль. Элегантность и масштабируемость. 120 часов
Вы изучите инструменты, которые защищают код от человеческих ошибок и делают его опрятным: пространства имён, константность, RAII. Узнаете, как избавить программу от проблем роста. Освоите динамический полиморфизм.
Спринт 10. Изучаем ассоциативные контейнеры и пространства имён.
Ассоциативные контейнеры
Имена и пространства имён
Спринт 11. Упрощаем код благодаря наследованию, полиморфизму и умным указателям.
Умные указатели
Наследование и полиморфизм
Спринт 12. Осваиваем практики проектирования программ и работаем с файлами.
Константность как элемент проектирования программ
Работа с файлами
Идиома RAII
Спринт 13. Достигаем элегантности кода.
Философия хороших функций
Передаём данные в функцию
Получаем данные из функции
Рефакторинг
5 модуль. Разработка библиотек и больших проектов. 120 часов
Вы изучите основы сериализации объектов и библиотеку protobuf. Они помогут вашим программам обмениваться данными, а плотная упаковка сэкономит память. Разберётесь в концепции undefined behaviour. Напишете полноценный вектор, познакомитесь с variadic templates и гарантиями безопасности исключений.
Спринт 14. Пробуем себя в роли разработчиков библиотек.
Undefined Behavior
Vector своими руками
Спринт 15. Рассматриваем размещение объектов в памяти.
Хранение объектов в памяти
Таблица виртуальных методов
Собираем по-новому. CMake
Сериализация и protobuf
6 модуль. Дипломный проект. 40 часов
Вы закрепите навыки написания понятного и масштабируемого кода: разработаете крупную программу, которую сможете развивать в будущем.
Разработка интерпретатора языка Mython
Дипломный проект «Электронная таблица»
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.