Розробник C++бере участь у створенні складних сучасних IT-продуктів: від безпілотних автомобілів і робототехніки до веб-браузерів, мікроконтролерів, серверів і відеоігор. Ви вивчите найважливіші інструменти програмування на C++, а також освоїте необхідні в бекенд-розробці бази даних і Git. В процесі навчання створите кілька діючих сервісів.
що Ви отримаєте в практикумі:
За 9 місяців навчання по 15 годин на тиждень ви освоїте навички розробки на C++, зберете портфоліо. Ось над якими проектами вам належить працювати:
пошукова система
Ви створите свою пошукову систему, яка буде шукати документи за запитами і ранжувати їх. При цьому ви використовуєте алгоритми, що застосовуються в реальних пошукових системах
Маршрутизатор для міста
Ви розробите програму, що дозволяє будувати маршрути в місті. Вона буде підтримувати переміщення на громадському транспорті, а також піші маршрути. Точнісінько, як маршрутизатор в Яндекс.Картах
система управління електронними таблицями
Ви зробите свій аналог Excel-систему управління електронними таблицями. Вона буде вміти працювати з формулами і осередками різного типу, а також знаходити циклічні залежності між ними
програма:
Основи C++. Безкоштовний вступний курс [30 годин]
Ви познайомитеся з основними можливостями мови С++ і самостійно напишете на ньому більше 25 програм. За підсумками цього модуля ви створите на с++ власну пошукову систему.
основні компоненти C++ [120 годин]
Ви освоїте ряд понять, важливих для повноцінної розробки на C++. Ітератори допоможуть застосовувати все різноманіття стандартних алгоритмів, конструктори зроблять створення об'єктів зручним і гнучким, а шаблони функцій дозволять зробити код більш універсальним.
Крім цього, ви навчитеся працювати зі складними програмами на C++. Розбиття коду на кілька файлів допоможе не загнутися під вагою зростаючої Програми, а тестування не дасть підступним помилкам потрапити в продакшн.
ефективність коду [120 годин]
Ефективність високопродуктивного додатка важливо вміти оцінити до і після його розробки. Для попередньої оцінки проводять асимптотичний аналіз коду. Після написання програми застосовують Профілювальники.
Писати продуктивні програми багато в чому допомагають стандартні алгоритми і контейнери. Ви познайомитеся з внутрішнім пристроєм деяких контейнерів і напишете першу версію власного вектора. Заглянувши під капот, ви краще зрозумієте, як налаштувати елементи мови на більш ефективну роботу.
Уникнути зайвих копіювань дозволяє move-семантика. А багатопотокові програми при грамотному проектуванні вичавлять максимум з усіх ядер процесора.
елегантність і масштабованість [120 годин]
Деякі інструменти мови формально не потрібні. Без них можна обійтися, але вони роблять код охайним і захищають його від людських помилок. Так, простору імен поділяють сутності мови на смислові блоки із загальним ім'ям. Константність і RAII підказують розробнику, як краще використовувати конкретний об'єкт, метод або клас.
Ви освоїте прийоми, які допоможуть майбутнім поколінням зрозуміти, "що хотів сказати автор", і позбавлять програму від проблем зростання.
Нарешті, ви вивчите динамічний поліморфізм, дізнаєтеся, як зберігати Набори об'єктів різних типів і виконувати над ними загальні операції.
Розробка бібліотек та великих проектів [120 годин]
Ви вивчите теми, важливі для розробки великих програм і навіть окремих бібліотек. Основи серіалізації об'єктів і бібліотека protobuf допоможуть вашим програмам обмінюватися даними, а щільна упаковка заощадить цінну пам'ять. Розуміння концепції undefined behaviour і вміння його виявлення дозволить уникнути складних помилок.
Ви напишете повноцінний вектор, попутно познайомитеся з variadic templates — шаблонами зі змінним числом аргументів - і гарантіями безпеки винятків.
дипломний проект [50 годин]
На закінчення ви напишете справжній дипломний проект-велику програму, яку зможете розвивати. Саме так ви закріпите свої навички написання зрозумілого і масштабованого коду
Ефективність високопродуктивного додатка важливо вміти оцінити до і після його розробки. Для попередньої оцінки проводять асимптотичний аналіз коду. Після написання програми застосовують Профілювальники.
Писати продуктивні програми багато в чому допомагають стандартні алгоритми і контейнери. Ви познайомитеся з внутрішнім пристроєм деяких контейнерів і напишете першу версію власного вектора. Заглянувши під капот, ви краще зрозумієте, як налаштувати елементи мови на більш ефективну роботу.
Уникнути зайвих копіювань дозволяє move-семантика. А багатопотокові програми при грамотному проектуванні вичавлять максимум з усіх ядер процесора.
елегантність і масштабованість [120 годин]
Деякі інструменти мови формально не потрібні. Без них можна обійтися, але вони роблять код охайним і захищають його від людських помилок. Так, простору імен поділяють сутності мови на смислові блоки із загальним ім'ям. Константність і RAII підказують розробнику, як краще використовувати конкретний об'єкт, метод або клас.
Ви освоїте прийоми, які допоможуть майбутнім поколінням зрозуміти, "що хотів сказати автор", і позбавлять програму від проблем зростання.
Нарешті, ви вивчите динамічний поліморфізм, дізнаєтеся, як зберігати Набори об'єктів різних типів і виконувати над ними загальні операції.
Розробка бібліотек та великих проектів [120 годин]
Ви вивчите теми, важливі для розробки великих програм і навіть окремих бібліотек. Основи серіалізації об'єктів і бібліотека protobuf допоможуть вашим програмам обмінюватися даними, а щільна упаковка заощадить цінну пам'ять. Розуміння концепції undefined behaviour і вміння його виявлення дозволить уникнути складних помилок.
Ви напишете повноцінний вектор, попутно познайомитеся з variadic templates — шаблонами зі змінним числом аргументів - і гарантіями безпеки винятків.
дипломний проект [50 годин]
На закінчення ви напишете справжній дипломний проект-велику програму, яку зможете розвивати. Саме так ви закріпите свої навички написання зрозумілого і масштабованого коду
https://privatelink.de/?https://praktikum.yandex.ru/cpp/