Зачем нужна
еще одна книга о
С++?
По последним данным, на рынке продается по крайней мере 2 768 942 книги о С++, не говоря уже о
всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями. И все же в этом
изобилии наблюдается удручающее однообразие. Просматривать полку книг о С++ в книжном
магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают
одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах. По моим
подсчетам, 2 768 940 из них предназначены для новичков, ориентированы на конкретный компилятор
или представляют собой справочники по синтаксису С++. Для тех, кто уже знает язык и желает
подняться на следующий уровень, существующая ситуация оборачивается сплошными
разочарованиями и расходами. Чтобы узнать что-то новое, приходится дергать главу отсюда и раздел
оттуда. Для знатока С++ такая трата времени непозволительна.
Эта книга — совсем другое дело. Прежде всего, она предполагает, что вы уже владеете С++. Вероятно,
вы программировали на С++ в течение года-двух или более. Став настоящим асом, на вопрос о
должности вы перестали скромно отвечать «Программист»; теперь ваш титул складывается из слов
«Старший», «Специалист», «Ведущий», «Разработчик», «Проектировщик» (расставьте в нужном
порядке). Вы уже знаете, что «перегрузка оператора» не имеет никакого отношения к телефонной
компании, а «класс-коллекция» — вовсе не сборище филателистов. На вашей полке стоит книга
Страуструпа «Annotated C++ Reference Manual», которую в профессиональных разговорах вы часто
сокращенно именуете ARM и даже не считаете нужным расшифровывать.
Если вы узнали себя, добро пожаловать — эта книга для вас. Ее можно было бы еще назвать «С++:
путь гуру». С++ в ней описывается совсем не так, как в книгах для начинающих. На этом уровне С++
— не столько язык, сколько целая субкультура со своими идиомами, приемами и стандартными
архитектурными решениями, которые не следуют очевидным образом из формального описания языка.
Об этом «языке внутри языка» редко упоминается с книгах и журналах. Одни программисты
самостоятельно обнаруживают все эти возможности и с гордостью считают, что изобрели нечто
потрясающее, пока не выяснится, что «нет ничего нового под солнцем». Другим везет, и они
становятся учениками подлинных мастеров С++ — к сожалению, такие мастера встречаются слишком
редко. В этой книге я попытался проложить третий путь истинного просветления — самостоятельное
изучение. Кроме того, книга предназначена для тех, кто уже достиг заветной цели, но хочет
пообщаться, поболтать в дружеской компании и пошевелить мозгами над очередной головоломкой.
Дао С++
С++ — язык, который изучается постепенно. Лишь после того, как будет сделан последний шаг,
разрозненные приемы и фрагменты синтаксиса начинают складываться в общую картину. По-моему,
изучение С++ чем-то напоминает подъем на лифте. Дзынь! Второй этаж. С++ — это
усовершенствованный вариант С, с сильной типизацией (которую, впрочем, при желании можно
обойти) и удобными комментариями //. Любой программист на С, если он не хочет подаваться в
менеджеры, должен двигаться дальше… а Бьярн Страуструп (Господи, благослови его) придумал для
этого отличную возможность.
Do'stlaringiz bilan baham: