Какие действительно сложные книги по программированию? [закрыто]
14
Мне было интересно, какие действительно сложные книги по программированию заставили меня задуматься. Я говорю о языках низкого уровня, таких как c и т. Д. И алгоритмах, точках, функциях и т. Д.
Почему люди голосуют? ОП просто хочет несколько книг, которые будут представлять ему проблему ... это не глупый или ОТ вопрос.
Мелани Шебель
4
Это не очень хороший вопрос. В частности, я думаю, что ему не хватает четких критериев для оценки книг. «Жесткий» и «заставляй меня думать» довольно субъективны - мы не знаем вас, и что будет жестким или легким для вас. Или как это будет относиться к другим людям, в этом отношении. Это также ничего не дает для того, чтобы вдохновить ответы и объяснить, почему книги рекомендуются, что может противоречить принципам конструктивности . Некоторое редактирование может помочь, я думаю.
Адам Лир
4
@Melanie - это вопрос типа «список Х», который просто отправит любимую книгу людей в качестве ответа. Если вы проверите ответы, ни у одного из них нет объяснения того, почему упомянутая книга отвечает требованиям ОП (хорошо, что да, но это из 10 ответов).
ChrisF
1
Я согласен с @Anna и @Chris выше, в этом вопросе отсутствуют ключевые части, такие как объяснение, почему эти книги трудны или как оценивать книги друг против друга.
Джош К
Ответы:
29
Искусство компьютерного программирования. Дональд Кнут.
Почему? Что делает его таким хорошим? Пожалуйста, расширьте свой ответ.
Уолтер
2
Вы должны включить это в свой ответ. Я прочитал это, но любой, у кого нет, не поймет, почему они должны даже изучить ваше предложение.
Уолтер
3
@Walter: я не думаю, что я согласен. Я не думаю, что это нуждается в расширении. Книга настолько важна и настолько важна для вычислений, что я не думаю, что она нуждается в объяснении.
С.Лотт
1
Это программисты книги, скорее всего, когда-нибудь планируют читать.
Стивен А. Лоу
1
@RYUZAKI: «Я хочу быть готовым, прежде чем прыгнуть к чему-то, что кажется таким трудным и полезным». Не пытайтесь «подготовиться». Просто прыгайте. Когда вы найдете предмет, который за вами, вы будете знать, что вам нужно учиться. Это преследование на всю жизнь. Вы не можете быть достаточно подготовлены . Вам всегда нужно учиться еще больше.
Почему нет («так« вводный »)? Это является введение, используется в CS 101.
Konrad Rudolph
1
@konrad: AFAIK, большинство университетов используют только несколько глав этих книг для обучения.
Hery
Теперь мне пришлось его искать, снося подставку для ноутбука в процессе (я использую Cormen в качестве поддержки для моего ноутбука…). И ты прав. Я забыл последние части книги; это действительно предмет более поздних лекций (некоторые в магистратуре).
Конрад Рудольф
@konrad: ее прибили.
Демиан Брехт
@konrad: звучит как насыщенный событиями процесс;)
Стивен, я действительно не изучал эту книгу; но это заставляет меня задать очень важный вопрос: полезен ли он, скажем, WEB-разработчику или C ++-кодеру [драйверы устройств и т. д.] или разработчику Android? Я спрашиваю вас, стоит ли это моего времени? [продолжение в следующем комментарии]
Чани
[продолжение предыдущего комментария] Я новичок, но я быстро учусь. Я читаю тонны блогов, открытого исходного кода и т. Д. Итак, действительно ли чтение вышеприведенной книги (и других подобных) действительно мне поможет? И друг; единственная причина, по которой у меня такой пессимистический настрой, заключается в том, что я прочитал «Проектирование и анализ компьютерных алгоритмов» Aho et. все и, честно говоря, я с трудом использовал эти знания ..... но опять же, серьезно занимался программированием не более 6 месяцев. так что бы вы сказали?
Чани
1
@RYUZAKI: Значит, ты серьезно программировал меньше шести месяцев и нашел Aho et al. алгоритмы книга не сразу полезна? Тогда вы не ищете книги, упомянутые в этом вопросе. Возможно, вы захотите занять некоторое время и почувствовать себя более комфортно в поле, а затем вернуться к ним. Книги в этих ответах (те, которые я знаю, во всяком случае) научат вас вещам и значительно расширят ваше понимание. Они не сделают вас лучшим разработчиком на C #, если вы сейчас это ищете.
Дэвид Торнли
+1: а также наука программирования Дэвида Гриса. Сопутствующая книга, которая расширяет по темам.
S.Lott
2
@RYUZAKI нравятся самые глубокие тексты CS, вы получаете из этого то, что вкладываете в него. Я получил новое понимание математической красоты программирования, а также непосредственного опыта проектирования и доказательства правильности очень маленьких программ. Лучшая часть года проработала мой путь по книге.
Стивен А. Лоу
9
Книга Дракона , безусловно, поможет вам понять концепции низкого уровня.
хороший. я должен был изучить это как часть моей программы CS и нашел это очень интересным, сложным и обогащающим опытом
Chani
6
Семь языков за семь недель позволят вам поиграть. Когда все остальное терпит неудачу, прочитайте «Структура и интерпретация компьютерных программ». Одна из лучших книг по программированию.
«Семь языков за семь недель» - это очень крутая, но не очень сложная книга по программированию.
Хирон
Если ваша цель состоит в том, чтобы книга была трудной ради того, чтобы быть твердой, вы правы, с другой стороны, это книга, в которой содержится много полезной информации
Фантастическая книга, в которой подробно описаны многие полезные научные алгоритмы. На протяжении моей карьеры в области встроенных и промышленных вычислительных систем, одна или другая версия, на том или ином языке 1 , была моим постоянным спутником.
Ух ты, я даже не думал о шляпной книге примерно 15 лет
Захари К
Да, я купил первое издание в университете и сумел найти применение алгоритмам в этих книгах в каждой работе, над которой я работал с тех пор.
Марк Бут
2
Некоторые альтернативы известным (и превосходным) книгам уже предложены:
Системы баз данных: полная книга, 2-е изд. есть вторая часть, которая фактически объясняет, как реализована сама СУБД. Имеет много материалов о том, как эффективно хранить и индексировать данные и как на самом деле выполнять запросы в базе данных.
Инженерный подход к компьютерным сетям обсуждает самые глубокие детали фактического обеспечения работы сетей. Если вы когда-нибудь захотите реализовать высокопроизводительное сетевое приложение или устройство, этот текст обеспечит отличную фундаментальную основу.
Алгоритмы аппроксимации состоят из обширного обзора комбинаторных задач оптимизации. Автор советует углубленно изучить проблемы, прежде чем пытаться создать приближение, что очень поучительно.
Типы и языки программирования - это 600+ страниц теории и методов реализации, посвященных типам в языках программирования. Оказывается, есть невероятное количество теории, чтобы иметь дело с. Если вы когда-нибудь захотите создать полноценный язык программирования, здесь есть чему поучиться.
Я недавно начал читать Восторг Хакера (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Это может быть не очень высоко в сложном аспекте. Но я бы дал ему высокие оценки по основательности, низкому уровню и умному решению проблем, в соответствии с духом его имени.
Ответы:
Искусство компьютерного программирования. Дональд Кнут.
источник
Введение в алгоритмы
Не так "вводный";)
источник
Дисциплина программирования, Эдгар В. Дейкстра
Как написать корректно-корректный код
Это не книга для чтения, это книга для изучения
источник
Книга Дракона , безусловно, поможет вам понять концепции низкого уровня.
источник
Семь языков за семь недель позволят вам поиграть. Когда все остальное терпит неудачу, прочитайте «Структура и интерпретация компьютерных программ». Одна из лучших книг по программированию.
источник
Я очень рекомендую Численные Рецепты: Искусство Научного вычисления .
Фантастическая книга, в которой подробно описаны многие полезные научные алгоритмы. На протяжении моей карьеры в области встроенных и промышленных вычислительных систем, одна или другая версия, на том или ином языке 1 , была моим постоянным спутником.
источник
Некоторые альтернативы известным (и превосходным) книгам уже предложены:
источник
Низкий уровень .NET: CLR через C # Дж. Рихтера. Стоит прочитать, если вы хотите знать ядро .NET.
источник
Я недавно начал читать Восторг Хакера (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Это может быть не очень высоко в сложном аспекте. Но я бы дал ему высокие оценки по основательности, низкому уровню и умному решению проблем, в соответствии с духом его имени.
источник
Вы можете начать изучать языки Lisp. Это будет непросто! Плюс это счастливый отрыв от обычного программирования
источник