29 марта 2020

ТОП-10 книг по C++: от новичка до профессионала

Пишу, перевожу и иллюстрирую IT-статьи. На proglib написал 140 материалов. Увлекаюсь Python, вебом и Data Science. Открыт к диалогу – ссылки на соцсети и мессенджеры: https://matyushkin.github.io/links/ Если понравился стиль изложения, упорядоченный список публикаций — https://github.com/matyushkin/lessons
Книги по C++ на русском языке с лучшими оценками. Расставлены в порядке возрастания сложности, обобщены указанные читателями преимущества и недостатки.
10
ТОП-10 книг по C++: от новичка до профессионала

Книги по C++ начального уровня

Герберт Шилдт. С++ для начинающих. Шаг за шагом

<a href="https://www.ozon.ru/context/detail/id/5089079/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">С++ для начинающих. Шаг за шагом</a>
С++ для начинающих. Шаг за шагом

Самоучитель, который шаг за шагом расскажет об основных понятиях языка C++: переменные, инструкции управления, функции, типы и массивы данных, классы и объекты. Рассказано о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.

Достоинства:

  • Необходимый объём для начинающих.
  • Доступный язык повествования.
  • Есть вопросы для самопроверки.
  • Хорошее качество печати.

Недостатки:

  • Блеклый шрифт листингов программ.
  • На обратной стороне книги говорится о многопоточном программировании и работе в сети, но читатели такой информации в самоучителе не нашли.
  • Мягкая обложка.
➕➕ Библиотека C/C++ разработчика
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека C/C++ разработчика»
➕➕🎓 Библиотека C++ для собеса
Подтянуть свои знания по Go вы можете на нашем телеграм-канале «Библиотека C++ для собеса»
➕➕🧩 Библиотека задач по C++
Интересные задачи по Go для практики можно найти на нашем телеграм-канале «Библиотека задач по C++»

Стивен Прата. Язык программирования C++. Лекции и упражнения

<a href="https://www.ozon.ru/context/detail/id/147417584/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Стивен Прата. Язык программирования C++. Лекции и упражнения</a>
Стивен Прата. Язык программирования C++. Лекции и упражнения

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

Достоинства:

  • Подробное изложение.
  • Множество примеров кода.
  • Задания после каждой главы.
  • Вопросы для самоконтроля.
  • Хорошее качество переплета.

Недостатки:

  • Не затронуты стандарты C14, C17.
  • Встречаются опечатки.

Роберт Лафоре. Объектно-ориентированное программирование в С++

<a href="https://www.ozon.ru/context/detail/id/31016231/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Роберт Лафоре. Объектно-ориентированное программирование в С++</a>
Роберт Лафоре. Объектно-ориентированное программирование в С++

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

Достоинства:

  • Хорошая база для освоения языка.
  • Легко читается.
  • В каждой главе разбираются примеры.
  • Есть контрольные вопросы и упражнения.
  • Твердый переплет, белые страницы.

Недостатки:

  • Встречаются опечатки и ошибки.
  • Рассматривается старый стандарт языка.

Страуструп. Программирование. Принципы и практика с использованием C++

<a href="https://www.ozon.ru/context/detail/id/155024250/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Страуструп. Программирование. Принципы и практика с использованием C++</a>
Страуструп. Программирование. Принципы и практика с использованием C++

Хотя автор книги одновременно является и автором языка, С++ играет сугубо иллюстративную роль. Автор задумал книгу как вводный курс по программированию. Описан широкий круг понятий и приемов программирования, необходимых для того, чтобы стать профессиональным программистом.

Если вы решили стать программистом, и уже знакомы с азами C++ – эта книга для вас, в первую очередь потому, что программирование – это не только, и не столько знание инструмента (языка программирования), сколько понимание самого процесса.

Достоинства:

  • Книга учит программированию, язык – инструмент.
  • Качественный перевод и оформление книги.

Недостатки:

  • Большой объем, было бы удобнее, если бы выходила в двух томах.

Средний уровень владения C++

Роберт Седжвик: Алгоритмы на C++. Анализ структуры данных. Сортировка. Поиск. Алгоритмы на графах

<a href="https://www.ozon.ru/context/detail/id/149831754/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Роберт Седжвик: Алгоритмы на C++. Анализ структуры данных. Сортировка. Поиск. Алгоритмы на графах</a>
Роберт Седжвик: Алгоритмы на C++. Анализ структуры данных. Сортировка. Поиск. Алгоритмы на графах

Эта книга не про сам язык, а про алгоритмы с примерами реализации на С++. В частях I—IV рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск. В них приведено подробное описание фундаментальных структур данных и алгоритмов для сортировки, поиска и сопутствующих приложений. В части V рассматриваются алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.

Преимущества:

  • Раскрыты все темы, указанные в оглавлении книги.
  • Много примеров и упражнений.
  • Качественный перевод.
  • Хорошее оформление издания, белая бумага, четкий шрифт.

Недостатки:

  • В сравнении с книгами Кормана или Кнута раскрыты не все типы алгоритмов.

Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14

<a href="https://www.ozon.ru/context/detail/id/149092825/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14</a>
Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14

Эта книга посвящена возможностям языка, появившимся в C++11 и C++14. Рассказано, как эффективно использовать новые особенности, почему ту или иную задачу следует решать именно так., чтобы создаваемые программы были корректны, эффективны и переносимы.

