Описание
Программирование на C++ с Нуля до Гуру [Михаил Русаков]
Что такое C++ и для чего нужен этот язык?
C++ — это один из самых живучих языков программирования. Из всех более-менее известных (и при этом используемых) языков он наиболее старый. И это кажется весьма удивительным, ведь считается, что в мире программирования всё меняется очень быстро, и то, что было актуальным ещё вчера, сегодня признаётся устаревшим (на самом деле, вообще не так, но это совсем другая история). Так в чём же феномен C++? Почему уже есть такие замечательные языки как Java, C#, Python и многие другие, а C++ не просто живее всех живых, но ещё и пользуется огромным спросом на рынке труда?
А всё дело в его неоспоримых преимуществах:
- Огромная скорость. Быстрее только язык C и Assembler, на которых на текущий момент программируют, в основном, микроконтроллеры. Ни Java, ни C# даже рядом не стоят по производительности в сравнении с C++.
- Объектно-ориентированность. Это означает, что на C++ можно писать такие же гибкие и качественные программы с чистым кодом, как на Java или C#.
- Отличные возможности по работе с памятью. По этой причине C++ является абсолютно незаменимым при системном программировании.
- Кроссплатформенность. Один и тот же код можно с использованием соответствующего компилятора запустить на любой платформе, и он будет отлично работать.
- Универсальность. Может использоваться реально везде. Мне, если честно, даже трудно представить область, где он не подойдёт.
- Огромное сообщество разработчиков. Поскольку C++ уже много лет, то найти ответ на любой возникший вопрос не составит труда.Бесплатные библиотеки с открытым исходным кодом, ускоряющих и упрощающих разработку.
Если C++ такой замечательный и универсальный, зачем тогда используются и другие языки?
И вот здесь мы подходим плавно к минусам этого языка:
- Программирование идёт более медленно, так как в C++ надо быть и более внимательным (чтобы не допустить ту же утечку памяти), и кода для одной и той же задачи надо написать немного больше, чем на Java или C#.
- Относительно медленная компиляция. В очень крупных проектах она может достигать даже нескольких минут (особенно обидно, когда компиляция завершается ошибкой из-за забытой точки с запятой).
- C++ — это очень сложный язык программирования. На моем счету около пары десятков языков программирования. Некоторые можно сказать, что уже мертвы (по типу ActionScript для Flash), другими я пользуюсь практически каждый день (PHP, JavaScript). Так вот из всех этих языков, C++ не просто сложнее любого другого, он намного сложнее.
Вывод отсюда очень простой. Язык C++ требуется там, где необходима высокая скорость работы программы, либо нужна активная работа с памятью. И таких задач великое множество, отсюда и его востребованность. Однако, там, где это неважно, уже используются другие языки программирования. Кстати, по этим же причинам крайне сложно найти крупный проект, где вообще не используется C++, или тот, где всё написано только на C++.
Нужно ли знать C++?
Однозначно, да!
Освоение C++ – этого своего рода посвящение в стан программистов. Даже при устройстве на работу PHP-разработчиком, если есть знание ещё и C++, то это является огромным козырем при устройстве на работу. Это подчёркивает, что соискатель действительно грамотный и понимает основы, а не просто научился машинально HTML-формы обрабатывать.
Так же есть огромное количество вакансий, где напрямую требуются C++ программисты. Кстати, конкуренция среди них достаточная низкая, а зарплата, как следствие, высокая, поскольку хороших C++ разработчиков найти сложно (в отличие от тех же PHP-программистов).
В конце концов, если интересно создание драйверов, операционных систем, компьютерных игр, то здесь без C++ никуда.
Резюме: C++ обязан знать любой уважающий себя программист, хотя бы на уровне базовых вещей (как пример, отличать ссылки от указателей).
Содержание
Курс состоит из 6 разделов
Введение
В данном разделе Вы узнаете:
- Как наиболее эффективно проходить курс?
- Как работает язык C++ изнутри? Это очень важно понимать, поскольку такие базовые знания отличают дилетанта от профессионала.
- В какой среде разработки лучше писать код на C++? Как её скачать, установить (особенно важно, какие компоненты необходимы) и как настроить?
После просмотра данного раздела Вы уже будете знать, что это за язык, как он работает, а также у Вас уже будет всё готово для написания свои первых программ на C++.
Основы программирования на C++
В этом разделе Вы узнаете:
- Как пишутся программы на C++?
- Как правильно использовать комментарии?
- Что такое переменные, как они создаются и используются?
- Какие типы переменных есть в C++ и чем они отличаются друг от друга?
- Что такое константы и как с ними работать?
- Какие арифметические, логические и побитовые операции есть в C++ и как их использовать?
- Как работать с консолью?
- Как решить проблемы с кодировкой в консоли (не только на вывод, но и на ввод)?
- Что такое условный оператор и как он работает?
- Что такое оператор switch-case и когда его использовать?
- Что такое циклы и какие они есть в C++?
- Что такое цикл for, while и do-while и какая между ними разница?
- Что такое массивы, какие они бывают и, как и когда их использовать?
- Как работать с многомерными массивами?
- Что такое ссылки и для чего они нужны?
- Как создавать функции, как они работают изнутри, как они взаимодействуют со ссылками и многое-многое другое?
- Что такое область видимости переменных?
- Что такое статические переменные
- Что такое пространства имён, для чего нужны и как применяются?
- Что такое макросы?
- Как правильно разбивать код на разные файлы?
- Как собрать проект?
После прохождения этого раздела Вы уже сможете писать несложные программы на языке C++.
Работа с указателями
Указатели – это неотъемлемая часть языка C++. Мне трудно представить серьёзный и грамотно написанный проект, где не использовались бы указатели. Поэтому работать с ними надо уметь обязательно, и как раз в этом разделе этим мы и займёмся.
Посмотрев данный раздел, Вы узнаете:
- Что такое указатели и чем они отличаются от ссылок?
- Как взаимодействуют между собой указатели и массивы?
- Как работают константы и указатели вместе?
- Как работать с массивами в параметрах функций?
- Что такое указатель на функцию, а также как и когда его использовать?
- Что такое динамические объекты?
- Как не допустить утечку памяти?
Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) – это самая популярная методика программирования, без которой немыслимо подавляющее большинство проектов не то, что средних и крупных, а даже маленьких. И сам язык C++, если ООП не использовать, становится бессмысленным (уж лучше тогда язык C использовать). Поэтому ООП надо обязательно знать любому, кто работает с C++. И как раз в этом разделе Вы и освоите ООП.
В этом разделе Вы узнаете:
- Что такое объектно-ориентированное программирование и какие парадигмы в нём есть?
- Как создаётся класс в C++?
- Что такое конструкторы и деструкторы?
- Что такое методы (функции класса) и их перегрузка?
- Как правильно использовать .h и .cpp файлы?
- Что такое модификаторы доступа и как правильно их применять?
- Что такое дружественные функции и классы?
- Что такое статические поля и методы?
- Что такое перечисления?
- Что такое структуры?
- Что такое наследование и как его использовать в C++?
- Что такое виртуальные методы?
- Как делать перегрузку операторов?
- Что такое абстрактные классы и методы?
- Что такое шаблоны и как они используются?
После просмотра данного раздела Вы сможете создавать относительно сложные проекты с любой по сложности иерархией классов.
Обработка исключений
В этом разделе Вы узнаете:
- Что такое исключения и почему они так важны?
- Как обрабатываются исключения в 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?
- Как делаются компоненты?
- Как создаются виджеты?
- Как делаются игровые интерактивные объекты?
- Как создаются противники?
- Как создаётся искусственный интеллект?
- Как работать со звуками?
- Как создаются интерфейсы и как применяются?
- Как правильно пользоваться официальной документацией для решения любых возникающих задач?
Многое-многое другое.
Это очень ценный Бонус для абсолютно всех, кто увлекается разработкой игр в Unreal Engine.
Но даже это ещё не всё. Сам курс представляет из себя целую систему эффективного обучения.
Отзывы
Отзывов пока нет.