Книги по С++

Rena_T

Такой вопрос. Какие книжки должны быть в стандартном наборе программера С++?
Шилдт,
Майерс,...
Что еще?

psm-home

Есть мнение, что Г. Шилдта в наборе точно не должно быть. За аргументами можно сюда .

poi1981

Страуструп, Саттер, Александреску

psm-home

+

Sharp

Если человек считает себя программистом, то Кнут у него просто обязан быть.
Хотя бы что бы перечитывать его при возникающих вопросах.

Landstreicher

> Страуструп, Саттер, Александреску
+1

Landstreicher

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

laki

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

Alexander08

страуструпа хватед

Sharp

Чтобы избежать упреков, на весь свой пост ставлю ИМХО.
Так вот, программист конечно не должен думать, но если он ни разу не задумывается и даже не имеет понятия, как это все работает и какие существуют алгоритмы для разных задач, то это не программист — это кодер.

Sharp

Ну это совсем радикально.
Но если человек не знает ни одного метода обхода дерева или не в курсе, как работает quicksort, тогда действительно стоит задуматься о его квалификации.

maggi14

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

Sharp

Я хотя и не считаю себя программистом, но на работе у нас стоят три тома Кнута и много всяких других полезных книг.
Но как показывает практика, порой бывает очень полезно перестать тупо стучать по клаве, взять книжку и посмотреть ее.

Sharp

Видишь ли, почему-то все сошлись на мнении, что Страуструпа надо иметь под рукой.
Неужели все считают, что то, что написано в Кнуте можно прочитать один раз и запомнить на всю жизнь, а вот то, что в Страуструпе — уже не получится?
Имхо, очень странное отношение — вроде по сложности книжки равнозначны.

agent007new

Имхо, очень странное отношение — вроде по сложности книжки равнозначны.
В этих книгах разная информация содержится, С++ используется С++-программистом очень часто, а вот реализация алгоритмов сортировки - нет. Не спорю, знать, пусть не абсолютно точно, но идею алгоритмов нужно, чтобы когда они понадобятся их можно было или взять из головы, или вспомнить из Кнута.
На счет книжек: с Шилда, я считаю, неплохо начинать - он не так перегружен информацией, как Страуструп, легко читается и его уровня достаточно для выполнения всех праков. Но, если человек собрался стать профессиональным С++-программистом (т.е. работать и получать за это деньги этой книги очень скоро станет совсем нехватать. Поэтому придется для изучения С++ читать Страуструпа и Стандарт. А для того, чтобы лучше прогать на С++ для начала нужно Меерса прочитать - в нем самые основы содержаться, а потом уж Саттер и Александреску пойдут. Плюс есть еще много полезных книг, которые не привязаны к языку, но которых должен прочитать любой программист: "Рефакторинг" Фоувлера (как-то так "Паттерны проектирования" Банды четырех, да и еще есть много хороших книжек

Landstreicher

> Так вот, программист конечно не должен думать, но если он ни разу не задумывается и даже не
> имеет понятия, как это все работает и какие существуют алгоритмы для разных задач, то это не
> программист — это кодер.
Конечно, программист должен иметь понятие о том, как все работает, и какие существуют алгоритмы. Но не более, чем понятие. Современному программисту не обязательно знать это на таком уровне, как изложено в Кнуте, например, как вывести мат. ожидание и дисперсию числа сравнений в таком-то методе сортировке через производящие функции. Достаточно знать, что, здесь O(n^2 а там O(n log n). А даже если и забыл формулу — посмотрел в справочник, не страшно.
Общие понятия можно прочитать практически в любой книге по программированию, Кнут для таких целей — явный overkill. Я заметил, что начинающие программисты при чтении Кнута не понимают, что им оттуда надо, а что нет, и в результате читают много лишнего. А это время они могли бы потратить на что-нибудь более ценное. Например, усвоение принципов разделения программы на модули. Почему-то Кнут об этом не пишет. А зря. IMHO это гораздо важнее для современного программирования, чем оценка операций в сортировке массива.

Landstreicher

> "Паттерны проектирования" Банды четырех
+10!
IMHO, очень хорошая книга. Читать надо всем, даже тем, кто не пишет (и не будет писать) на С++.

Sharp

Видимо я немного не в теме — а что это за "Банда четырех" ?

agent007new

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

evgen5555

Аналог пресвятой троицы для любителей пофилософствовать в программировании

maggi14

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

Landstreicher

> фиг знает. Имхо они слишком повернуты на ООП.
IMHO вот как раз у них получилось хорошо, не повернуто на ООП. Они предложили удобную терминологию. Я видел много ссылок на их книгу из статей по функциональному программированию, по архитектуре ПО и другим областям, причем в этих статьях не было ни слова про С++. Почитай сам.
Оставить комментарий
Имя или ник:
Комментарий: