Ресурсы по C++

Подборка справочников, курсов и видео по С++. Акцент сделан на англоязычный материал в силу предпочтений автора подборки. Имеется краткий анализ сред разработки. Если вам интересен материал по простому C, то обратитесь к первоначальному варианту статьи на сайте ТехноФрактала. Позднее я сделала чистку обзора.

Справочники по C++ (eng)

cplusplus.com/doc - "These tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away."
cplusplus.com/reference - "Standard C++ Library reference"
cplusplus.com/articles - Different articles

en.cppreference.com - С++ reference

TutorialsPoint.com/cpp_standard_library - "C++ Standard Library"

The C++ Annotations (icce.rug.nl) - University of Groningen (Netherlands), 1994-2017

GeeksforGeeks.org - один из разделов посвящён C++

programiz.com/cpp-programming - "Learn C++ Programming". Есть небольшой обзор библиотек, нацеленный на начинающего программиста.

 

Справочники по C++ (ru)

ru.cppreference.com - Справка по С++, русский вариант

.NET Code (netcode.ru) - "Официальный сайт справочников World C++, World C#, ASM World". Включает курс "C++ для начинающих", FAQ и множество статей. Сайт, похоже, уже давно не обновлялся.

 

Курсы свободного доступа по C++ (eng)

hackr.io - отзывы о курсах с прямыми ссылками на них

курсы на сайтах

CodesDope (codesdope.com) - great resource for beginners. Include practice, discussion and blog with articles. - курс хороший, но огорчает большое количество опечатков в простых словах.
TutorialsPoint.com/cplusplus - "Learn C++". Сайт наших индийских друзей. В уроках имеются песочницы. На сайте присутствует и отдельный online-компилятор, который можно держать загруженным в отдельном окне.
LearnCpp.com - "Tutorials to help you master C++ and object-oriented programming" "LearnCpp.com is a free website devoted to teaching you how to program in C++. Whether you’ve had any prior programming experience or not, the tutorials on this site will walk you through all the steps to write, compile, and debug your C++ programs, all with plenty of examples. "
CProgramming.com - "Your resource for C and C++" Turorials, References, Practice
CS107: C++ Programming (learn.saylor.org) - курс, построенный на видео и статьях разных людей, которые можно найти и в других местах. Здесь это упорядочено. Возможно, что это перечень ресурсов для где-то идущих очных курсов.
C9 Lectures: Stephan T. Lavavej - Core C++ (channel9.msdn.com, 2012) - курс в виде профессионального видеоподкаста на Channel 9 (Microsoft) На сайте можно найти и другие подобные подкасты
DEV-HQ (C++ Tutorials) - нечто среднее между справочником и курсом
WikiBooks (C++ Programming)
C++ tutorial (w3schools.in) - объяснение короткое, только самая суть. Упор делается на самостоятельный разбор примеров. Лучше использовать как дополнение к какому-то другому курсу или чтобы быстро восстановить в памяти когда-то известное. Также хорошо подойдёт тем, кто уже имеет серьёзный опыт работы с другими языками и хочет быстро выучить С++ без чтения длинных мануалов.
CForBeginners.com (С++) - сайт, похоже, в процессе наполнения. Кроме самого курса есть разделы, посвящённые алгоритмам, структурам данных, тестам и примерам программ.
Computer Science: Introduction to Programming in C++ (mathbits.com) - статьи очень наглядны, по-максимуму используются все средства форматирования текста.
C++ Tutorial – Learn C++ Programming with examples (beginnersbook.com)

learn-cpp.org - курс включает в себя C++-песочницу online. Этот раздел сайта в данный момент только разрабатывается. К сентябрю 2017 готовы всего 2 первых урока и частично 3 последних. Песочница не работает. Курс пополняется силами разнозненных энтузиастов и поэтому медленно. Но к тому времени, когда вы читаете эти строки, возможно, там уже будет достойное содержимое.

MIT Open CourewareIntroduction to C++ - level: Undergraduate, as taught in 2011
From description: "This is a fast-paced introductory course to the C++ programming language. It is intended for those with little programming background, though prior programming experience will make it easier, and those with previous experience will still learn C++-specific constructs and concepts."

 

YouTube

C++ Programming (1:10:32, 2014, Derek Banas)
C++ Tutorials From Basic to Advance (9:13:04, 2017, Easy Programming). Среда CodeBlocks
C++ Tutorial | Learn C++ programming (7:28:29, 2016, ProgrammingKnowledge). Среда CodeBlocks. В речи слышен сильный акцент.

