Исчерпывающий список книг для углубления в C++

C++ для продолжающих

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


Обложка книги «»

The Ultimate Question of Programming, Refactoring, and Everything

Читать Скачать 

С чего начинается знакомство с книгой? Конечно, с заголовка. Вам не показался он смутно знакомым? Если нет, то советую почитать про загадочное число «42». В книге вы найдете 42 (как неожиданно!) рекомендации по написанию кода, которые помогут избежать множество ошибок. Автор Андрей Карпов имеет огромный опыт в анализе кода с помощью статического анализатора PVS-Studio. Он обнаружил, что большая часть ошибок, которые находил анализатор, достаточно типичны и повторяются из одного проекта в другой. Так он решил написать данное руководство, чтобы помочь разработчикам, пишущим на языке C++, писать более совершенный код.


Обложка книги «»

Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ

Купить 

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


Обложка книги «»

Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов

Купить 

Скотт Мейерс задумывал эту книгу как продолжение предыдущей. Описанные в новой книге приемы по сравнению с оной не столь важны, но ознакомиться с ними несомненно стоит. Автор, опираясь на свой многолетний опыт, дает множество советов по написании эффективных программ на языке C++. В частности, вы сможете ознакомиться с примерами обработки исключений и анализом их влияния на структуру и поведение классов и функций С++, а также вариантами практического применения новых возможностей языка, таких как тип bool, ключевые слова mutable и explicit, пространства имен, шаблоны функций членов, стандартная библиотека шаблонов и многое другое.


Обложка книги «»

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

Купить 

В отличие от двух предыдущих книг, в этой Скотт Мейерс рассказывает обо всех преимуществах использования «фишек» современных стандартов C++11 и C++14. В первую очередь книга подойдет для тех разработчиков, которые хотят перейти с устаревших стандартов, таких как C++03 и более ранних, на современные и научиться эффективно использовать все их функции. В книге подробно освещаются следующие темы:

  • преимущества и недостатки инициализации с помощью фигурных скобок, спецификации noexcept, прямой передачи и функций make интеллектуальных указателей;
  • связь между std::move, std::forward, rvalue-ссылками и универсальными ссылками;
  • методы написания понятных, корректных, эффективных лямбда-выражений;
  • чем std::atomic отличается от volatile, как они используются и как соотносятся с API параллельных вычислений C++;
  • какие из лучших методов «устаревшего» программирования на C++ (т.е. C++98) должны быть пересмотрены при работе с современным C++.

Обложка книги «»

Optimizing Software in C++

Скачать 

В отличие от других руководств по оптимизации кода, представленных в этой подборке, эта книга делает акцент на оптимизации кода на достаточно низком уровне: компилятора и микропроцессора. Пособие является первым из серии книг про низкоуровневую оптимизацию. Автор рассматривает архитектуру x86 для процессоров Intel, AMD и VIA, включая их современные 64-битные версии. Напомним лишь, что к низкоуровневой оптимизации следует прибегать, только если другие способы улучшения кода не дают ощутимый результат.


Обложка книги «»

Эффективное использование STL

Купить 

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


Обложка книги «»

C++ Today

Скачать 

Книга от издательства O’Reilly, что уже говорит о ее высоком качестве. В ней вы найдете ответы на многие вопросы о современном C++, например:

  • какие «фишки» C++ полезны в облачных вычислениях;
  • почему данный язык является единственным языком высокого уровня, использующимся для разработки приложений в трех мобильных платформах: iOS, Android, Windows;
  • какие изменения языка ожидаются в следующих обновлениях стандарта языка.

Обложка книги «»

Решение сложных задач на С++

Купить 

Книга представляет собой сборник задач. Она содержит подробное обсуждение управления ресурсами и безопасностью исключений в С++. В материале рассматриваются идиомы RAII и pimpl, а также такие темы, как проверка имен, дизайн классов и модель памяти С++.


Обложка книги «»

Новые сложные задачи на C++

Купить 

Книга является продолжением труда «Решение сложных задач на С++». В ней вы можете найти материал по дженерик-программированию, оптимизации и управлению ресурсами. Эта книга — отличный пример того, как надо писать модульный код в С++, используя non-member функции и принцип единой ответственности. Рассчитана на разработчиков с глубокими познаниями в C++.


Обложка книги «»

Стандарты программирования на С++

Купить 

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


Обложка книги «»

C++ Core Guidelines

Читать 

Данное пособие содержит в себе основные рекомендации по написанию проектов на языке C++, учитывающее как уже существующие стандарты (C++17, C++14, C++11), так и ожидаемые улучшения. Фокус материала сосредоточен на таких темах, как интерфейс, управление ресурсами и памятью, а также параллелизм. Рекомендации не затрагивают такие моменты, как стиль отступов, названия переменных, функций, классов, поскольку достаточно часто в компаниях, занимающихся разработкой, определены для этого собственные стандарты. Материал постоянно обновляется, так что вы всегда получите актуальную информацию прямо из рук создателя C++ — Бьерна Страуструпа.


Обложка книги «»

Google C++ Style Guide

Читать 

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

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

Обложка книги «»

Шаблоны C++. Справочник разработчика

Купить 

Это книга о шаблонах в том виде, в котором они существовали до С++11. Она покрывает все от самых начал до продвинутого шаблонного метапрограммирования, подробно объясняет, как работают шаблоны, обсуждает некоторые распространенные грабли. В приложениях несколько замечательных извлечений из правила одного определения (англ. ODR).


Обложка книги «»

Practical Guide to Bare Metal C++

Читать Скачать 

Как известно, программы для встроенных систем и микроконтроллеров разрабатывают в подавляющем большинстве случаев на языке Си. Он считается наиболее быстрым и приближенным к «железу» среди всех языков высокого уровня. Автор этой книги стремится развеять это установившееся понятие и рассказывает о разработке подобных программ на языке C++. Со времен C++98 язык получил существенные изменения, стал более удобным, безопасным, а самое главное — быстрым. Последние исследования говорят о том, что код, написанный на современном C++, по времени исполнения ничтожно мало отличается от аналогичного кода, написанного на Си, зато удобство работы и скорость разработки программы возрастает в разы. Это особенно актуально для систем реального времени. Поэтому C++ имеет все шансы стать языком номер один для разработки под микроконтроллеры.


Понравилась вам подборка? Или вы знаете еще несколько крутых книжек? Делитесь с нами своим мнением в комментариях.

Ещё интересное для вас:
Тест: какой язык программирования вам стоит выбрать для изучения?
Тест: как хорошо вы разбираетесь в Data Science?
Соревнования и бесплатная онлайн-школа для программистов