Итак, вы уже прочитали одну или несколько вводных книг по C++, успели попрограммировать на этом языке и считаете, что уже все про него знаете. В таком случае вам помогут следующие книги.
"Effective C++: 55 Specific Ways to Improve Your Programs and Designs", автор Scott Meyers. Чаще всего название сокращают до "Effective C++". Скотт Мейерс рассказывает, что книга оказалась очень удачна тем, что разбита на маленькие независимые друг от друга главы. И ее очень удобно читать урывками, когда нет времени: в транспорте, в перерывах между занятиями. У этой книги есть продолжение - "More Effective C++: 35 New Ways to Improve Your Programs and Designs". Вот по ее поводу Мейерс сокрушается, что не удалось выдержать тот же стиль, и она по популярности проигрывает первой. Книга эта написана довольно давно, поэтому осторожнее относитесь к фразам "это еще не во всех современных компиляторах реализовано" и подобным. Это современность была несколько лет назад. Обратите внимание на цифры в названиях. Изначально в "Effective C++" было 50 советов, но в третьем издании Мейерс добавил еще 5 и получилось, что их теперь 55. В наших книжных магазинах названия переводены слегка по-разному, но по числам в названии всегда можно понять о какой именно книге идет речь. "Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ" на Ozon.ru "Наиболее эффективное использование C++. 35 новых рекомендаций по улучшению ваших программ и проектов" на Ozon.ru |
"Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions." Книга Герба Саттера, которая также имеет продолжение - More Exceptional C++. Составлена на основе его Guru of the Week. Это набор интересных вопросов по C++ с ответами на них. Я не читала книгу, а читала Guru of the Week. У Саттера на сайте написано какие именно выпуски входят в какие книги, плюс в книгах есть еще дополнительные, для затравки, я так понимаю. :-) "Решение сложных задач на С++" на Ozon.ru "Новые сложные задачи на C++" на Ozon.ru |
"Язык программирования С++", Бьерн Страуструп. Часто на вопрос "Я хочу изучать С++, что бы мне такое почитать?" отвечают - "А почитай Страуструпа!". Это безопасный совет - Страуструп не мог написать плохо о языке своего собственного сочинения. Но вот начинать с этой книжки нельзя категорически. Её рекомендуют еще со стародавних времен, когда по С++ особенно нечего было читать. Но те времена давно прошли. Для человека незнакомого с С++ (возможно, и не знакомого с программированием вообще) - это как нокаутирующий удар. Он не просто ничего не поймет, но больше никогда и не вернется к изучению этого ужасного сложного языка. Почему так? Книга написана очень тяжелым языком. Ёмкие предложения, ничего лишнего. Остальные книги читаются легче, некоторые даже разбавлены веселыми примерами, анекдотами, а здесь такого нет. Не надо начинать с нее. А вот продолжить - стоит. Во-первых, несмотря на тяжелый язык есть что-то в ней неуловимо притягательное, когда втянешься в чтение. Во-вторых, считается, что каждый достойный С++ программист просто обязан прочитать эту книгу, так уж сложилось. Читать ее следует медленно, проникаясь духом великого и могучего языка С++, у меня ее чтение вызывает философско-пофигистические настроения... Возможно, кому-то покажется интересным такой момент: главы этой книги сопровождаются упражнениями. В оригинале эта книга называется "The C++ Programming Language", тут никаких сюрпризов. "Язык программирования С++" есть на lib.ru. "Язык программирования C++ Специальное издание" на Ozon.ru |
"Современное проектирование на C++", Андрей Александреску. Книга посвящена в основном шаблонам. Это сложная в чтении книга, не надо спешить при ее чтении, над каждым примером кода придется подолгу медитировать. Процесс чтения напоминает американские горки - дух захватывает периодически. После некоторых размышлений, я все-таки решила включить эту книгу в этот раздел, а не в раздел для фанатов. Потому что эта книга стала очень модной в последние годы и пользуется бешеной популярностью. Модный хардкор такой. :-) При применении изложенных там приемов нужно полностью понять код и идею, иначе можно такого наворотить... Несмотря на то, что я из этой книги узнала много нового, применять эти приемы на практике мне не приходилось. Я все же стараюсь обходиться более простыми решениями. Название оригинала: Modern C++ Design: Generic Programming and Design Patterns Applied "Современное проектирование на C++" на Ozon.ru |
Это продолжение разговора о хороших книгах по С++. Начало тут.