Learn C++ for Beginners - плейлист от littleblackbelt (9 видео, 2016). В качестве редактора используется Notepad++
Eg Beginners C++ Series - плейлист от Ebonygeek45 (19 видео, 2012). Среда CodeBlocks
C++ Programming Tutorials - плейлист от thenewboston (29 видео, 2008-09). Среда Dev-C++
C++ Programming Tutorials - плейлист от thenewboston (73 видео, 2011). Среда CodeBlocks
C++ GUI with Qt - плейлист от thenewboston (14 видео, 2012). Среда QT Creator
C++ Programming Video Tutorials For Beginners - плейлист от LearningLad (143 видео, 2013). Среда CodeBlocks
C++ Object Oriented Programming Video Tutorials For Beginners - плейлист от LearningLad (91 видео, 2014). Среда CodeBlocks
C++ Tutorial for Beginners - плейлист от Cave of Programming (78 видео, 2014-15). Среда Eclipse
C++ Programming Language - плейлист от Naresh i Technologies (индийский университет) (67 видео, 2017). Объяснения на доске
C++ Tutorials in Animated Way - плейлист от Learn Programming In Animated Way (69 видео, 2016-17). Необычный подход. Теория объясняется на импровизированной доске в мультяшной форме. Под музыку но без озвучки. Для демонстрации примеров используется CodeBlocks.
C++ Programming Tutorial for Beginners (For Absolute Beginners) - плейлист от ProgrammingKnowledge (57 видео, 2014-17). Среда CodeBlocks. В речи слышен сильный акцент.
C++ Tutorial - Absolute n00b Spoonfeed - плейлист от antiRTFM (75 видео, 2008-09). Среда Visual Studio 2008. Разрешение видеороликов от 240 до 480p (попросту говоря, картинка размытая).

Beginners C and C++ Video Tutorial - плейлист от Chris Efron (115 видео, 2013)

О том, как можно программировать на C++ даже в Notepad++, можете посмотреть подборку видео на смежной странице.

 

Интересная статья:
The Ultimate Question of Programming, Refactoring, and Everything (software.intel.com) -42 практических совета для С++ разработчиков, которые помогут избежать типичных ошибок.

 

Курсы с зачислением (eng)

Более серьёзные курсы, требующие зачисления. Обычно сами курсы бесплатны, за денежку можно приобрести сертификат и некоторые другие необязательные для обучения деликатесы. Курсы со сравнительно низким рейтингом привожу, но окрашиваю в серый цвет.

edx.org
- Introduction to C++ - Introductory, Microsoft, 4 weeks * 3-5 h/w, IDE Visual Studio
From review: "This course gives a good introduction to C++ programming with Visual Studio and does not take a lot of time to finish, the content was not difficult to understand and there were some amusing moments."

- Intermediate C++ - Intermediate, Microsoft, 4 weeks * 5-7 h/w, IDE Visual Studio
From description: "This course is the second in a three-part series designed to teach students some of the most important C++ concepts. This part focuses on how C++ interacts with memory, featuring concepts like pointers/memory addresses, heap memory management, and writing/reading files."

- Advanced C++ - Advanced, Microsoft, 4 weeks * 2-4 h/w, IDE Visual Studio

- Programming Basics - Introductory, IITBombayX, 9 weeks, 8 hours/week, rating 3.5/5

 

coursera.org
C++ For C Programmers, Part A ( Part B) - 18 hours, taught by Ira Pohl, rating 4.4/5
From description: " This course is for experienced C programmers who want to program in C++. The examples and exercises require a basic understanding of algorithms and object-oriented software."

 

udacity.com
C++ For Programmers - Intermediate, taught by Catherine Gamboa, 3 weeks
From description: "[The course] is designed for students who are familiar with a programming language and wish to learn C++."

 

Udemy (review page)
=== бесплатные ===
C++ Tutorial for Complete Beginners - Beginner, instructor John Purcell, 2015, rating 4.3/5, IDE Eclipse
[18 hours video, 2 articles, no exercises and quizes]

C++, Short and Sweet, Part 1 - Beginner, instructor Jeremy Siek, 2012, rating 4.3/5, IDE Eclipse
From description: "This course is for beginners who want to get started writing programs in C++"
[5,5 hours video, 1 article, no exercises and quizes]
(О части 2 ничего не известно)

