Онлайн-обучение

Курс C++ Basics

Стать С++-разработчиком? С ITEA!
Обучение С++ с нуля позволит в скором времени создавать игры, программное обеспечение, прикладные приложения и нейросети.

КОГДА

Старт

Идет набор на курс

СКОЛЬКО

16 занятий / 2 месяца

2-3 раза в неделю

с 20:00 до 23:00 по МСК

ЦЕНА

319 USD

239 USD

Доступна оплата частями

Возможность заморозить обучение

Курс С++ для начинающих проходит так:

Программа курса

Вебинар

Занятия проходят в онлайн-формате. Каждый студент подключается к стриму, где может задать вопрос преподавателю в режиме реального времени и получить развернутый ответ. Все уроки для начинающих записываются, поэтому запись любого урока всегда можно посмотреть в личном кабинете.

Домашнее задание

Обучение С++ с нуля в ITEA предполагает выполнение домашних заданий после завершения тематических блоков по программированию. Так ты закрепляешь пройденный материал и получаешь больше практических навыков.

Работа с ментором

Ментор сопровождает группу во время занятий и после уроков. Он консультирует по вопросам домашних заданий, составления портфолио и выбора дальнейшего направления. Именно ментор приходит на помощь, когда у студентов возникают трудности.

Курсовой проект

В конце курса ты подготовишь курсовой проект, который потом сможешь добавить в свое портфолио. Изучение основ C++ вместе с ITEA — просто, эффективно и интересно!

Первая работа в IT?
Вместе с ITEA!

О трудоустройстве

Индивидуальный план обучения для каждого студента

Помощь в составлении резюме и портфолио

Консультации с ментором

Помощь с трудоустройством по завершении комплексной образовательной программы.

О трудоустройстве

На курсе ты научишься:

По какой формуле проходит обучение С++ с нуля:

Эффективный и удобный формат

Для изучения основ программирования тебе нужно подключиться к прямой трансляции занятия — из любого места и с любого устройства. Задавай вопросы преподавателю, общайся по теме с одногруппниками и получай развернутую обратную связь. Пропускаешь занятие? Записи всех онлайн-эфиров всегда доступны в личном кабинете.

Полный упор на практические и домашние задания

Для изучения основ программирования тебе нужно подключиться к прямой трансляции занятия — из любого места и с любого устройства. Задавай вопросы преподавателю, общайся по теме с одногруппниками и получай развернутую обратную связь. Пропускаешь занятие? Записи всех онлайн-эфиров всегда доступны в личном кабинете.

Стажировка и трудоустройство

Мы не оставляем своих выпускников! После завершения курса C++ с нуля карьерный центр академии регистрирует студентов на портале JunGo, где собраны предложения от компаний-партнеров ITEA. С помощью портала наши студенты быстро находят место для прохождения стажировки и трудоустройства.

Небольшие группы до 15 учеников

Мы не оставляем своих выпускников! После завершения курса C++ с нуля карьерный центр академии регистрирует студентов на портале JunGo, где собраны предложения от компаний-партнеров ITEA. С помощью портала наши студенты быстро находят место для прохождения стажировки и трудоустройства.

Стабильная работа?
С ITEA!

Интерактивные онлайн-курсы, которые ведут лучшие преподаватели — уникальная возможность прокачать скиллы в новом направлении и освоить перспективную карьеру. ITEA поможет изменить твою жизнь в лучшую сторону! * Данные согласно ресурсу professii-online.ru  

Записаться на курс

Junior

от 1 года
$400+

Middle

от 2–3 года опыта
$900+

Senior

от 4 лет опыта
$1300+
Записаться на курс

План обучения на курсе C++:

1. Немного истории
  • Что такое язык программирования
  • Машинные языки
  • Низкоуровневые языки (язык ассемблера)
  • Высокоуровневые языки
  • Трансляторы
  • Компиляция
  • Интерпретация
  • Парадигмы программирования
  • Модульная парадигма программирования
  • Функциональная парадигма программирования
  • Обобщенная парадигма программирования
  • Объектно ориентированная парадигма программирования
  • История С++
2. Основы системы контроля версии GIT
  • Что такое система контроля версии и что она решает
  • Основные элементы git
  • Что такое коммит
  • Что такое ветка
  • Способы создания репозитория. Виды сервисов, позволяющие создать удаленный репозиторий
  • Базовые команды git
  • Практика. Создания репозитория локально. Создания репозитория на удаленном сервере
3. Состав языка С++
  • Пример простой программы С++
  • Базовые способы собрать приложение
  • Алфавит языка
  • Что такое лексемы
  • Что такое идентификатор как важная составляющая программы
  • Что такое ключевые слова
  • Комментарии (однострочные, многострочные)
  • Что такое литера. Виды литералов. И зачем они нужны в коде
  • Чем отличаются строковый литерал от остальных типов литералов
  • Что такое инструкции
  • Что значит синтаксическая ошибка. Пример простой синтаксической ошибки
  • Что такое семантическая ошибка. Пример семантической ошибки и возможные ее последствия
4. Переменные и типы данных
  • Что такое переменная. Синтаксис объявления переменной
  • Тип данных. Что такое строгая типизация. Зачем переменной нужен тип данных
  • Целочисленный тип данных
  • Символьные типы
  • Начиная с С++11, целочисленные типы с фиксированными размером, какие проблемы они решают
  • Что такое алиас на тип данных. Пример с описанием typedef.
  • Понимания типов size_t, time_t — это просто алиас на встроенный тип
  • Тип void как маркер разного контекста. Пример контекста использования этого типа
  • Логический тип данных
  • Вещественные типы данных. Возможные подводные камни представления в памяти
  • Простой пример на ассемблере способа представления целочисленных типов и вещественных типов
  • Способы объявления переменных. Инициализация переменных.
  • Проблема неинициализированных переменных
  • Оператор sizeof для получения размера переменных и типов
  • Способы инициализации переменных до С++11 и универсальная инициализация начиная с С++11 как средство решения проблем старой инициализации
  • Автоматический вывод типа. Ключевое слово auto и decltype
  • Константы
  • Способы объявления констант
  • Что такое свертка констант. Пример С++-кода с объявлением констант и оптимизированного ассемблерного кода
5. Основные операции С++
  • Виды операторов (унарный, бинарный, тернарный). Их синтаксис
  • Неявное преобразование при операторе присвоения. Что такое срезка.
  • Что такое сужающее преобразование. Проблема знакового и беззнакового преобразования
  • Явное преобразования типов (С-подход и С++-подход)
  • Арифметические операции
  • Проблема арифметических операций. Целочисленное деление на ноль, переполнение и т.д.
  • Смешанные выражения. Приоритет операций
  • Автоматический вывод типа как решение проблемы переполнения в арифметических выражениях
  • Временная переменная как результат промежуточного вычисления выражения. Как выглядит временная переменная в сгенерированном ассемблерном коде (простое описание)
  • Базовые понятия Rvalue и Lvalue
  • Составной оператор
  • Пост- и пре-инкремент и декремент. В чем отличие между пре- и пост- операцией
  • Операторы отношения между операндами. Возможные подводные камни
  • Логические операции
  • Битовые операции. Что такое установка бита, что такое сброс бита. Что такое little-endian и big-endian. Что такое битовые маски, пример битовых масок до С++11 и начиная с С++11
  • Описание разницы между логическим сравнением с применением логических операторов {|| &&} и битовыми операциями {| &}
  • Арифметические операции, применимые к типу char и разница с выводом на поток символьного типа и целочисленного типа
  • Целочисленный оператор «остаток от деления». Рассмотрения примера ошибочной путаницы между знаковыми и беззнаковыми типами на сгенерированном ассемблерном коде
6. Операторы, управляющие ходом выполнения программы
  • Условный оператор if. Пример возможных проблем с висячими else.
  • Разные подходы с написаниям оператора if во избежание спагетти-кода
  • Что такое область видимости. Что такое блок
  • Оператор выбора switch. Проблема fall through. В чем отличие между оператором выбора switch и логическим оператором if
  • Что такое compile time и run time-выражение на примере case-веток оператора выбора switch
  • Оператор цикла for. Способы объявления цикла for. Зачем нужен вечный цикл. Возможные проблемы знакового и беззнакового сравнения и их последствия
  • Оператор цикла while
  • Оператор цикла do while. Использование do while, для решения проблем с ветвлением кода с использованием оператора if
  • Тернарный оператор
  • Простое понимание точки следования на примере оператора запятой
7. Массивы
  • Что такое массив и в чем его преимущества
  • Объявления массивов. Способы указания размера массива
  • Инициализация массива. Возможные ошибки при инициализации массива
  • Массив переменной длины, как расширение компилятора. Флаг компиляции — pedantic
  • Массив символов vs строки. Способы объявления. Что такое символ «терминальный ноль». Возможные проблемы при инициализации символьного массива
  • Доступ к элементам массива
  • Что такое выход за границы массива. Что такое buffer overflow
  • Циклы как способ обхода, обработки и вывода массива на экран
  • Частые ошибки при выборе типа для переменной цикла при работе с массивом
  • Размер массива. Как получить количество элементов массива
  • С++11 range for как способ удобной работы с массивом. В чем отличие range for и других циклов и какие проблемы решает range for в отличии от других циклов
  • Отличие символьного массива от других типов массивов. Как правильно обходить символьный массив в циклах. Как вывести символьный массив на экран. Как считывать символы введенные с клавиатуры в символьный массив и возможные проблемы
  • Многомерные массивы. Примеры представления многомерного массива одномерным массивом
8. Указатели
  • Базовые понятия памяти стек
  • Что такое локальные переменные и как переменные создаются на стеке.
  • Что такое автоматическое управление памятью
  • Базовое понятие указателя
  • Объявление указателей
  • Способы инициализации указателя. Что такое невалидный указатель.
  • Что такое разыменования указателя и возможные проблемы. nullptr как правильный литерал для инициализации указателя. Что значит понятие «указатель на тип». Размер указателя, модели памяти разных ОС и платформ. Почему для указателя правильный тип есть void*
  • Что такое константный указатель и указатель на const. Пример возможных ошибок
  • Арифметика с указателями. Чем отличаются арифметика с указателями от арифметики с переменными
  • Что общего между массивом и указателем. Как обходить массив с помощью указателя. Что означает указатель на элемент за последним элементом массива и зачем так делать
9. Функции
  • Что такое функция и какие она решает проблемы в коде
  • Синтаксис функции
  • Базовое понятие что такое объявление и определение функции. Пример отличия
  • Что такое списки параметров. Способ вызова функции. Задание значения по умолчанию для параметра
  • Возвращаемое значение из функции. auto как автоматический вывод возвращаемого значения. Проблемы при автоматическом выводе типа.
  • Тип void как маркер невозвращаемого значения функции
  • Передача параметров по значению
  • Что такое фактические и формальные параметры
  • Неправильное использования auto в качестве параметров функции и последующее расширения компиляторов
  • Что такое глобальные переменные. Проблема сокрытия имен глобальных и локальных переменных
  • Передача по указателю. Способ возврата нескольких значений с функции
  • Что такое ссылки. В чем отличие ссылки от указателя
  • Ссылка как часть интерфейса функции
  • Какие проблемы решает ссылка в сравнении с указателем как параметр функции. Какие преимущества константной ссылки. Почему можно передавать Rvalue как аргумент константной ссылки
  • Пример как сделать ссылку невалидной
  • Стек и вызов функций
  • Соглашение о вызове функций
  • Массивы как параметры функции. Способы объявления массива как параметра функции и частые ошибки. Проблема получения количества элементов массива в функции
  • Рекурсия. Inline-функции
  • Что такое перегрузка функций. Что такое mangling имен функции на примере генерации ассемблерного кода
  • Почему перегрузка недоступна в языке С. Простое описания ключевого слово extern «C» как пример описания перегрузки
  • Что такое указатель на функцию и какие решает проблемы передача функции как параметр функции на примере алгоритма сортировки
  • Базовые понятия что такое lambda как замена указателю на функцию.
  • Что такое std::function
  • Проблемы при возврате локальных переменных с функции по ссылке или указателю
  • Снятие константности с аргумента использования std::const_cast
10. Пространства имен
  • Что такое пространства имен
  • Что такое вложенные пространства имен
  • Новые возможности объявления вложенных пространств имен в С++17

Преподаватели курса:

Команда ITEA собрала лучших практиков: руководителей, senior-специалистов и экспертов с многолетним опытом

Software Engineer

Роман Ткачик

Более 12 лет опыта. Работал с различными проектами, включая сетевые проекты, встраиваемые устройства, десктопные и веб-приложения. Обладатель сертификата AZ-300 Azure Architecture Technologies Exam Prep 2020. Писал и поддерживал тесты функциональный и системной интеграции, а также тесты автоматизации для Windows и веб-приложений.

Senior Software Development Engineer

Николай Солянко

Более 9 лет опыта. Занимал должность Software engineer в Ukrgaztech, где разрабатывал приложения и работал с данными, используя библиотеку Qt. Также был Lead Engineer Samsung в R&D Institute Ukraine, где работал с C/C++, EFL framework и Tizen IDE.

Успей забронировать свое место в группе

Введите номер телефона в формате +7-916-.., если ваш номер 8-916-.
Тебе могут подойти эти курсы:
Расписание курсов
Отвечаем на самые часто задаваемые вопросы
Не будет в курсе много теории? Я получу практические знания?
Информация без практического закрепления долго не держится в памяти. Поэтому после получения новых знаний, наши студенты сразу применяют их на практике.

Преподаватель помогает им справиться с задачами и отвечает на вопросы, которые могут возникнуть. Поэтому тебя ожидает практика на занятиях, в домашних заданиях, а также при работе с собственным проектом в конце курса.
Если я делаю паузу в обучении (например, по болезни), могу ли я восстановиться? Или время и деньги будут потеряны?
Если ты был вынужден временно прекратить обучение — не нужно снова возвращаться к самому началу. Ты всегда можешь продолжить с того же места, где остановился. Детали восстановления расскажет наш менеджер.
Как происходит процесс трудоустройства в ITEA после прохождения курса и получения сертификата?
Студенты, которые набрали максимальное количество баллов в ходе обучения и прошли программу Roadmap, получают специальную форму резюме, по которой мы сотрудничаем с нашими партнерами.

Мы также проводим проверку резюме, сопроводительных писем и даем консультации, если возникают вопросы. Наш карьерный центр мотивирует и поддерживает каждого кандидата до тех пор, пока он не выберет для себя лучшее предложение.
Будет ли преподаватель помогать мне с решением практических задач: давать советы, смотреть скриншоты, объяснять то, что я не понял?
Да. Преподаватель всегда на связи, чтобы направить студента и при необходимости исправить его. Он основывает свое обучение на собственном опыте и приводит примеры из собственной практики. Преподаватель не движется дальше по программе, пока студенты не усвоят материал на нужном уровне.
Есть ли возрастные ограничения на прохождение курса?
Курсы нацелены на аудиторию в возрасте от 18 лет.
Нужно иметь предварительную подготовку в рамках вашего обучения?
Минимальные требования указаны на странице каждого курса. Чаще всего базовые курсы программирования не требуют специальной подготовки. Для продвинутого обучения достаточно материала предыдущего курса.
Какой уровень английского нужен для трудоустройства на позицию Junior?
Уровень английского напрямую зависит от вакансии. Для многих Junior-специалистов английский уровня Intermediate будет преимуществом, однако для некоторых вакансий достаточно уровня Elementary.

В обработке...