Які є справді жорсткі книги програмування? [зачинено]


14

Мені було цікаво, які є справді жорсткі книги з програмування, які б змусили мене задуматися. Я говорю про мови низького рівня, такі як c тощо та алгоритми, точки, функції тощо.

Дуже дякую.


1
Більшість серій Wrox досить жувальні.
Джоель Етертон

1
Чому люди беруть участь у заходах? ОП просто хоче, щоб книжки, які поставили б йому виклик ... це не дурне або невідповідне питання.
Мелані Шебель

4
Це не дуже вдале запитання. Зокрема, я думаю, що в ньому відсутні чіткі критерії для судження книг. "Жорсткий" і "змусити мене думати" є досить суб'єктивними - ми вас не знаємо, і що буде для вас важко чи просто. Або як це стосується інших людей, з цього приводу. Це також нічого не надихає на відповіді, щоб пояснити, чому книги рекомендуються, що потенційно суперечить принципам конструктивності . Я думаю, що деякі редагування можуть допомогти.
Адам Лір

4
@Melanie - це запитання типу "список X", яке просто отримає улюблену книгу людей як відповідь. Якщо ви перевіряєте відповіді, жоден з них не має жодного пояснення того, чому згадана книга відповідає вимогам ОП (добре, що це одна, але це 10 варіантів відповідей).
ChrisF

1
Я згоден з вищевикладеними @Anna та @Chris, у цьому питанні бракує ключових частин, таких як пояснення, чому ці книги важкі або як оцінювати книги одна проти одної.
Джош К

Відповіді:


29

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


3
Чому? Що робить його таким гарним? Будь ласка, розгорніть свою відповідь.
Вальтер

2
Ви повинні це включити у свою відповідь. Я прочитав це, але кожен, хто цього не зробив, не зрозуміє, чому вони навіть повинні розглянути ваші пропозиції.
Вальтер

3
@Walter: Я не думаю, що я згоден. Я не думаю, що це потребує розширення. Книга настільки важлива і настільки центральна для обчислень, що я не вважаю, що їй потрібні пояснення.
С.Лотт

1
Це, швидше за все, програмісти книг планують читати колись.
Стівен А. Лоу

1
@RYUZAKI: "Я хочу бути готовим до того, як заскочити на щось, що здається таким складним і таким корисним". Не турбуйтеся намагатися "підготуватися". Просто заскочіть. Коли ви знайдете предмет, який знаходиться поза вами, ви дізнаєтесь, що вам потрібно вивчити. Це довічна гонитва. Можливо, ви не можете бути достатньо готовими . Вам завжди потрібно буде навчитися ще більше.
S.Lott

13

Вступ до алгоритмів

Не так "вступно";)


1
Чому б і ні ("так" вступний ")? Це є введення, використовується в CS 101.
Konrad Rudolph

1
@konrad: AFAIK, більшість університетів використовують лише кілька розділів цих книг для викладання.
Ері

Тепер мені довелося роздивитися це, знімаючи підставку для свого ноутбука (я використовую Cormen як підтримку свого ноутбука…). І ти маєш рацію. Я забув останні частини книги; вони справді є предметом пізніших лекцій (деякі на майстер-курсах).
Конрад Рудольф

@konrad: Ері прибив її.
Дем’ян Брехт

@konrad: звучить як процес, що складається з подій;)
Дем'ян Брехт

10

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

Як написати доказово правильний код

Це не книга для читання, це книга для вивчення


Стівен, я дуже не заглянув у цю книгу; але це змушує мене задати дуже критичне запитання: чи корисний це, скажімо, розробник WEB або кодер C ++ [драйвери пристроїв тощо] чи розробник Android? Я запитую вас, чи варто того мого часу? [продовження у наступному коментарі]
Chani

[продовження з попереднього коментаря] Я новачок, але я вчуся злісно швидко. Я читаю тонни блогів, код з відкритим кодом тощо. Чи справді читання вищезгаданої книги (та інших подібних видів) дійсно мені допоможе? І друг; Єдиною причиною того, що я маю таке песимістичне ставлення, є те, що я читав «Дизайн та аналіз комп’ютерних алгоритмів» Aho et. все, а якщо говорити правду, я навряд чи використовую ці знання ..... але знову ж таки я серйозно програмував менше 6 місяців. так що б ви сказали?
Чані

1
@RYUZAKI: Отже, ви серйозно програмували менше півроку, і ви знайшли Aho et al. Книга алгоритмів не відразу корисна? Тоді ви не шукаєте книг, згаданих у цьому питанні. Можливо, ви захочете зайняти деякий час і приємніше перейти в поле, а потім повернутися до них. Книги в цих відповідях (ті, кого я знаю, все одно) навчать вас речам і значно розширять ваше розуміння. Вони відразу не зроблять вас кращим розробником C #, якщо це зараз ви шукаєте.
Девід Торнлі

+1: А також наука про програмування Девіда Гріса. Супутникова книга, яка розширюється за темами.
С.Лотт

2
@RYUZAKI, як більшість глибших текстів CS, ви отримуєте з нього те, що ви вкладаєте в нього. Я отримав нову оцінку за математичну красу програмування, поряд із прямим досвідом проектування та доведенням правильності дуже малих програм. Більше частини року знадобилося пропрацювати книгу.
Стівен А. Лоу

9

Книга- дракон точно допоможе вам зрозуміти поняття низького рівня.


хороший. мені довелося вивчити це як частину мого навчального плану, і це було дуже цікавим, складним, а також збагачуючим досвідом
Chani

6

Сім мов за сім тижнів дадуть вам багато з чим пограти. Коли все інше не вдається прочитати "Структура та інтерпретація комп'ютерних програм" Одна з найкращих книг із програмування.


2
"Сім мов за сім тижнів" - надзвичайно класна, але насправді не жорстка книга програмування.
Хірон

Якщо ваша мета полягає в тому, щоб книга була важкою заради того, щоб бути важкою, ви маєте рацію, з іншого боку, це книга, яка має в ній багато хорошої інформації
Захарій K

4

Я б дуже рекомендував числові рецепти: мистецтво наукових обчислень .

Фантастична книга, в якій детально описується багато корисних наукових алгоритмів. Протягом моєї кар'єри вбудованої та промислової обчислювальної системи одна чи інша версія на тій чи іншій мові 1 була моїм постійним супутником.

  1. До третього видання існували різні книги для різних мов, тому були чисельні рецепти на С , числові рецепти у Фортран і навіть Числові рецепти на Паскалі.

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

Так, я придбав перше видання в університеті і мені вдалося знайти використання алгоритмів у цих книгах у кожній роботі, над якою працював.
Марк Бут

2

Деякі альтернативи відомим (і відмінним) книгам вже запропоновані:

  • Системи баз даних: Повна книга, 2-е видання. має другу частину, яка фактично пояснює, як реалізується сама СУБД. Має багато матеріалу про те, як ефективно зберігати та індексувати дані та як реально виконувати запити в базі даних.
  • Інженерний підхід до комп'ютерних мереж обговорює найглибші деталі фактично змусити мережу працювати. Якщо ви коли-небудь захочете реалізувати високоефективну мережеву програму чи пристрій, цей текст забезпечить чудову основу.
  • Алгоритми апроксимації складаються з широкого огляду проблем комбінаторної оптимізації. Автор радить глибше вивчити проблеми, перш ніж спробувати створити наближення, що є дуже повчальним.
  • Типи та мови програмування - це понад 600 сторінок теорії та методів реалізації, присвячених типам у мовах програмування. Виявляється, існує неймовірна кількість теорії. Якщо ви хочете коли-небудь створити повноцінну мову програмування, тут є чому навчитися.


1

Нещодавно я почав читати захоплення Хакера (http://www.amazon.com/Hackers-Delight-Henry-S-Warren/dp/0201914654). Це може бути не дуже високим за жорсткий аспект. Але я би дав їй високі бали за ретельність, низький рівень та розумне вирішення проблем, вірний духу його імені.


1

Ви можете почати вивчати Lisp langs. Це точно буде важко! Плюс його щасливий зрив від звичайного програмування

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.