Beginning C++ Templates - Beginner, instructor Umar Lone, 2018, rating 4.3/5, IDE Visual Studio
From description: "C++ templates are used for creating high performance algorithms and classes. Most of the high performance libraries, such as Active Template Library, Windows Template Library, Adaptive Communication Environment, etc, have been implemented through C++ templates. Templates are a challenge for any novice C++ programmer. But, this course will help you understand the syntax of templates. It gently takes you through the basics and then slowly builds upon the advanced concepts such as specialization, variadic templates, etc."
[1,5 hours video, 4 articles, assignments]

 

=== коммерческие ===
Beginning C++ Programming - From Beginner to Beyond - created by Tim Buchalka's Learn Programming Academy, Frank J. Mitropoulos, 2019, rating 4.6, IDE CodeLight
From description: "Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills needed for game, system, and application development.."
Некоторые темы: Pointers, Inheritance, Polymorphism, I/O Streams, STL. Чёткий голос. Прекрасная поддержка на форуме. По моему мнению, лучший курс по C++ на Udemy.
[39.5 hours video, 3 articles, 37 coding exercises]

Learn C++ Programming -Beginner to Advance- Deep Dive in C++ - created by Abdul Bari, 2019, rating 4.7, IDE Xcode (MaC)
From description: "Classroom and Hands-on sessions- Features of C++ 11 , Exception Handling and STL - for Both Academics and Industry."
Основные объяснения у доски. К Xcode объяснения не привязаны, можно использовать любую другую IDE. Индийский анцент.
Некоторые темы: OOP, Exception, Template functions and classes, Preprocessor directives, Destructors, I/O Streams, STL.
[27.5 hours video, 48 coding exercises]
+
Mastering Data Structures & Algorithms using C and C++ - created by Abdul Bari, 2019, rating 4.7, IDE Xcode (MaC)
From description: "Learn, Analyse and Implement Data Structure using C and C++."
[53.5 hours video, several quizes]

C++ programming step by step from beginner to advance level - created by Shibaji Paul, 2019, rating 4.6, IDE Code Blocks
From description: "Start with C++ basics then master on File I/O, Object Oriented Programming OOP, STL, Functors, Lambda with C++ 11/14."
Некоторые темы: Pointers, Dynamic memory allocation, Library vertor class, structure, mini-project, OOP, Exception, STL.
[26 hours video, 1 articles, 43 coding exercises]

Learn Advanced C++ Programming - created by John Purcell, 2017, rating 4.4, IDE Eclipse
From description: "Discover intermediate to advanced C++, including C++ 11's fantastic additions to the C++ standard."
[15 hours video, 2 articles, no exercises and quizes]

Learn C++ Programming from Beginner to Expert: 2018 - created by Harsh Kajla, 2018, rating 4.7, IDE Code Blocks
From description: "Specially designed for people who don't have any knowledge about programming & want to learn C++ from scratch"
Серьёзных тем в курсе нет. Наиболее продвинутые: Sorting and searching algorithms, Pointers.
[17 hours video, 54 coding exercises]

C++: From Beginner to Expert - created by Arkadiusz Włodarczyk, 2018, rating 4.4, IDE Code Blocks
From description: "Designed for people who don't have any knowledge about the programming and want to program in C++."
Польский акцент. Некоторые темы: References, Pointers, project, OOP, templates, fstream library - working with files, mini database.
[15 hours video, 5 articles, quizes]
+
C++ Working with Files - fstream I/O library - created by Arkadiusz Włodarczyk, 2018, rating 4.2, IDE Code Blocks
From description: "Learn how to easily use the fstream library with the help of expert."
Материал этого курса включён в состав вышеуказанного. Так что брать этот курс отдельно смысла нет.
[3 hours video, 1 article]

Design Patterns in Modern C++ - created by Dmitri Nesteruk, 2018, rating 4.5, IDE CLion
From description: "Discover the modern implementation of design patterns with С++."
[12 hours video, 1 article, 21 coding exercises]

Object Oriented Programming in C++ - created by Anand Mahajan, 2018, rating 4.7, IDE Code Blocks
From description: "Master the skills in OOPs step by step ."
[12 hours video, no exercises and quizes]

C/C++ Pointers & Applications - created by Umar Lone, 2018, rating 4.3, IDE Visual Studio
From description: "Learn the applications of pointers such as usage in dynamic arrays, linked lists, function pointers, callbacks, etc."
[7 hours video, 9 articles, no exercises and quizes]

Functional Programming using C++ - created by Tobias Hermann, 2018, rating 4.6
[ 1.5 hours video, several quizes]

Advanced C++ Programming Training Course - created by Infinite Skills, 2017, rating 4.6, IDE Code Blocks
Некоторые темы: Polymorphism, Generic programming, Exception handling, Stream I/O, Sequential and association Containers, Non-STL data structures and algorithms, Namespaces, String class.
[6.5 hours video, 1 article, exercises]

