Как научиться программировать на языке C++ с нуля в кратчайшие сроки и с максимальной эффективностью.
Что такое C++ и для чего нужен этот язык?
C++ — это один из самых живучих языков программирования. Из всех более-менее известных (и при этом используемых) языков он наиболее старый. И это кажется весьма удивительным, ведь считается, что в мире программирования всё меняется очень быстро, и то, что было актуальным ещё вчера, сегодня признаётся устаревшим (на самом деле, вообще не так, но это совсем другая история). Так в чём же феномен C++? Почему уже есть такие замечательные языки как Java, C#, Python и многие другие, а C++ не просто живее всех живых, но ещё и пользуется огромным спросом на рынке труда.
Преимуществах языка C++:
- Огромная скорость. Быстрее только язык C и Assembler, на которых на текущий момент программируют, в основном, микроконтроллеры. Ни Java, ни C# даже рядом не стоят по производительности в сравнении с C++.
- Объектно-ориентированность. Это означает, что на C++ можно писать такие же гибкие и качественные программы с чистым кодом, как на Java или C#.
- Отличные возможности по работе с памятью. По этой причине C++ является абсолютно незаменимым при системном программировании.
- Кроссплатформенность. Один и тот же код можно с использованием соответствующего компилятора запустить на любой платформе, и он будет отлично работать.
- Универсальность. Может использоваться реально везде. Мне, если честно, даже трудно представить область, где он не подойдёт.
- Огромное сообщество разработчиков. Поскольку C++ уже много лет, то найти ответ на любой возникший вопрос не составит труда.Бесплатные библиотеки с открытым исходным кодом, ускоряющих и упрощающих разработку.
- Освоение C++ — этого своего рода посвящение в стан программистов. Даже при устройстве на работу PHP-разработчиком, если есть знание ещё и C++, то это является огромным козырем при устройстве на работу. Это подчёркивает, что соискатель действительно грамотный и понимает основы, а не просто научился машинально HTML-формы обрабатывать.
- Так же есть огромное количество вакансий, где напрямую требуются C++ программисты. Кстати, конкуренция среди них достаточная низкая, а зарплата, как следствие, высокая, поскольку хороших C++ разработчиков найти сложно (в отличие от тех же PHP-программистов).
- В конце концов, если интересно создание драйверов, операционных систем, компьютерных игр, то здесь без C++ никуда.
- Резюме: C++ обязан знать любой уважающий себя программист, хотя бы на уровне базовых вещей (как пример, отличать ссылки от указателей).
Содержание курса:
Введение
- Как наиболее эффективно проходить курс?
- Как работает язык C++ изнутри? Это очень важно понимать, поскольку такие базовые знания отличают дилетанта от профессионала.
- В какой среде разработки лучше писать код на C++? Как её скачать, установить (особенно важно, какие компоненты необходимы) и как настроить?
Основы программирования на C++
- Как пишутся программы на C++?
- Как правильно использовать комментарии?
- Что такое переменные, как они создаются и используются?
- Какие типы переменных есть в C++ и чем они отличаются друг от друга?
- Что такое константы и как с ними работать?
- Какие арифметические, логические и побитовые операции есть в C++ и как их использовать?
- Как работать с консолью?
- Как решить проблемы с кодировкой в консоли (не только на вывод, но и на ввод)?
- Что такое условный оператор и как он работает?
- Что такое оператор switch-case и когда его использовать?
- Что такое циклы и какие они есть в C++?
- Что такое цикл for, while и do-while и какая между ними разница?
- Что такое массивы, какие они бывают и, как и когда их использовать?
- Как работать с многомерными массивами?
- Что такое ссылки и для чего они нужны?
- Как создавать функции, как они работают изнутри, как они взаимодействуют со ссылками и многое-многое другое?
- Что такое область видимости переменных?
- Что такое статические переменные
- Что такое пространства имён, для чего нужны и как применяются?
- Что такое макросы?
- Как правильно разбивать код на разные файлы?
- Как собрать проект?
Работа с указателями
- Что такое указатели и чем они отличаются от ссылок?
- Как взаимодействуют между собой указатели и массивы?
- Как работают константы и указатели вместе?
- Как работать с массивами в параметрах функций?
- Что такое указатель на функцию, а также как и когда его использовать?
- Что такое динамические объекты?
- Как не допустить утечку памяти?
Объектно-ориентированное программирование
- Что такое объектно-ориентированное программирование и какие парадигмы в нём есть?
- Как создаётся класс в C++?
- Что такое конструкторы и деструкторы?
- Что такое методы (функции класса) и их перегрузка?
- Как правильно использовать .h и .cpp файлы?
- Что такое модификаторы доступа и как правильно их применять?
- Что такое дружественные функции и классы?
- Что такое статические поля и методы?
- Что такое перечисления?
- Что такое структуры?
- Что такое наследование и как его использовать в C++?
- Что такое виртуальные методы?
- Как делать перегрузку операторов?
- Что такое абстрактные классы и методы?
- Что такое шаблоны и как они используются?
Обработка исключений
- Что такое исключения и почему они так важны?
- Как обрабатываются исключения в C++?
- Как генерировать исключения?
- Как обрабатывать много исключений?
- Как создавать свои собственные исключения?
Стандартные классы в C++
- Как выполнять самые различные строковые операции?
- Что такое регулярные выражения, как их создавать и как использовать?
- Как выполнять разнообразные математические операции?
- Как считывать данные из файла?
- Как записывать данные в файл?
- Как использовать контейнеры – важнейшие классы, без которых не обходится ни одна мало-мальски серьёзная программа?
- Как быстро и легко осваивать новые классы, которые могут понадобиться Вам в процессе программирования?
Бонус. Программирование на C++ в Unreal Engine
Одной из основных областей применения языка C++ являются игры. Безусловно, на C++ можно создавать игры с нуля, однако, это разумно только для совсем простых игр, либо уж очень необычных игр. Для 3D-игр, которые достаточно сложны, разумнее использовать игровой движок. И самым подходящим для подавляющего большинства задач (по моему мнению и не только) является Unreal Engine. А вот там как раз используется C++. И очень многие мои ученики, когда просили записать курс по C++, практически всегда просили разобрать его использование в Unreal Engine.
Поэтому все, кто закажет основной курс, получат бесплатно и достаточно крупный Бонус «Программирование на C++ в Unreal Engine», который содержит 16 уроков общей продолжительностью около 6 часов. В рамках этих уроках Вы увидите создание игры на C++ в Unreal Engine.
Вот что Вы узнаете, посмотрев данный Бонус (всё нижеописанное, разумеется, создаётся на C++):
- Как вообще происходит программирование в Unreal Engine?
- В чём особенность программирования на C++ в Unreal Engine?
- Как создать базового персонажа?
- Как создать игрока?
- Как программируется анимация?
- Как создаётся GameMode?
- Как делаются компоненты?
- Как создаются виджеты?
- Как делаются игровые интерактивные объекты?
- Как создаются противники?
- Как создаётся искусственный интеллект?
- Как работать со звуками?
- Как создаются интерфейсы и как применяются?
- Как правильно пользоваться официальной документацией для решения любых возникающих задач?
Многое-многое другое.
Какие знания требуются для прохождения курса?
Никаких специальных знаний не требуется. Но, разумеется, элементарная компьютерная грамотность необходима: знать, что такое файл, уметь хотя бы на самом-самом базовом уровне работать в текстовых редакторах (например, в том же Word), знать элементарные термины (архив, папка, операционная система).
Никаких других знаний не требуется. Однако, если Вы уже знакомы с программированием, то это прекрасно, так как позволит Вам гораздо быстрее осваивать информацию, но ещё раз повторюсь, это необязательно.