Преимущества:

  • Написано доступно, но без воды.
  • Хорошее качество переплета.

Недостатки:

  • Редко, но встречаются неточности перевода и опечатки.

Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов

<a href="https://www.ozon.ru/context/detail/id/144677506?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов</a>
Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов

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

Достоинства:

  • Стандарт C++17.
  • Создается хорошее понимание современного подхода к использованию C++.
  • Много примеров с пояснениями без лишней воды.

Недостатки:

  • Мягкий переплет, низкое качество печати и обрезки страниц.

Энтони Уильямс. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

<a href="https://www.ozon.ru/context/detail/id/135511867/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Энтони Уильямс. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ</a>
Энтони Уильямс. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

В наши дни стали нормой компьютеры с многоядерными процессорами. Современные стандарты языка C++ предоставляют поддержку многопоточности. Вдумчиво читая книгу Уильямса, вы научитесь писать надежные и элегантные многопоточные программы на С++.

Преимущества:

  • Большое количество примеров.
  • Не требуются предварительные знания по теме.
  • Рассмотрены все тонкости многопоточного программирования и типов синхронизации, подробно описаны lock-free-паттерны проектирования.

Недостатки:

  • Старый, хотя и достаточно актуальный стандарт (С11).
  • Ужасное качество переплета для такого объема книги.

Продвинутый уровень C++

Роберт C. Мартин. Гибкая разработка программ на Java и C++. Принципы, паттерны и методики

<a href="https://www.ozon.ru/context/detail/id/138684801?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Роберт Мартин. Гибкая разработка программ на Java и C++. Принципы, паттерны и методики</a>
Роберт Мартин. Гибкая разработка программ на Java и C++. Принципы, паттерны и методики

Как и указано на обложке, примеры есть и на C++, и на Java, для лучшего понимания желательно знать оба языка. Рассматриваются ООП, UML, паттерны, приемы гибкого и экстремального программирования, а также приводится детальное описание полного процесса проектирования для многократно используемых программ на C++ и Java.

Преимущества:

  • Легко читается.
  • На простых примерах дается введение в архитектурное проектирование.
  • Рассматриваются ошибки традиционных примеров «хорошего» проектирования кода.
  • Подробно обсуждаются принципы SOLID.
  • Чувствуется опыт автора.

Недостатки:

  • Затянутое введение.

Бьерн Страуструп. Дизайн и эволюция С++

<a href="https://www.ozon.ru/context/detail/id/136837954?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Бьерн Страуструп. Дизайн и эволюция С++</a>
Бьерн Страуструп. Дизайн и эволюция С++

В книге, написанной создателем языка С++ Бьерном Страуструпом, представлено описание процесса проектирования и разработки языка программирования С++.

Изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик С++, рассказано о дизайне недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые во время работы над языком, и демонстрирует, как правильно применять «реальный объектно-ориентированный язык программирования».

Преимущества:

  • Описана идеология, структура, философия языка.
  • Становятся понятными конструкции языка: почему сделано так, а не иначе.
  • Для людей с большим опытом в разработке на C++ читается как захватывающая художественная книга.

Недостатки:

  • Мягкая обложка.
Больше информации о книгах про C++ вы найдете на нашем телеграм-канале «Библиотека C/C++ разработчика».
***

Если вы не увидели любимую книгу в десятке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.

Библиотека программиста любит язык C++. Вот три последних публикации:

Комментарии

 
 

Можно ещё почитать "С нуля до основ C ++ за 14 дней". Желательно платную версию - стоит копейки и упражнения после каждого урока.

17 октября 2020

Еще из хорошего это Эффективное программирование на С++ Кениг Эндрю, Му Барбара и из новейшего понравился C++ Crash Course by Josh Lospinoso

17 октября 2020

Благодарю за дополнение!

03 октября 2020

Ну, скажу в критику две вещи: 1) Зачем писать про недостатки какого - то переплета? Кому сейчас нужна бумага? Сейчас все скачивают электронные версии книжек 2) Где, собственно, ссылки на скачивание?)))

08 октября 2020

Это точно я целый час искал ссылку для скачивание пока не прочитал это. Спасибо тебе ты облегчил мне жизнь.

08 октября 2020

мы ошиблись и не были внимательными ссылка для скачивание находиться под картинкой.

03 февраля 2022

Я тот самый древний червь, которому проще и приятнее читать бумажный вариант книг. Так что не стоит говорить за всех... 🙂

18 сентября 2022

"проще и приятнее читать бумажный вариант книг" - полностью согласен)

29 августа 2023

Полностью бред !

29 августа 2023

Зачем так открыто признаваться, что тебе нравятся исключительно резиновые женщины ? Людям больше нравятся настоящие. Если без шуток, это высокомерное "все скачивают электронные версии" уже достало. Настоящие книги существовали тысячи лет, это часть человеческой культуры и электронные их не заменяют, а только дополняют, примерно как телевизор не убил театр или кино. Какие ссылки на скачивание, воровать нехорошо !!!

ВАКАНСИИ

Добавить вакансию
Senior MLE (SE)
от 5000 USD до 9000 USD
Senior Go / Kubernetes Engineer
от 3000 USD до 7000 USD

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

LIVE >

Подпишись

на push-уведомления