Data Structures and Algorithms in C++ For Coding Interview - created by Farouk Yasser, 2018, rating 4.6
Ни к какой IDE курс не привязан, объясения на листе бумаги.
[7 hours video, 6 articles, assignments]

C/C++ for Intermediate Students - creaded by Randall Nagy, 2018, rating 3.8 (2 ratings)
[7 hours video, no exercises and quizes]
+

C/C++ for Advanced Students - creaded by Randall Nagy, 2018, rating 3.8 (4 ratings)
Ни к какой IDE курсы не привязаны.
[7.5 hours video, no exercises and quizes]

 

GeekforGeeks.org
Fork CPP

 

SoloLearn.com
С++ Tutorial - Обучение представлено в виде игры. С одной стороны курс проходится легко и весело, с другой стороны он поверхностен.

 

CaveOfProgramming.com
C++ for Complete Beginners - instructor John Purcell

 

Alison.com
подборка курсов

 

Сайты с платными курсами:
vtc.com (C++ Course) - курс на основе видео. Первые пару десятков видео можно посмотреть бесплатно.
lynda.com
caveofprogramming.com

bestonlinecoursescoupon.com - ссылки на хорошие курсы по C++, сайт содержит различные промокоды

 

Курсы по C++ (ru)

 

Сравнение C vs C++ (eng)

 

Сравнение C vs C++ (ru)

 

Среды разработки программ (IDE и редакторы)

=== IDE ==

Visual Studio Community 2017 (Wiki-eng, Wiki-ru) - Мощная IDE, которая даже в минимальной комплектации занимает несколько гигабайт. Может создавать код для различных ОС, однако сама может быть установлена только на Windows. Позволяет работать со множеством языков. Единственный бесплатный представитель линейки IDE Visual Studio. Если в интернете наткнётесь на заголовок "Full C and C++ IDE with Visual Studio", то это те же самые дистрибутивы VS.

Qt Creator (Wiki-eng, Wiki-ru) - Прямой конкурент Visual Studio. Также занимает несколько гигабайт даже в минимальной комплектации. В отличие от Visual Studio, является кроссплатформенным. Другое отличие: специализируется только на С++. Кроме него имеет некоторый функционал только для JavaScript, QML, Python и Java. Разработан для работы с фреймворком Qt.

Code::Blocks (Wiki-eng, Wiki-ru) - Cамая популярная IDE. Используется в большинстве учебных курсов и видеороликов, часто применяется и для создания серьёзных проектов. Дистрибутив, включающий компилятор MinGW, весит менее 100 Мб. Имеется портативная версия, не требующая установки.* Главный минус: трудности с созданием графических приложений. Для использования WYSIWYG необходимо подключить внешний инструмент наподобие wxWidgets или GTK+, что требует определённых навыков. Программа имеет некоторое количество глюков, особенно в направлении создания графических приложений. Разрабатывается группой энтузиастов в свободное от основной работы время. Программа не заброшена, но официальные релизы выходят редко, последний полтора года назад. Существует линейка неофициальных релизов "Nightly builds", рекомендую, однако для них обязательно наличие в системе внешнего компилятора.

P.S. Если используете Ubuntu/Mint и не хотите довольствоваться старой глючной версией в репозитории, то настраивайтесь на преодоление сложностей. Можете попробовать скомпилировать программу из исходного кода.

CodeLite (Wiki-eng, Wiki-ru) - кроме C/C++ позволяет также писать код на PHP и JavaScript (с прицелом на Node.js). Использует инструментарий wxWidgets.

Dev-C++ (Wiki-eng, Wiki-ru) - Относительно слабая IDE, разработка которой была прекращена в апреле 2015. Может использоваться только для учебных целей. Почти по всем параметрам проигрывает CodeBlocks.

wxDev-C++ - форк Dev-C++. Устранён ряд багов, увеличена функциональность. И самое главное, хорошо интегрирован wxWidgets для разработки графических приложений.

Eclipse (Wiki-eng, Wiki-ru) - IDE. Некоторыми используется. Нуждается в установка JVM (Java Virtual Machine), из чего следует кроссплатформенность. За поддержку С/С++ отвечает модуль CDT. Лучше не подбирать плагины самостоятельно, а скачать готовый пакет.

NetBeans (Wiki-eng, Wiki-ru) - IDE, которую предпочитают многие пользователи Linux, однако на Windows она реализована не очень хорошо. Основная цель её создания - разработка кода на Java. Для работы с ней на PC должен быть установлен Sun JDK или J2EE SDK .

