РЕЦЕНЗИИ

Джесс Либерти. Освой самостоятельно С++. 10 минут на урок. - М.: ИД "Вильямс". 2004. - 352 с.

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

Другой интересный вопрос, насколько верна реклама и действительно ли достаточно десяти минут на урок? Книга состоит из 27 уроков, и если считать по 10 минут на каждый, то 270 минут, или 4,5 часа, должно быть достаточно для ее прочтения и усвоения. Мне это показалось не совсем реальным, и, отметив время начала чтения, я попутно решил провести эксперимент.

Немного о самой книге. С удивлением прочитал посвящение - не то американским разведчикам, не то сотрудникам ФБР: "Эта книга посвящена людям, работающим ради нашей безопасности и свободы, а также памяти 11 сентября". (Погибших жаль, но могу сказать, что неоднократно бывав, хорошо зная и любя ВТЦ, я не сторонник официальной американской версии этих событий.) Читать текст оказалось трудно из-за множества неточностей перевода и некорректной терминологии. Язык Си в нем обозначается как С. Это неудачно, поскольку Си - гостированное русское название этого языка, которое трудно спутать с предлогом "с". Правильнее говорить "исполнимая", а не "выполнимая" программа, как в книге; "в Unix" или "под Unix", а не "на Unix" и т. д. "Каждое выражение, в котором есть операторы, должно интерпретироваться компилятором" (с. 40). Здесь правильнее говорить о разборе выражения компилятором. Конечно же данные не "заталкиваются", не "проталкиваются в стек" (с. 122) и не "выталкиваются" из него, а помещаются в стек и извлекаются из стека. И такой непрограммистский язык по всей книге. (Подобные переводы по результату в чем-то очень схожи с воздействием "сатириков", уже набивших всем оскомину на ТВ, вбивающих в зрителей искалеченный русский язык.) Идея автора - провести читателя за собой в ходе разработки одной-единственной программы - калькулятора, демонстрируя разные элементы языка.

Первые пять уроков: введение, основные понятия, ввод-вывод на экран, арифметические выражения, типы переменных и if - пробегаются очень быстро. В книге даются советы, откуда скачать бесплатный компилятор языка С++, я выбрал сайт компании Borland (www.Borland.com). После этого я советовал бы читателю сделать небольшой перерыв.

Следующие три урока посвящены более интересным вещам: обработка исключений, функции, разбиение программы на модули. Уроки 9 и 10 показывают работу с циклами. Если нет сверхмотивации для изучения С++, то в этом месте рекомендую сделать перерыв подольше и заняться чем-то не связанным с программированием. Важно, чтобы прочитанное у вас в голове уложилось, - а это процесс не столько информационный, сколько биохимический: нужно время, чтобы проросли новые синапсы и образовались устойчивые связи.

Уроки 11 и 12 посвящены оператору выбора switch, работе с массивами. Наконец, с 13-го урока начались чисто Си-шные фокусы, такие, как динамическая память, стеки и работа с указателями. Критичен для понимания С++ урок 13, в котором говорится о работе с указателями. На него тратится от получаса до часа времени. По ходу описания языка авторы пытаются рассказать и о процессе разработки программы, о ее жизненном цикле (урок 14. "Отладка"). С 17-го урока и до конца речь идет об основах объектно-ориентированного программирования на С++.

Чтобы вас не томить, скажу, что по прочтении книги у меня сложилось следующее впечатление: изложение материала хотя местами заметно упрощенное, но достаточно честное. В итоге можно сказать, что скорее всего изучить С++ за 4,5 часа у вас, как и у меня, не получится. Однако внимательно прочитать книгу дня за два-три вполне реально. Замечу, что прочтения описания языка совершенно недостаточно для его освоения. Освоить язык программирования можно только в повседневной практической работе с ним, пока не наступит момент, когда вы почувствуете, что не думаете о том, как написать, а только о том, что пишете. Код записывается вами уже совершенно автоматически. Для каждого программиста срок наступления этого момента сугубо индивидуален - от месяца до года.

Версия для печати