/Modern-Cplusplus

Искусство разработки на современном C++

Primary LanguageC++

Искусство разработки на современном C++

Специализация Искусство разработки на современном C++ by Moscow Institute of Physics and Technology & Yandex Специализация Искусство разработки на современном C++

Специализация: общие сведения

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

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

Этот курс является продолжением курса "Основы разработки на C++: белый пояс". В нём преподаватели продолжают знакомить вас с возможностями языка C++. В курсе рассмотрены:

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

Кроме того, в курсе рассмотрено использование юнит-тестов для отладки программ и обеспечения надёжности кода, а также продемонстрировано, как, пользуясь знаниями только "Белого" и "Жёлтого" поясов, разработать свой собственный unit test framework. Так же, как и в "Белом поясе", в конце курса вас ждёт финальный проект. В "Белом поясе" надо было самостоятельно реализовать простое хранилище данных с возможностью добавления, удаления и поиска. В "Жёлтом поясе" это хранилище надо будет усовершенствовать, добавив поддержку более сложных запросов.

Этот курс является продолжением курса "Основы разработки на C++: жёлтый пояс". Основная цель курса — научить писать на С++ эффективный код. Кроме того рассмотрены некоторые возможности С++, которые не попали в предыдущие курсы. В курсе рассмотрены:

  • макросы
  • шаблоны классов
  • принципы оптимизации кода
  • эффективное использование потоков ввода/вывода
  • оценки сложности алгоритмов
  • модель памяти в С++
  • эффективное использование линейных контейнеров (vector, deque, list, string)
  • move-семантика
  • введение в многопоточное программирование.

Кроме того, в курсе продемонстрировано, как, пользуясь знаниями только "Белого", "Жёлтого" и "Красного" поясов, разработать свой собственный профайлер. Так же, как и в предыдущих курсах, в конце вас ждёт финальный проект. Было бы странно в курсе от Яндекса не попросить вас создать свою поисковую систему! Именно этим вам и предстоит заняться в финальной задаче.

Основная цель этого курса — научить идиомам языка C++, то есть показать, как с помощью различных возможностей языка создавать элегантные, эффективные и надёжные блоки кода. В совокупности со знаниями, полученными на «Красном поясе», это позволит вам создавать не только быстрые и легко поддерживаемые программы. Кроме того, будут освещены темы, которые не поместились в объём предыдущих курсов: пространства имён и эффективное использование ассоциативных контейнеров.

Основы разработки на С++: черный пояс

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

После прохождения нашей специализации слушатели должны:

  • уметь самостоятельно решать практические задачи на языке С++;
  • применять естественные для С++ идиомы и конструкции (STL, RAII, const-correctness, type-safety);
  • уметь самостоятельно находить ответы на свои вопросы и изучать язык глубже;
  • уметь писать на С++ эффективный код без ущерба для readibility и maintainability кода.

Финальный проект «Чёрного пояса» призван проверить, достигли ли слушатели этих целей.