Название: Разработчик C++. Все части (Яндекс.Практикум)
Автор: Коллектив
Издательство: Яндекс.Практикум
Год: 2021
Формат: HTML
Страниц: много
Размер: 3.16 Gb
Язык: Русский
Курс подойдёт вам, если Вы никогда не программировали и хотите начать с языка С++. Вы начинаете не с нуля и хотите освоить C++ для карьерного роста.
Программа обучения:
Основы C++. Бесплатный вводный курс
Вы познакомитесь с основными возможностями языка С++ и самостоятельно напишете на нём более 25 программ. По итогам этого модуля вы создадите на С++ собственную поисковую систему.
Основные компоненты C++
Вы освоите ряд понятий, важных для полноценной разработки на C++. Итераторы помогут применять всё многообразие стандартных алгоритмов, конструкторы сделают создание объектов удобным и гибким, а шаблоны функций позволят сделать код более универсальным.
Помимо этого, вы научитесь работать со сложными программами на C++. Разбиение кода на несколько файлов поможет не загнуться под тяжестью растущей программы, а тестирование не даст коварным ошибкам попасть в продакшн.
Эффективность кода
Эффективность высокопроизводительного приложения важно уметь оценить до и после его разработки. Для предварительной оценки проводят асимптотический анализ кода. После написания программы применяют профилировщики.
Писать производительные программы во многом помогают стандартные алгоритмы и контейнеры. Вы познакомитесь с внутренним устройством некоторых контейнеров и напишете первую версию собственного вектора. Заглянув под капот, вы лучше поймёте, как настроить элементы языка на более эффективную работу.
Избежать лишних копирований позволяет move-семантика. А многопоточные программы при грамотном проектировании выжмут максимум из всех ядер процессора.
Элегантность и масштабируемость
Некоторые инструменты языка формально не нужны. Без них можно обойтись, но они делают код опрятным и защищают его от человеческих ошибок. Так, пространства имён разделяют сущности языка на смысловые блоки с общим именем. Константность и RAII подсказывают разработчику, как лучше использовать конкретный объект, метод или класс.
Вы освоите приёмы, которые помогут будущим поколениям понять, «что хотел сказать автор», и избавят программу от проблем роста.
Наконец, вы изучите динамический полиморфизм, узнаете, как хранить наборы объектов разных типов и выполнять над ними общие операции.
Разработка библиотек и больших проектов
Вы изучите темы, важные для разработки больших программ и даже отдельных библиотек. Основы сериализации объектов и библиотека protobuf помогут вашим программам обмениваться данными, а плотная упаковка сэкономит ценную память. Понимание концепции undefined behaviour и умение его обнаружения позволит избежать сложных ошибок.
Вы напишете полноценный вектор, попутно познакомитесь с variadic templates — шаблонами с переменным числом аргументов — и гарантиями безопасности исключений.
Дипломный проект
В заключение вы напишете настоящий дипломный проект — крупную программу, которую сможете развивать. Именно так вы закрепите свои навыки написания понятного и масштабируемого кода