Как выучить языки C и C++: полный список
Опубликовано: 2022-03-11Язык программирования C был первоначально разработан Деннисом Ритчи и реализован в операционной системе UNIX. Язык Си достаточно прост и не привязан к какому-либо конкретному оборудованию или системе. Это упрощает для пользователя написание программ, которые будут работать без многих (или каких-либо) изменений практически на всех машинах.
Язык C часто называют компьютерным языком среднего уровня, поскольку он сочетает в себе элементы языков высокого уровня с функционализмом языка ассемблера. Программирование на C позволяет манипулировать битами, байтами и адресами, предоставляя программисту больший контроль над тем, как именно будет вести себя программа, и более прямой доступ к механике базового оборудования.
C был создан, испытан под влиянием и полевых испытаний работающими программистами. Конечным результатом является то, что C дает программисту то, что он хочет.
C++ — это расширенная версия языка C. C++ включает в себя все, что является частью C, и добавляет поддержку объектно-ориентированного программирования (ООП). Кроме того, C++ также содержит множество улучшений и функций, которые делают его «лучшим C», независимым от объектно-ориентированного программирования.
Язык C++ на самом деле является расширяемым, поскольку мы можем определять новые типы таким образом, чтобы они действовали точно так же, как предопределенные типы, являющиеся частью стандартного языка.
Если вы просто используете C++ как лучший C, вы не будете использовать всю его мощь. Как и любой качественный инструмент, C++ должен использоваться так, как он был разработан, чтобы использовать его богатство. Некоторые из новых функций включают инкапсуляцию, встроенные вызовы функций, операторы перегрузки, наследование и полиморфизм.
Зачем мне изучать C или C++?
C и C++ по-прежнему остаются двумя самыми популярными языками программирования. Синтаксис и концепции C, в частности, выдержали испытание временем, и вы можете видеть, как они переносятся на другие популярные языки программирования, даже на современные, такие как Go.
Даже если вы собираетесь создавать веб-приложения или причудливые интерфейсные веб-компоненты до конца своей жизни, изучение C поможет вам понять, как на самом деле взаимодействуют программное обеспечение и аппаратное обеспечение.
Кроме того, C и C++ повсюду.
C, в частности, поддерживает гораздо больше технологий, чем мы думаем.
С другой стороны, некоторые из ваших любимых программ — возможно, даже веб-браузер, в котором вы читаете эту статью, — построены на C++. Знание C — хорошая база, но во многих случаях разработка программного обеспечения потребует от вас изучения C++ и его парадигм.
Если вы хотите разработать программное обеспечение, которое должно максимально использовать производительность и возможности компьютера, например, высококачественные настольные игры, сложные инструменты для повышения производительности или сложные программы, требующие больших вычислительных ресурсов, или если вам просто нужен язык программирования, который позволяет взаимодействуйте с аппаратным обеспечением компьютера напрямую, C и C++ — это языки для вас.
Итак, почему вы не хотите изучать C++ или C? Это не то же самое, что 25 лет назад, когда вам, возможно, приходилось вкладывать деньги в проприетарный компилятор, чтобы начать работу — сегодня вы, безусловно, можете изучать C++ бесплатно.
Как я могу начать работу с C и C++?
Чтобы начать работу с C или C++, в большинстве случаев вам понадобится, по крайней мере, компилятор, хотя в настоящее время вы также можете изучать C онлайн, немного поэкспериментировав с проектами C «hello world» в браузере.
Компиляторы — это программы, которые можно запускать через интерфейсы командной строки (CLI). Они считывают всю программу и преобразуют ее в объектный код, который является переводом исходного кода программы в форму, которую компьютер может выполнять напрямую.
Чтобы упростить жизнь, вы можете выбрать полноценные IDE, которые могут сделать ваш опыт работы с C или C++ еще более приятным.
Окна
Для Windows доступно много хороших компиляторов.
В Windows Visual Studio предоставляет компилятор C++.
Компилятор также может создавать программы на C.
Visual Studio поставляется с собственной мощной, многофункциональной IDE, что делает ее отличным выбором для всех, кто только начинает работать с C или C++, или для тех, кто в первую очередь ориентируется на платформу Windows.
Если вы ищете что-то более совместимое со стандартами, GCC (MinGW) может быть тем, что вам нужно. IDE Codeblocks работает исключительно хорошо в этой настройке.
Clang теперь также является отличным выбором для Windows — в настоящее время он даже используется для создания Google Chrome.
Существуют и другие кроссплатформенные IDE, такие как Eclipse CDT, Jetbrains CLion и Netbeans, которые предоставляют полнофункциональные среды разработки C и C++. Однако в последнее время их затмевает (простите за иронию) Visual Studio Code, который также доступен для сред Linux и Mac.
линукс
Если вы работаете в Linux, у вас, вероятно, уже установлен GCC как часть вашего дистрибутива. Если нет, то его установка должна состоять из одной команды:
# Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel
Codeblocks IDE и Eclipse CDT одинаково хорошо работают как в Linux, так и в Windows.
Mac / Mac OS X / OS X / macOS
На Mac вы можете использовать Clang или GCC — оба доступны бесплатно. В то время как GCC поддерживает более широкий спектр стандартов C и C++, Clang отлично работает в большинстве случаев.
Clang уже должен быть установлен.
Вы можете установить GCC с помощью Homebrew:
brew install gcc
Вы можете использовать XCode, отличную IDE, которая является частью инструментов разработчика Mac OS.
Какие есть хорошие учебники для изучения C и C++?
Учебники — отличный способ начать работу с новым языком программирования. Даже если вы не очень хорошо разбираетесь в самом программировании. Следующие уроки научат вас самым важным понятиям.
Программирование на C в LearnVern
Этот всеобъемлющий онлайн-курс по программированию на C отлично подходит для начинающих, у которых не обязательно есть предыдущий опыт программирования. Он начинается с самых основ C и программирования в целом и охватывает сложные темы, такие как динамическое выделение памяти, управление файлами и т. д.
C++ для программистов на C на Coursera
Если вы уже знакомы с C и хотите окунуться в C++, то этот курс, состоящий из двух частей, идеально подходит для вас. Этот курс действительно подчеркивает различия между этими двумя языками и показывает, как максимально эффективно использовать C++.
Основы C++ в Pluralsight
С другой стороны, если вы хотите начать с основ C++ и изучить его с нуля, у PluralSight есть для вас именно учебник. Он предназначен для тех, кто хочет более эффективно работать с C++.
Программирование на C для начинающих в Udemy
Этот онлайн-курс по программированию на C удобен для начинающих и идеально подходит для всех, кто хочет начать работу с C на любой из трех популярных платформ (Windows, Linux и Mac OS X).

