Курсы по C/C++ [Михаил Русаков] Программирование на C++ с нуля до гуру (2025)

  • Автор темы Slivkin2292
  • Дата начала
Slivkin2292
Slivkin2292
Administrator
Команда форума
Premium
18 Дек 2018
19,907
110,186
113
#1
777-1-png.63086

Что такое C++ и для чего нужен этот язык?
C++ — это один из самых живучих языков программирования. Из всех более-менее известных (и при этом используемых) языков он наиболее старый. И это кажется весьма удивительным, ведь считается, что в мире программирования всё меняется очень быстро, и то, что было актуальным ещё вчера, сегодня признаётся устаревшим (на самом деле, вообще не так, но это совсем другая история). Так в чём же феномен C++? Почему уже есть такие замечательные языки как Java, C#, Python и многие другие, а C++ не просто живее всех живых, но ещё и пользуется огромным спросом на рынке труда?

А всё дело в его неоспоримых преимуществах:
  1. Огромная скорость. Быстрее только язык C и Assembler, на которых на текущий момент программируют, в основном, микроконтроллеры. Ни Java, ни C# даже рядом не стоят по производительности в сравнении с C++.
  2. Объектно-ориентированность. Это означает, что на C++ можно писать такие же гибкие и качественные программы с чистым кодом, как на Java или C#.
  3. Отличные возможности по работе с памятью. По этой причине C++ является абсолютно незаменимым при системном программировании.
  4. Кроссплатформенность. Один и тот же код можно с использованием соответствующего компилятора запустить на любой платформе, и он будет отлично работать.
  5. Универсальность. Может использоваться реально везде. Мне, если честно, даже трудно представить область, где он не подойдёт.
  6. Огромное сообщество разработчиков. Поскольку C++ уже много лет, то найти ответ на любой возникший вопрос не составит труда.Бесплатные библиотеки с открытым исходным кодом, ускоряющих и упрощающих разработку.
Если C++ такой замечательный и универсальный, зачем тогда используются и другие языки?

И вот здесь мы подходим плавно к минусам этого языка:
  1. Программирование идёт более медленно, так как в C++ надо быть и более внимательным (чтобы не допустить ту же утечку памяти), и кода для одной и той же задачи надо написать немного больше, чем на Java или C#.
  2. Относительно медленная компиляция. В очень крупных проектах она может достигать даже нескольких минут (особенно обидно, когда компиляция завершается ошибкой из-за забытой точки с запятой).
  3. C++ — это очень сложный язык программирования. На моем счету около пары десятков языков программирования. Некоторые можно сказать, что уже мертвы (по типу ActionScript для Flash), другими я пользуюсь практически каждый день (PHP, JavaScript). Так вот из всех этих языков, C++ не просто сложнее любого другого, он намного сложнее.
Вывод отсюда очень простой. Язык C++ требуется там, где необходима высокая скорость работы программы, либо нужна активная работа с памятью. И таких задач великое множество, отсюда и его востребованность. Однако, там, где это неважно, уже используются другие языки программирования. Кстати, по этим же причинам крайне сложно найти крупный проект, где вообще не используется C++, или тот, где всё написано только на C++.



Содержание:
Курс состоит из 6 разделов

Введение
В данном разделе Вы узнаете:
Как наиболее эффективно проходить курс?
  1. Как работает язык C++ изнутри? Это очень важно понимать, поскольку такие базовые знания отличают дилетанта от профессионала.
  2. В какой среде разработки лучше писать код на C++? Как её скачать, установить (особенно важно, какие компоненты необходимы) и как настроить?
После просмотра данного раздела Вы уже будете знать, что это за язык, как он работает, а также у Вас уже будет всё готово для написания свои первых программ на C++.

Основы программирования на C++
В этом разделе Вы узнаете:
  1. Как пишутся программы на C++?
  2. Как правильно использовать комментарии?
  3. Что такое переменные, как они создаются и используются?
  4. Какие типы переменных есть в C++ и чем они отличаются друг от друга?
  5. Что такое константы и как с ними работать?
  6. Какие арифметические, логические и побитовые операции есть в C++ и как их использовать?
  7. Как работать с консолью?
  8. Как решить проблемы с кодировкой в консоли (не только на вывод, но и на ввод)?
  9. Что такое условный оператор и как он работает?
  10. Что такое оператор switch-case и когда его использовать?
  11. Что такое циклы и какие они есть в C++?
  12. Что такое цикл for, while и do-while и какая между ними разница?
  13. Что такое массивы, какие они бывают и, как и когда их использовать?
  14. Как работать с многомерными массивами?
  15. Что такое ссылки и для чего они нужны?
  16. Как создавать функции, как они работают изнутри, как они взаимодействуют со ссылками и многое-многое другое?
  17. Что такое область видимости переменных?
  18. Что такое статические переменные
  19. Что такое пространства имён, для чего нужны и как применяются?
  20. Что такое макросы?
  21. Как правильно разбивать код на разные файлы?
  22. Как собрать проект?
