Из Саттера знаю только «Решение сложных задач на C++», «Новые сложные задачи на C++» и «Саттер, Александреску. Стандарты программирования на С++.101 правило и рекомендация»
Все эти книги предназначены для тех, кто уже знаком C++ и хочет улучшить свои знания => это книги совсем другого класса
Ну, почему-то рекомендуют всякие другие книжки. Хотя, по стилю написания Страуструповская книжка мне намного больше, чем Кнутовские, понравилась. У последнего вообще муть какая-то…
У Кнута проблема в том, что лучше него в техе никто не разбирается. И полноценных книжек по теху больше нет. По латеху — вагон и маленькая тележка, но в латехе без знаний теха очень неуютно. Это как пользоваться линуксом без знания консоли…
Я в курсе в общем. И на счет писательских талантов Дональда Эрвиновича абсолютно согласен. Чего стоит одно то, что он материал повышенной сложности излагает совместно с базовыми вещами. За счет это нить повествования рвется и нифига не понятно.
Вот-вот, и объясняет хреново: я все эти приколы с \global, \edef, \noexpand, \expandafter, \futurelet и т.п. начал понимать, лишь в ходе эксперимента («что будет, если сделать так»…). Поначалу убивал довольно много времени на эксперименты. Зато потом смог делать вещи, вроде таких и таких.
Потому что: сколько людей, столько и мнений. Я, например, Шилдта на дух не переношу, а его книжку по С++ многие рекомендуют.
Но мне трудно судить о годности того же Страуструпа для начинающих, потому что к тому моменту, когда я в первый раз начал читать его книгу, у меня уже был нескольколетний стаж программирования на С и ковыряния в потрохах Юникса. То есть, при чтении Страуса многие вещи мне казались само собой разумеющимися и не требующими дополнительных разъяснений. Как это выглядело бы с точки зрения полного новичка, представить не могу. Лишь предполагаю, что может показаться сложным и запутанным как сам материал, так и изложение автора.
А на мой взгляд стиль написания автора (Страуструпа) вполне хорошим кажется.
Про Кнута: если ты имеешь в виду «Всё про ТеХ», то здесь да - тяжеловатый стиль изложения. И на учебник совсем не похоже. Но альтернатив-то практически нету, как ты правильно заметил в одном из комментов.
«Искусство программирования» у него тоже не сахар…
Ну это всё-таки, грубо говоря, фундаментальный курс по алгоритмам, а здесь можно найти более легко читаемые и понимаемые альтернативы - Вирт, Кормен-Лейзерсон-Ривест, Ахо-Хопкрофт-Ульман и др.
Вот интересно, а Страус был настолько Труп, что не осилил написать приличную книженцию по им же выдуманному языку?
А мне понравилось его книга. Изложено системно, что как раз по мне. Правда я читал ее на английском, а то иногда такие забавные ляпы встречаются в переводах.
Например, у меня есть книга «Философия Java», так там безобидное слово «замыкание» (closure) зачем-то перевели как «клауза» или еще как-то не так (сейчас нет книги под рукой, чтобы точно вспомнить).
Ну перепутал человек императивное и функциональное программирование. С ним еще и не такое бывает…
Тут позволю себе немного потроллить.
Все не так просто, оказывается. Возьмем смолток. Самый что ни на есть императивный и самый-самый объектно-ориентированный язык, не считая симулы. Однако, чуть ли не основным строительным элементом языка является так называемый «блок», а это по сути та же лямбда... Даже обыкновенные if и while не обходятся без лямбды! Ужас! Даже не все считающиеся функциональными языки позволяют себе такое.
(тут сразу вспоминается весь такой почти-почти-функциональный C#, где лямбды добавили лишь в версии v2.0, а до этого были v1.0 и v1.1)
В общем, шаблоны мышления и ярлыки иногда хороши, но они порою расходятся с реальностью.
К C++ это не относится, т.к. его невозможно адекватно использовть без применения паттернов.
Паттерны языконезависимы
Да нет, паттерны определяются особенностями языка. Например те-же смарт-поинтеры суть нонсенс в языках с автоматической сборкой мусора. Да и покажите мне использование паттернов из GoF в таком языке как Haskell или Ocaml. Да не выйдет ничего, там свои паттерны/приемы/самовары.