Какие действительно сложные книги по программированию? [закрыто]

14

Мне было интересно, какие действительно сложные книги по программированию заставили меня задуматься. Я говорю о языках низкого уровня, таких как c и т. Д. И алгоритмах, точках, функциях и т. Д.

Большое спасибо.

Brandon_R
источник
1
Большая часть серии Wrox довольно жевательная.
Джоэл Этертон
1
Почему люди голосуют? ОП просто хочет несколько книг, которые будут представлять ему проблему ... это не глупый или ОТ вопрос.
Мелани Шебель
4
Это не очень хороший вопрос. В частности, я думаю, что ему не хватает четких критериев для оценки книг. «Жесткий» и «заставляй меня думать» довольно субъективны - мы не знаем вас, и что будет жестким или легким для вас. Или как это будет относиться к другим людям, в этом отношении. Это также ничего не дает для того, чтобы вдохновить ответы и объяснить, почему книги рекомендуются, что может противоречить принципам конструктивности . Некоторое редактирование может помочь, я думаю.
Адам Лир
4
@Melanie - это вопрос типа «список Х», который просто отправит любимую книгу людей в качестве ответа. Если вы проверите ответы, ни у одного из них нет объяснения того, почему упомянутая книга отвечает требованиям ОП (хорошо, что да, но это из 10 ответов).
ChrisF
1
Я согласен с @Anna и @Chris выше, в этом вопросе отсутствуют ключевые части, такие как объяснение, почему эти книги трудны или как оценивать книги друг против друга.
Джош К

Ответы:

29

Искусство компьютерного программирования. Дональд Кнут.

С. Лотт
источник
3
Почему? Что делает его таким хорошим? Пожалуйста, расширьте свой ответ.
Уолтер
2
Вы должны включить это в свой ответ. Я прочитал это, но любой, у кого нет, не поймет, почему они должны даже изучить ваше предложение.
Уолтер
3
@Walter: я не думаю, что я согласен. Я не думаю, что это нуждается в расширении. Книга настолько важна и настолько важна для вычислений, что я не думаю, что она нуждается в объяснении.
С.Лотт
1
Это программисты книги, скорее всего, когда-нибудь планируют читать.
Стивен А. Лоу
1
@RYUZAKI: «Я хочу быть готовым, прежде чем прыгнуть к чему-то, что кажется таким трудным и полезным». Не пытайтесь «подготовиться». Просто прыгайте. Когда вы найдете предмет, который за вами, вы будете знать, что вам нужно учиться. Это преследование на всю жизнь. Вы не можете быть достаточно подготовлены . Вам всегда нужно учиться еще больше.
С.Лотт
13

Введение в алгоритмы

Не так "вводный";)

Демиан Брехт
источник
1
Почему нет («так« вводный »)? Это является введение, используется в CS 101.
Konrad Rudolph
1
@konrad: AFAIK, большинство университетов используют только несколько глав этих книг для обучения.
Hery
Теперь мне пришлось его искать, снося подставку для ноутбука в процессе (я использую Cormen в качестве поддержки для моего ноутбука…). И ты прав. Я забыл последние части книги; это действительно предмет более поздних лекций (некоторые в магистратуре).
Конрад Рудольф
@konrad: ее прибили.
Демиан Брехт
@konrad: звучит как насыщенный событиями процесс;)
Демиан Брехт
10

Дисциплина программирования, Эдгар В. Дейкстра

Как написать корректно-корректный код

Это не книга для чтения, это книга для изучения

Стивен А. Лоу
источник
Стивен, я действительно не изучал эту книгу; но это заставляет меня задать очень важный вопрос: полезен ли он, скажем, WEB-разработчику или C ++-кодеру [драйверы устройств и т. д.] или разработчику Android? Я спрашиваю вас, стоит ли это моего времени? [продолжение в следующем комментарии]
Чани
[продолжение предыдущего комментария] Я новичок, но я быстро учусь. Я читаю тонны блогов, открытого исходного кода и т. Д. Итак, действительно ли чтение вышеприведенной книги (и других подобных) действительно мне поможет? И друг; единственная причина, по которой у меня такой пессимистический настрой, заключается в том, что я прочитал «Проектирование и анализ компьютерных алгоритмов» Aho et. все и, честно говоря, я с трудом использовал эти знания ..... но опять же, серьезно занимался программированием не более 6 месяцев. так что бы вы сказали?
Чани
1
@RYUZAKI: Значит, ты серьезно программировал меньше шести месяцев и нашел Aho et al. алгоритмы книга не сразу полезна? Тогда вы не ищете книги, упомянутые в этом вопросе. Возможно, вы захотите занять некоторое время и почувствовать себя более комфортно в поле, а затем вернуться к ним. Книги в этих ответах (те, которые я знаю, во всяком случае) научат вас вещам и значительно расширят ваше понимание. Они не сделают вас лучшим разработчиком на C #, если вы сейчас это ищете.
Дэвид Торнли
+1: а также наука программирования Дэвида Гриса. Сопутствующая книга, которая расширяет по темам.
S.Lott
2
@RYUZAKI нравятся самые глубокие тексты CS, вы получаете из этого то, что вкладываете в него. Я получил новое понимание математической красоты программирования, а также непосредственного опыта проектирования и доказательства правильности очень маленьких программ. Лучшая часть года проработала мой путь по книге.
Стивен А. Лоу
9

Книга Дракона , безусловно, поможет вам понять концепции низкого уровня.

Mawg говорит восстановить Монику
источник
хороший. я должен был изучить это как часть моей программы CS и нашел это очень интересным, сложным и обогащающим опытом
Chani
6

Семь языков за семь недель позволят вам поиграть. Когда все остальное терпит неудачу, прочитайте «Структура и интерпретация компьютерных программ». Одна из лучших книг по программированию.

Захари К
источник
2
«Семь языков за семь недель» - это очень крутая, но не очень сложная книга по программированию.
Хирон
Если ваша цель состоит в том, чтобы книга была трудной ради того, чтобы быть твердой, вы правы, с другой стороны, это книга, в которой содержится много полезной информации
Захария К
4

Я очень рекомендую Численные Рецепты: Искусство Научного вычисления .

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

  1. До третьего издания существовали разные книги для разных языков, поэтому были числовые рецепты на C , числовые рецепты на фортране и даже числовые рецепты на паскале.
Марк Бут
источник
Ух ты, я даже не думал о шляпной книге примерно 15 лет
Захари К
Да, я купил первое издание в университете и сумел найти применение алгоритмам в этих книгах в каждой работе, над которой я работал с тех пор.
Марк Бут
2

Некоторые альтернативы известным (и превосходным) книгам уже предложены:

  • Системы баз данных: полная книга, 2-е изд. есть вторая часть, которая фактически объясняет, как реализована сама СУБД. Имеет много материалов о том, как эффективно хранить и индексировать данные и как на самом деле выполнять запросы в базе данных.
  • Инженерный подход к компьютерным сетям обсуждает самые глубокие детали фактического обеспечения работы сетей. Если вы когда-нибудь захотите реализовать высокопроизводительное сетевое приложение или устройство, этот текст обеспечит отличную фундаментальную основу.
  • Алгоритмы аппроксимации состоят из обширного обзора комбинаторных задач оптимизации. Автор советует углубленно изучить проблемы, прежде чем пытаться создать приближение, что очень поучительно.
  • Типы и языки программирования - это 600+ страниц теории и методов реализации, посвященных типам в языках программирования. Оказывается, есть невероятное количество теории, чтобы иметь дело с. Если вы когда-нибудь захотите создать полноценный язык программирования, здесь есть чему поучиться.
Декард
источник
2

Низкий уровень .NET: CLR через C # Дж. Рихтера. Стоит прочитать, если вы хотите знать ядро ​​.NET.

алексей
источник
1

Я недавно начал читать Восторг Хакера (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Это может быть не очень высоко в сложном аспекте. Но я бы дал ему высокие оценки по основательности, низкому уровню и умному решению проблем, в соответствии с духом его имени.

vpit3833
источник
1

Вы можете начать изучать языки Lisp. Это будет непросто! Плюс это счастливый отрыв от обычного программирования

Чани
источник