После прохождения этого раздела Вы уже сможете писать несложные программы на языке C++.

Работа с указателями
Указатели – это неотъемлемая часть языка C++. Мне трудно представить серьёзный и грамотно написанный проект, где не использовались бы указатели. Поэтому работать с ними надо уметь обязательно, и как раз в этом разделе этим мы и займёмся.
Посмотрев данный раздел, Вы узнаете:
  1. Что такое указатели и чем они отличаются от ссылок?
  2. Как взаимодействуют между собой указатели и массивы?
  3. Как работают константы и указатели вместе?
  4. Как работать с массивами в параметрах функций?
  5. Что такое указатель на функцию, а также как и когда его использовать?
  6. Что такое динамические объекты?
  7. Как не допустить утечку памяти?
Объектно-ориентированное программирование
Объектно-ориентированное программирование (ООП) – это самая популярная методика программирования, без которой немыслимо подавляющее большинство проектов не то, что средних и крупных, а даже маленьких. И сам язык C++, если ООП не использовать, становится бессмысленным (уж лучше тогда язык C использовать).
Поэтому ООП надо обязательно знать любому, кто работает с C++. И как раз в этом разделе Вы и освоите ООП.
В этом разделе Вы узнаете:
  1. Что такое объектно-ориентированное программирование и какие парадигмы в нём есть?
  2. Как создаётся класс в C++?
  3. Что такое конструкторы и деструкторы?
  4. Что такое методы (функции класса) и их перегрузка?
  5. Как правильно использовать .h и .cpp файлы?
  6. Что такое модификаторы доступа и как правильно их применять?
  7. Что такое дружественные функции и классы?
  8. Что такое статические поля и методы?
  9. Что такое перечисления?
  10. Что такое структуры?
  11. Что такое наследование и как его использовать в C++?
  12. Что такое виртуальные методы?
  13. Как делать перегрузку операторов?
  14. Что такое абстрактные классы и методы?
  15. Что такое шаблоны и как они используются?
После просмотра данного раздела Вы сможете создавать относительно сложные проекты с любой по сложности иерархией классов.

Обработка исключений
В этом разделе Вы узнаете:
  1. Что такое исключения и почему они так важны?
  2. Как обрабатываются исключения в C++?
  3. Как генерировать исключения?
  4. Как обрабатывать много исключений?
  5. Как создавать свои собственные исключения?
Просмотрев этот раздел, Вы сможете грамотно обрабатывать самые различные исключительные ситуации, как в чужих библиотеках, так и при написании собственных.

Стандартные классы в C++
C++ не был бы таким замечательным, если бы не содержал огромное количество классов, где уже решены наиболее часто встречающиеся задачи перед программистами. И как раз некоторые из этих классов мы и рассмотрим в этом разделе.

В данном разделе Вы узнаете:
  1. Как выполнять самые различные строковые операции?
  2. Что такое регулярные выражения, как их создавать и как использовать?
  3. Как выполнять разнообразные математические операции?
  4. Как считывать данные из файла?
  5. Как записывать данные в файл?
  6. Как использовать контейнеры – важнейшие классы, без которых не обходится ни одна мало-мальски серьёзная программа?
  7. Как быстро и легко осваивать новые классы, которые могут понадобиться Вам в процессе программирования?

Упражнения
По моему мнению, невозможно обучаться программированию без практики. В данном курсе Вы будете всё понимать, но, чтобы научиться самому писать программы, а не просто понимать, что происходит, нужно обязательно выполнять задания. И почти к каждому уроку курса идёт по несколько упражнений для закрепления материала из урока.
Так же к урокам идёт исходный код программ, который крайне полезно открыть, запустить и попытаться изменять, наблюдая за конечным результатом и за тем, что изменилось.

Бонус
Программирование на C++ в Unreal Engine

Одной из основных областей применения языка C++ являются игры. Безусловно, на C++ можно создавать игры с нуля, однако, это разумно только для совсем простых игр, либо уж очень необычных игр. Для 3D-игр, которые достаточно сложны, разумнее использовать игровой движок. И самым подходящим для подавляющего большинства задач (по моему мнению и не только) является Unreal Engine. А вот там как раз используется C++. И очень многие мои ученики, когда просили записать курс по C++, практически всегда просили разобрать его использование в Unreal Engine.


Скачать [Михаил Русаков] Программирование на C++ с нуля до гуру (2025)


Чтобы скачать курс, новым пользователям, необходимо Пройти Регистрацию
Если у вас уже есть аккаунт Войти на Форум