CLion (Wiki-eng, Wiki-ru) - коммерческая IDE от IntelliJ IDEA (159$ за 3-годовую подписку).

 

=== полу-IDE и текстовые редакторы ==

Komodo Edit (Wiki-eng, Wiki-ru) - Облегчённая версия Komodo IDE. Создавать код на C++ в ней можно, но судя по информации с оф.сайта, она не даже производить его отладку. У программы другая специализация.

Atom (Wiki-eng, Wiki-ru) - Позициорирует себя как редактор, но по своим возможностям ближе к IDE. Имеет красивую подсветку кода. Относительно своих возможностей воспринимается тяжеловатым.

Visual Studio Code (Wiki-eng, wiki-ru) - Редактор кода с инструментом отладки и некоторыми другими продвинутыми технологиями. Но полноценной IDE его не назовёшь. Сходство между VS Code и VS Community примерно такое же, как между языками JavaScript и Java. Т.е. это совершенно разные вещи со своими специфическими плюсами и минусами. Плюсами VS Code являются кроссплатформенность и относительно маленький вес.

Geany (wiki-eng, wiki-ru)
Позиционируется как облегчённая IDE, но по сути представляет собой усовершенствованный текстовый редактор с некоторыми программистскими фичами. К примеру, прямая отправка кода на исполнение с автоматическим открытием внешней консоли. Лишён функции отладки (дебаггинга). В качестве программистского редактора удобен. Написан с использованием библиотек GTK+ (элементы интерфейса) и Scintilla (функционал редактирования текста). Поддерживает большое количество языков программирования. Если вы на Linux, то рекомендую воспользоваться неофициальными репозиториями. Версии в них могут быть немного ниже, чем последний релиз, но это сэкономит кучу нервов.

Создавать код на языке C++ можно даже в простейшем текстовом редакторе. Необходимо только наличие в системе внешнего компилятора, который бы преобразовывал текст программы в исполняемый код. К примеру MinGW. В том числе некоторые из редакторов позволяют наладить прямой запуск создаваемого кода. Можете посмотреть нашу подборку видео на смежной странице о том, как такое можно наладить в Notepad++.

 

=== Онлайн-компиляторы ===

Использовать онлайн-компиляторы обычно не рекомендуется, даже в обучающих целях. Но как поступать вам, оставлю на вашей ответственности.

CodeCHEF (codechef.com/ide) - компилятор C++ 6.3, C и множества других языков. Можно использовать табы. Другие плюсы не обнаружены.
C++ shell (cpp.sh) - только С++. Стандарты С++98, С++11, С++14. Несколько настроек, но отладки среди них нет. У меня этот компилятор запускался 1 раз на 5 попыток - похоже, что слишком слабый сервер.
OnlineGDB (onlinegdb.com) - компиляторы С++, С++ 14, С и ещё пары языков. Встроенный дебаггинг (инструкция по использованию). Возмозность сохранять свои проекты.
C, C++, C++0x, C++11 (tutorialspoint.com) - различные версии online-компилятора на tutorialspoint.com. Версии С++ отличаются друг от друга параметрами компиляции. Есть множество аналогов для других языков, включая даже MathML, Tex и Latex.
repl.it - много языков, требует регистрации
ideone.com - много языков. Регистрация возможна, но необязательна
codepad.org - много языков. Регистрация возможна, но необязательна
Compiler Explorer (gcc.godbolt.org) - несколько языков, различные дополнительные настройки
code.sololearn.com - набор компиляторов для курсов на SoloLearn

compileconline.com - просто компилятор на C и C++ безо всяких дополнительных функций. Был создан создателями одного из интернет-курсов, чтобы обучающиеся могли сразу испытать код в действии. - компилятор перестал существовать

* Специально для наших занятий сделана облегчённая сборка CodeBlocks 16.01, где часть плагинов отключена, а часть полностью удалена. Инсталляции не требует, компилятор встроен. Для запуска используйте CbLauncher.exe. Если запустить через codeblocks.exe, то все имеющиеся плагины окажутся включёнными. В случае нехватки функционала поищите соответствующий плагин в меню Plugins > Manage Plugins. Описание плагинов приведено на wiki.codeblocks.org. Если откажется работать, то выберите в главном меню Settings > Compiler и нажмите там кнопку Reset defaults - программа подправит пути к своему компилятору. Оригинал программы, где ничего не удалено, на codeblocks.org.

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.