Язык С++

Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения, 6-е издание — М.: Вильямс, 2012. — 1248 с.

Когда я учился такой книги, к сожалению, не было. Книга толстая, но читать ее интересно. Автор не является членом комитета стандартизации языка, а преподает в ВУЗе, поэтому написал не справочник, а учебник. Это лучший учебник по С++, который я видел. Прата собрал весь свой педагогический опыт и сделал упор именно на те аспекты, с которыми у студентов возникают проблемы (как ни странно, но у моих студентов те же самые проблемы, поэтому я рекомендую им эту книгу). Книга новая и в ней описывается новый стандарт. Специально под фичи С++11 выделено всего 50 страниц, но по ходу всей книги делаются небольшие отступления на эту тему.

Б. Страуструп Язык программирования С++ Б. Страуструп Язык программирования С++. Специальное издание. Пер. с англ. – М.: Издательство Бином, 2011 г. – 1136 с.

Хорошая книга от автора языка. Текст книги сухой, хотя в ней есть примеры, советы по поводу “хорошего кода” и даже упражнения. Лично я, использую ее в качестве справочника – как учебник книга вряд ли может сравниться с произведением Прата.

Рецензия от другого, уважаемого мной программиста:

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

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

У меня сложилось впечатление, что книга писалась в жутко укуренном состоянии. Совершенно никакой последовательности мысли. Напоминает письмо дяди Федора из Простоквашино. Читается тяжело и муторно, насквозь пронизана бессмысленными и никому не нужными лирическими отступлениями.

Когда я впервые читал эту книгу в русскоязычном издании, я долго не мог понять, какому идиоту пришло в голову сверстать исходники наклонным, и главное, не моноширинным шрифтом. Когда я узнал, что предпочтения относительно шрифта исходили от самого автора, мне вообще поплохело.

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

978-5-94074-990-5_270_369_5_80 Мейерс С. Эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. – М.: ДМК Пресс, 2014. – 294с.
meiers-effektivnoe-ispolzovanie-c-55-vernyh Мейерс С. Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ. – М.: ДМК Пресс, 2006. – 300с.

Две книги Скотта Мейерса для углубленного изучения С++. Выполнены в виде сборников правил типа: “Никогда не вызывайте виртуальные функции в конструкторе или деструкторе”. Правила касаются понимания концепций объектно-ориентированного программирования, вопросов управления памятью, обработки ошибок и эффективности кода. К правилами прилагается исчерпывающее объяснение. В очень небольшой части материал книг пересекается, но в целом, они дополняют друг друга. Начать изучение стоит с книги “35 рекомендаций” – она попроще.

Андрей Александреску. Современное проектирование на C++. Андрей Александреску. Современное проектирование на C++. Обобщенное программирование и прикладные шаблоны проектирования. Перевод с английского — Издательский дом «Вильямс», 2002 г. 336 с.

Отзыв от уважаемого мной программиста:

Если вы будете читать эту книгу впервые, то сначала у вас закипит мозг, после чего вы свалитесь со стула, а после того, как придете в себя, первой вашей мыслью будет фраза «Них#я себе, что можно на C++ вытворять!».

Это одна из тех редких книг, которую нужно прочесть всем, кто желает стать настоящим профессионалом своего дела.

Книга рассказывает об основных паттернах проектирования с упором на их реализацию. Особый восторг вызывают фирменные метапрограммные рецепты господина Александреску.

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

Герб Саттер, Андрей Александреску. Стандарты программирования на C++. 101 правило и рекомендация. Герб Саттер, Андрей Александреску. Стандарты программирования на C++. 101 правило и рекомендация. Перевод с английского — Издательский дом «Вильямс», 2005 г. 224 с.

Отзыв от уважаемого мной программиста:

На мой взгляд это одна из лучших книг (если не самая лучшая) из серии «C++ In-Depth». Коротко, просто и по делу. Ничего лишнего, ни одной плохой рекомендации. Создается ощущение, что читаешь некий доклад о том как нужно программировать, основанный на опыте всех программистов, полученном с момента создания языка C++, из которого тщательным образом было отобрано только самое лучшее и выкинута вся муть, которую выдумывают современные воспаленные мозги.

Остается добавить, что само название, «101 правило и рекомендация», это не просто бойкое маркетинговое название, выдуманное молодым маркетологом-энтузиастом. Книга действительно представляет собой сто одну коротенькую рекомендацию по программированию.

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

4 thoughts on “Язык С++

  1. Adham

    Здравствуйте. Как скачать эти книги:

    • Стивен Прата. Язык программирования C++ (C++11). Лекции и упражнения, 6-е издание — М.: Вильямс, 2012. — 1248 с.
    • Б. Страуструп Язык программирования С++. Специальное издание. Пер. с англ. — М.: Издательство Бином, 2011 г. — 1136 с.
  2. Дмитрий

    Владимир, в какой последовательности посоветуете изучать языки программирования и иже с ними, чтобы в итоге начать разрабатывать игры для Android. При условии что я совсем начинающий. Спасибо.

    1. admin Post author

      Здравствуйте. Тут книги по С++, но игры для Android чаще пишут на Java. У меня нет подборки книг по Java, хотя я писал на ней наиболее серьезные проекты в моей жизни, и не будет, т.к. мне не понравилось.

      У меня на блоге есть статья про разработку игрушки под Android на С++, скоро будет новая игра.

      Если вы хотите начать с С++ – попробуйте книжку Стивена Прата.
      Чтобы нормально программировать мало знать один язык программирования:
      – я писал игру с использованием библиотеки Qt (по этой теме я советую читать мой блог);
      – нельзя разобраться с Qt без понимания принципов объектно-ориентированного программирования (наиболее общая и популярная книжка у Гради Буча – советую ее, хотя она объемная). Если вы будете использовать Java – ООП вам также понадобится;
      – очень сложно нормально спроектировать программу не применяя шаблоны проектирования (эту тему я описываю на блоге, но стоит найти книжку Гаммы и Хелма);
      – в игре у меня использовались базы данных (они будут почти в любой игре, на любом языке) – понадобится хотя бы поверхностное знание SQL (одна из самых примитивных книжек у Мартина Грабера, но с нее можно начать);
      – в старой игре я использовал QSS (это расширение каскадных таблиц стилей, которые применяются в web), а в новой – буду использовать QML и JavaScript;
      – я считаю, что огромное влияние на меня оказали книжки Роберта Мартина, Мартина Фаулера, статьи по SOLID и все, что связано с чистым кодом и правильной архитектурой. Если бы я мог вернуться лет на 10 назад – я бы сразу прочитал книжку Роберта;
      – код должен где-то храниться и мне очень помогают системы контроля версий. На первой работе я пользовался SVN, на четвертой – Mercurial, а дома использую Git. Я думаю, что в любом случае, крайне полезной будет книжка Чакона “Pro Git”;
      – это далеко не все, например, на С++ (да и на других языках тоже, в какой-то мере) трудно написать хороший, безопасный код без чтения специальной литературы. Для C++ ей являются книги Александреску, Саттера, Маерса, Гуртового и прочих авторитетных людей.

      Начать с книжки Стивена Прата, затем прочитать Роберта Мартина (очень легко читается), приложить усилия для усвоения книги Буча и пролистать книжку Грабера. Все – можно писать первую. игрушку. Если выберите Java – надо будет лишь заменить первую книгу.

      Если вы реально сильно мотивированы – можете написать мне в skype (контакты есть на блоге), я помогу.

Добавить комментарий