Продолжаем публиковать подборки хороших книг. В этот раз расскажем об актуальных и в 2023 году книгах, которые пригодятся как начинающим разработчикам, так и их опытным коллегам. Если у вас есть собственные предпочтения, поделитесь, пожалуйста, в комментариях.
Изучаем C++ через программирование игр
Автор: Майкл Доусон
Для кого: начинающие С++ разработчики
Отличная книга, которая написана в качестве практического пособия для разработчиков игр. Таким образом, всё, о чём рассказывает автор, откладывается в памяти и тут же применяется на практике.
Каждая глава книги — теория и практика по определённым концепциям. В конце — задача по написанию какой-нибудь простой игры. Чтобы не усложнять задачу новичку, автор показывает тестовые игры. Показывается пример кода, а затем автор приводит советы, подсказки и многое другое.
Кроме того, в конце каждой главы приводятся вопросы, отвечая на которые, читатель может проверить себя и получить понимание того, насколько хорошо материал закреплен.
В финальной части показано, как создать уже достаточно сложную игру, используя всю информацию из книги. После этого можно приниматься за более сложные проекты.
Язык программирования С++
Автор: Бьерн Страуструп
Для кого: новички и более опытные разработчики
Достоинство книги в том, что её написал создатель языка С++. Уже одно это переводит её в разряд must have для любого разработчика, который кодит на этом языке. Это уже четвертое издание книги, которая помогла тысячам разработчиков совершенствовать свои навыки и получить новый опыт.
Автор дает советы читателям, указывает на возможные ошибки (а их может быть много), плюс показывает возможности С++ — их, конечно же, тоже немало. Кроме того, Страуструп рассказывает и о перспективах языка в современном мире.
Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14
Автор: Скотт Мейерс
Для кого: разработчики среднего уровня
Книга — ещё одно практическое пособие из подборки. Она показывает отличительные особенности версий C++11 и C++14. Автор делает это не просто так, а чтобы продемонстрировать возможности языка и научить читателя работать с ключевыми особенностями функционала. Также Мейерс обучает писать код таким образом, чтобы софт можно было нормально сопровождать.
Некоторые советы, которые приводит автор, могут не всегда работать — в этом случае Мейерс показывает, где возникают исключения. В целом, большинство пунктов книги — это рекомендации по написанию ПО на С++. Автор показывает, что любой совет — не догма: его можно принимать, не принимать или модифицировать по собственному усмотрению.
Чтобы понять, о чём говорит автор, нужно более-менее хорошо разбираться в программировании на С++. Новички тоже могут почитать, но, вероятно, им будет сложно.
Кстати, само пособие переиздано уже в 6 раз, что показывает его востребованность, актуальность и популярность.
Язык программирования C++. Краткий курс
Автор: Бьерн Страуструп
Для кого: для разработчиков среднего уровня и профи
Ещё одна книга от создателя С++, в которой уже больше информации для профессионалов. Издание представляет собой дополненные главы из справочника. Автор использует такую подачу, чтобы показать программисту возможности современного С++.
В частности, Страуструп рассказывает о важнейших функциях ЯП, показывает, какие есть основные компоненты стандартной библиотеки. Делает он это для того, чтобы разработчик смог понять главные принципы языка и перспективы работы с ним. Конечно, книга — не просто теория, в ней есть немало практических примеров. Автор помогает не только словом, но и делом, особенно в начале книги.
Книга будет полезна разработчикам, которые хотят получить знания не только об основах, но и изучить важные для работы нюансы. Например, некоторые дополнительные сведения о синтаксисе языка.
Современный С++. Безопасное использование
Автор: Джон Лакос
Для кого: для профессионалов
В книге показывается, как можно задействовать весь спектр инструментов языка, избегая наиболее распространенных проблем. Авторы рассказывают про новые полезные функции языка, разделяя их на три основные категории:
Безопасные функции. Их практически невозможно применять неправильно.
Относительно безопасные. Они приносят пользу, но у разработчика должен быть уже солидный опыт, чтобы избегать возможных проблем.
Проблемные. Эти функции могут быть крайне полезными, но если применить неправильно, что-то обязательно пойдет не так. Поэтому здесь нужно быть очень осторожным и аккуратным.
Книга пригодится опытным разработчикам, её можно рекомендовать и программистам среднего уровня. В общем, всем, кто желает улучшить качество кода и в целом оптимизировать свою работу.
Qt 6. Разработка оконных приложений на C++
Автор: Николай Прохоренок
Для кого: для профессиональных разработчиков
Ещё одна книга, которую можно рекомендовать разработчикам с опытом. Автор рассказывает о возможностях библиотеки Qt. Он демонстрирует, как создавать приложения с графическим интерфейсом на С++. В частности, рассказывается о том, как обрабатывать события, включая создание форм, управление свойствами окна и т.п.
Также автор уделяет время теме использования основных компонентов, включая кнопки, текстовые поля, списки, таблицы, меню.
Понятно, что такая книга не может быть голой теорией. В ней автор приводит множество практических примеров из своей практики. а этом всё, если у вас есть собственные рекомендации — расскажите о них, они будут полезны всем нам.
Эта статья тоже может быть интересной для вас
Комментарии (15)
onekawdalg
23.08.2023 14:10Какая разница между версиями C++ 11, 14 и 20?
voldemar_d
23.08.2023 14:10Куда делся C++ 17?
onekawdalg
23.08.2023 14:10Так разница между версиями то какая? Какая польза в изучении C++11 или C++14 по книге от O'Reilly или Страуструпа в 2023 году? Или стоит рассмотреть варианты книг про C++17 и C++20?
Именно в этом суть вопроса
voldemar_d
23.08.2023 14:10Если реально не знаете, в чем разница, тогда эти книги точно стоит почитать. Особенно Майерса. Там много советов, которые не устарели.
onekawdalg
23.08.2023 14:10Понял. Спасибо большое за ответ (жаль, что пока не могу оценить комментарий)
Sequoza
23.08.2023 14:10Так разница между версиями то какая?
Вы можете столкнуться с кодом на 11 стандарте и долго думать над вопросом "что хотел сказать автор?". В таких книгах вы можете найти объяснение почему это сделано так как сделано, а не иначе.
Или стоит рассмотреть варианты книг про C++17 и C++20?
Авторитетные авторы долго не обновляют свои книги. Если для вас это новый язык - лучше начать с последних стандартов. Я бы, наоборот, не стал начинать изучение с 11. Банально из-за того, что усилий вы потратите много, а толку 0, т.к. с новым стандартом уже так не пишут. Классиков, имхо, стоит читать, когда поймете, что вам ваших знаний не хватает. Вот тогда пойдут всякие александреску, страуструпы, устройства компиляторов, линкеры и подобные книги, не обновляющиеся десятилетиями.
Malizia
23.08.2023 14:10база осталось преждней, разница в деталях - обновилась STL (стандартная библиотека), что-то убрали/пометили как deprecated, что-то добавили, что-то изменили. Вполне вероятно, что в обзорных книгах по более поздним стандартам (17,20) не будет упоминаний по нововведениям в более ранних стандартах (11, 14). Начинать изучать можно с любой версии стандарта, но чем дальше, тем язык становится сложнее (в плане деталей - их становится больше) и изящней.
impakashi
23.08.2023 14:10+2Изучаем C++ через программирование игр. Майкл Доусон
Эта книга, конечно, не очень плохая, но слишком поверхностная. Совсем новичку может быть тяжеловато, а не новичку уже не надо.
Сам бы для начала посоветовал Лафоре Р. Объектно-ориентированное программирование в С++. После него и Страуструп более менее пойдётhiewpoint
23.08.2023 14:10У Лафоре код с UB, для начала его нельзя читать. Вместо него "Язык программирования C++. Базовый курс" - Стенли Липпман или "Язык программирования C++. Лекции и упражнения." - Стивен Прата.
WinPooh73
23.08.2023 14:10+1Добавил бы: Иван Чукич, "Функциональное программирование на C++". Хорошее дополнение к книге Мейерса по Modern C++.
AnimeSlave
23.08.2023 14:10+1Очень странный набор книг. Для кого он? В заголовке написано
Для разработчиков
. Возникают вопросы. А разработчиков чего? Разработчиков на чём? Для разработчиков на C++? Хорошо. Какой уровень этих разработчиков? Для молодых разработчиков давным давно есть список проверенных книг, который постоянно обновляется. Всё что в него не попало, либо повторяет уже существующие книги, либо узкоспециализированные книги, которые понадобятся только в конкретных задачах, либо шлак, который нет смысла даже читать. Список на английском, но книги хорошо гуглятся и можно найти русские издания. Вот их бы в виде статьи на хабре прорекламировать.А ещё бы лучше по настоящему пройтись по современным российским авторам книг по программированию, и порекомендовать именно достойные к прочтению. Я бы с удовольствием почитал. Потому что, к примеру, список книг для C++ разработчиков на английском есть, я его выше указал, а такого же но с русскими авторами - нет. Чем не тема для будущей статьи? Тем более, что МТС вызвалась составлять списки. Почему бы не сделать это с умом для читателей?
neon1ks
И не забываем про https://en.cppreference.com/w/