你将学到什么
Unit Testing
Software Development
C++17
Algorithms
Computer Programming
Object-Oriented Programming (OOP)
Software Testing
C++ Standard Library
Parallel Computing
Binary Search Tree
Hash Table
Code Refactoring
课程概况
В специализации преподаватели делятся своим многолетним опытом создания больших проектов на языке C++. Они не пересказывают учебник, а учат решать задачи, с которыми на практике сталкиваются большинство разработчиков. Лекции, подаваемые в лёгкой и доступной форме, подкрепляются большим количество задач по программированию. Закончив эту специализацию, вы сможете не только рассуждать о C++, сравнивая его с другими языками, но и получите реальный навык программирования.
包含课程
课程1
Основы разработки на C++: белый пояс
Этот курс посвящён знакомству с языком программирования С++. Вы научитесь использовать его основные конструкции, создавать свои типы данных, разбивать программу на классы и функции.В конце курса вас ждёт финальный проект: вы сможете самостоятельно реализовать простое хранилище данных с возможностью добавления, удаления и поиска.
Курс разработан ведущими специалистами Яндекса и преподавателями Школы анализа данных. За их плечами – годы разработки сервисов поиска, рекламы и инфраструктуры.
Курс является частью специализации «Искусство разработки на современном C++».
课程2
Основы разработки на C++: жёлтый пояс
Этот курс является продолжением курса "Основы разработки на C++: белый пояс". В нём преподаватели продолжают знакомить вас с возможностями языка C++. В курсе рассмотрены:- целочисленные типы языка C++
- пары и кортежи
- шаблоны функций
- наследование и полиморфизм
- итераторы и стандартные алгоритмы
- распределение кода по нескольким файлам
Кроме того, в курсе рассмотрено использование юнит-тестов для отладки программ и обеспечения надёжности кода, а также продемонстрировано, как, пользуясь знаниями только "Белого" и "Жёлтого" поясов, разработать свой собственный unit test framework.
Так же, как и в "Белом поясе", в конце курса вас ждёт финальный проект. В "Белом поясе" надо было самостоятельно реализовать простое хранилище данных с возможностью добавления, удаления и поиска. В "Жёлтом поясе" это хранилище надо будет усовершенствовать, добавив поддержку более сложных запросов.
Курс разработан ведущими специалистами Яндекса и преподавателями Школы анализа данных. За их плечами – годы разработки сервисов поиска, рекламы и инфраструктуры. Кроме того в подготовке заданий участвовали сотрудники Яндекса и студенты Школы анализа данных:
- Александр Гришин
- Алексей Аверченко
- Максим Филипов
- Даниил Петров
- Евгений Шавлюгин
- Владислав Виноградов
- Алексей Боголюбский
- Дмитрий Кузьмичёв
- Иван Качалкин
- Андрей Полушин
- Андрей Корнеев
- Константин Меренков
课程3
Основы разработки на C++: красный пояс
Этот курс является продолжением курса "Основы разработки на C++: жёлтый пояс". Основная цель курса — научить писать на С++ эффективный код. Кроме того рассмотрены некоторые возможности С++, которые не попали в предыдущие курсы. В курсе рассмотрены:
- макросы
- шаблоны классов
- принципы оптимизации кода
- эффективное использование потоков ввода/вывода
- оценки сложности алгоритмов
- модель памяти в С++
- эффективное использование линейных контейнеров (vector, deque, list, string)
- move-семантика
- введение в многопоточное программирование
Кроме того, в курсе продемонстрировано, как, пользуясь знаниями только "Белого", "Жёлтого" и "Красного" поясов, разработать свой собственный профайлер.
Так же, как и в предыдущих курсах, в конце вас ждёт финальный проект. Было бы странно в курсе от Яндекса не попросить вас создать свою поисковую систему! Именно этим вам и предстоит заняться в финальной задаче.
Курс разработан ведущими специалистами Яндекса и преподавателями Школы анализа данных. За их плечами – годы разработки сервисов поиска, рекламы и инфраструктуры. Кроме того в подготовке заданий участвовали
1. Сотрудники Яндекса:
- Алексей Аверченко
- Даниил Петров
- Константин Меренков
- Алексей Зобнин
2. Выпускники «Жёлтого пояса по С++»:
- Борис Егоров
- Ольга Марчевская
3. Сотрудник Института проблем информатики РАН Олег Яковлев
В создании урока «Шаблоны классов» принимал участие преподаватель Белого и Жёлтого «поясов» Евгений Парамонов.
课程4
Основы разработки на С++: коричневый пояс
Основная цель этого курса — научить идиомам языка C++, то есть показать, как с помощью различных возможностей языка создавать элегантные, эффективные и надёжные блоки кода. В совокупности со знаниями, полученными на «Красном поясе», это позволит вам создавать не только быстрые и легко поддерживаемые программы. Кроме того, будут освещены темы, которые не поместились в объём предыдущих курсов: пространства имён и эффективное использование ассоциативных контейнеров.
课程5
Основы разработки на С++: черный пояс
Во-первых, в «Чёрном поясе» будут изложены темы, без которых ваше представление о C++ будет неполным, — это таблицы виртуальных методов, виртуальные деструкторы, неопределённое поведение, шаблоны с произвольным числом аргументов и forwarding-ссылки. Во-вторых, мы предоставим вам возможность поработать с библиотеками и инструментами, без которых трудно представить современную разработку на С++, — это санитайзеры и protobuf. Наконец, «Чёрный пояс» будет содержать большой проект, который на этот раз будет длиться не одну неделю как обычно, а целых три. После прохождения нашей специализации слушатели должны:* уметь самостоятельно решать практические задачи на языке С++;
* применять естественные для С++ идиомы и конструкции (STL, RAII, const-correctness, type-safety);
* уметь самостоятельно находить ответы на свои вопросы и изучать язык глубже;
* уметь писать на С++ эффективный код без ущерба для readibility и maintainability кода.
Финальный проект «Чёрного пояса» призван проверить, достигли ли слушатели этих целей.
课程项目
В конце каждого курса вам предлагается большая задача, для решения которой нужно применить материал всех предыдущих недель. Она позволяет вам комплексно применить навыки, которые вы по отдельности усвоите в уроках курса. Финальные проекты основаны на реальных практических задачах, которые приходилось решать авторам специализации.