Учебник по C++ для начинающих в Udemy
Этот курс предназначен для тех, кто имеет базовые знания компьютера, но хочет окунуться в мир программирования. Возможно, это лучший способ выучить C++ в качестве первого языка. Кроме того, если вы находите разработку игр интересной, это курс, с которого вы хотите начать.
Углубленный учебный курс по программированию на C++ в Udemy
Как только вы освоите базовые навыки программирования на C++ и будете готовы перейти к реальной работе, вам понадобится расширенный учебник, подобный этому. Учебник охватывает полиморфизм, шаблоны, обработку исключений, потоки, контейнеры, алгоритмы, стеки и многое другое.
comp.lang.c Часто задаваемые вопросы
Иногда все, что вам нужно, — это обширный список вопросов и ответов, которые вы можете быстро найти, чтобы решить свои проблемы. Это не учебник как таковой, а скорее структурированный набор часто задаваемых вопросов.
Аннотации C++ (версия 10.9.2) Фрэнка Броккена
Этот веб-учебник предназначен для продвинутых программистов на C (или программистов на Perl или Java — всех, кто имеет «грамматику, подобную C»), которые хотят перейти на C++. Он продолжается там, где заканчивается язык программирования C, например, на указателях, распределении памяти и составных типах, что делает его очень хорошим руководством по программированию на C++.
Руководство по стилю Google C++
Когда вы пишете более сложные программы во время изучения программирования на C++, вы можете быстро столкнуться с проблемами сопровождения. Вот где пригодятся руководства по стилю от опытных программистов на C++. Это руководство по стилю поддерживается Google.
Если приведенных выше руководств по C/C++ недостаточно для вас, есть хорошие списки руководств, модерируемые сообществом, для изучения C и для изучения C++.
Могу ли я выучить C и C++, читая книги?
Книги — отличный способ узнать больше о языке программирования. С большим количеством отличных объяснений того, как работают сложные функции языка программирования, знания из хорошей книги по C или C ++ могут дать вам преимущество при использовании этих языков для ваших проектов.
C в двух словах: полный справочник (2-е издание) Питера Принца и Тони Кроуфорда
Хотя эта книга содержит небольшое введение в язык программирования C, она лучше подходит в качестве второй книги, если вы хотите научиться программировать на C. Эта книга содержит советы, приемы, примеры и практические советы, которые позволят опытным разработчикам максимально эффективно возможности.
Книга разделена на три части.
Первый описывает язык C в строгом смысле этого слова; вторая описывает стандартную библиотеку, а третья описывает процесс компиляции и тестирования программ с помощью инструментов из популярной коллекции программного обеспечения GNU.
C in a Nutshell — идеальное дополнение к «Языку программирования C» Брайана В. Кернигана и Денниса Ритчи (также известного как K&R), и ему суждено стать самым популярным справочником на вашем столе.
Язык программирования C Брайана В. Кернигана и Денниса Ритчи
Это второе издание оригинального текста Кернигана и Ритчи.
Его обычно называют Новым Заветом, поскольку он включает модификации, включенные в стандарт ANSI, сохраняя при этом характер первого издания.
Книга предполагает, что читатель обладает некоторыми базовыми знаниями в области программирования. Поэтому, если вы только начинаете программировать, а C — ваш первый язык, эта книга может оказаться для вас не идеальной. Тем не менее, вы можете найти эти сжатые заметки о нем полезными.
Это один из лучших способов познакомиться с программированием на C, и он обязателен, особенно если вы начинаете собирать свою собственную коллекцию книг по программированию.
Язык программирования C++ (4-е издание) Бьярн Страуструп
Бьерн Страуструп — разработчик C++, написавший много замечательных книг по этой теме.
Эта книга разделена на три части.
Первая часть представляет собой учебное введение в программирование на C++.
Вторая часть представляет собой обсуждение вопросов проектирования и разработки программного обеспечения, возникающих в связи с использованием C++, а третья часть представляет собой полное справочное руководство.
С ростом популярности C++ появилось несколько независимых распространителей C++, но в книге обсуждается «чистый C++»; то есть расширения, зависящие от реализации, не используются.
Один из лучших способов изучения языка программирования — это написание небольших программ, относящихся к предмету, который вы изучаете. В конце каждой главы есть упражнения для применения новых знаний.
«Эффективный C++: 55 конкретных способов улучшить ваши программы и проекты», Скотт Мейерс
Создание большого программного обеспечения на C++ требует проектирования и дисциплины. Если вы серьезно относитесь к C++, эта книга обязательна к прочтению.
Это руководство для экспертов по разработке эффективных классов, функций, шаблонов и иерархий наследования. В книге также обсуждается, чем C++ отличается от других языков, и как делать что-то «в стиле C++».
C++ Primer (5-е издание) Стэнли Б. Липпмана
C++ Primer — отличная книга, которая сделает изучение C++ увлекательным. Это действительно одна из лучших книг по C++, но она предполагает хорошее знакомство с концепциями программирования и владение C.
Последнее издание этой книги отлично подходит для программистов, которые хотят получить максимальную отдачу от новых и расширенных функций.
Часто задаваемые вопросы по C++ (2-е издание) Маршалла П. Клайна
Это феноменальная книга, содержащая ответы примерно на 500 вопросов по программированию, дизайну, анализу и тестированию. Это не для новичков, а для программистов, которые разобрались в синтаксисе языка и хотят его реализовать.
Если у вас есть такие вопросы, как «Что такое инвариант класса?», «Как мне использовать исключения?», «Что происходит, когда выполняется деструктор?», то эта книга для вас.
«Эффективный современный C++: 42 конкретных способа улучшить использование C++11 и C++14», Скотт Мейерс
Если вы уже имеете опыт работы с C++, но хотите протестировать более современные его стандарты, прочтите эту книгу. Вы будете удивлены, насколько C++ претерпел изменения благодаря этим новым стандартам. В книге обсуждается, как наиболее эффективно использовать новые возможности C++. (Несмотря на то, что стандарт C++ теперь соответствует C++17, C++14 по-прежнему остается передовым во многих контекстах проектов.)
Эффективный STL: 50 конкретных способов улучшить использование стандартной библиотеки шаблонов, Скотт Мейерс
Одним из самых удивительных аспектов C++ является его стандартная библиотека шаблонов (STL). Это одна из самых мощных функций, но она может быть довольно сложной. Эта книга содержит 50 замечательных советов и более 100 алгоритмов STL, которые исследуют различные области STL, что делает ее более доступной для разработчиков, только начинающих работать с C++.