Donald Knuth відомі цитати

останнє оновлення : 5 вересня 2024 р

other language: spanish | czech | german | french | italian | slovak | turkish | ukrainian | dutch | russian | portuguese

Donald Knuth
  • Щоб повірити в алгоритм, його потрібно побачити.

  • Наука-це те, що ми розуміємо досить добре, щоб пояснити комп'ютеру. Мистецтво-це все, чим ми займаємося.

  • Я Думаю, що повсякденне життя схоже на програмування. Якщо вам щось подобається, Ви можете привнести в це красу.

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

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

  • Люди думають, що інформатика - це мистецтво геніїв, але насправді все навпаки: просто багато людей роблять речі, які спираються один на одного, як стіна з міні-каменів.

  • Комп'ютери добре дотримуються інструкцій, але не читають ваші думки.

  • Насправді, я хотів би, щоб тисячі виродків отримали свободу дій і могли робити все, що їм заманеться. Це те, що дійсно розвиває цю область.

  • Давайте змінимо наше традиційне ставлення до створення програм. Замість того, щоб уявляти, що наше головне завдання - сказати комп'ютеру, що робити, давайте зосередимося на тому, щоб пояснити людям, що ми хочемо, щоб комп'ютер робив.

  • Остерігайтеся помилок у наведеному вище коді; я лише довів це правильно, але не пробував.

  • Я не можу зайти в ресторан і замовити їжу, тому що я постійно дивлюся на Шрифти в меню.

  • Передчасна оптимізація-це корінь усіх зол.

  • Як ви можете володіти [...] числами? Числа належать всьому світу.

  • Люди, які не просто цікавляться комп'ютерами, повинні мати хоча б деяке уявлення про те, що являє собою базове обладнання. Інакше програми, які вони пишуть, будуть досить дивними.

  • Випадкові числа не повинні генеруватися випадковим чином

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

  • Я думаю, що люди, які пишуть програми, мають принаймні проблиск додаткового розуміння природи Бога... тому що створення Програми часто означає, що ви повинні створити маленький всесвіт

  • Ми повинні постійно прагнути перетворити будь-яке мистецтво в науку: в процесі цього ми просуваємо мистецтво вперед.

  • За його значний внесок у аналіз алгоритмів та розробку мов програмування та, зокрема, за його внесок у "мистецтво комп'ютерного програмування" завдяки його відомим книгам, що виходять безперервною серією під такою назвою.

  • Сила списку залежить від його найслабшої ланки.

  • Набагато корисніше робити більше з меншими витратами.

  • Я визначаю UNIX як 30 визначень регулярних виразів, що живуть під одним дахом.

  • Єдине, що робить життя математика вартим, це те, що він викликає неохоче захоплення трьох - чотирьох колег.

  • Найважче заснути вночі, коли потрібно зробити так багато термінових справ. Існує величезний розрив між тим, що, як ми знаємо, можливо за допомогою сучасних машин, і тим, що нам досі вдавалося зробити.

  • Найважливіше в мові програмування-це назва. Мова не буде успішною без хорошої назви. Нещодавно я придумав дуже гарну назву і зараз шукаю відповідну мову.

  • В даний час я використовую Ubuntu Linux на окремому ноутбуці - він не має підключення до Інтернету. Іноді я підключаю флеш-накопичувачі до Комп'ютерів Mac, які використовую для серфінгу в Інтернеті та роботи з графікою; але я довіряю лише Linux своїм сімейним коштовностям.

  • Посібники, які ми отримали від IBM, дали приклади програм, і я знав, що зможу працювати набагато краще. Тому я подумав, що, можливо, у мене є талант.

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

  • У мене є передчуття, що невідомі послідовності ДНК будуть розшифровані як повідомлення про авторські права та патентний захист.

  • Якщо ви все оптимізуєте, ви завжди будете незадоволені.

  • Розуміючи машинно-орієнтовану мову, програміст буде прагнути використовувати набагато ефективніший метод; це набагато ближче до реальності.

  • Однак завжди пам'ятайте, що зазвичай існує простіший та ефективніший спосіб зробити що-небудь, ніж перший, який вам спадає на думку.

  • Коли у вас буде достатньо їжі та хороший будинок, найголовніше - це те, що ви можете зробити для інших, який внесок ви можете зробити в підприємство в цілому.

  • Психологічний профіль [програміста] - це, в основному, здатність перемикати рівні абстракції з низького на високий. Бачити щось в малому і щось у великому.

  • Наука-це знання, яке ми розуміємо настільки добре, що можемо передати його комп'ютеру; і якщо ми чогось не розуміємо до кінця, то справлятися з цим - ціле мистецтво.

  • Книга Річарда Беллмана "динамічне програмування" - це важлива, новаторська робота, в якій в кінці деяких розділів під заголовком" вправи і дослідницькі завдання " зібрана група завдань, в якій надзвичайно тривіальні питання виникають посеред глибоких, невирішених проблем. Подейкують, що хтось одного разу запитав доктора Беллмана, як відрізнити вправи від дослідницьких завдань, і він відповів: "Якщо ви можете їх вирішити, це вправа; інакше це Дослідницьке завдання".

  • Програмування-це мистецтво говорити іншій людині, що вона хоче, щоб комп'ютер робив.

  • Математична формула ніколи не повинна "належати" кому б то не було! Математика належить Богу.

  • Програмісти витрачають величезну кількість часу на роздуми або занепокоєння щодо швидкості виконання некритичних частин своїх програм, і ці спроби підвищити ефективність насправді мають сильний негативний вплив на процес налагодження та обслуговування. Ми повинні забути про низьку ефективність, скажімо, в 97% випадків: передчасна оптимізація - це корінь всіх зол. І все ж ми не повинні втрачати наші можливості в цих критичних 3%.

  • Я не можу бути таким впевненим у інформатиці, як у біології. У біології, безсумнівно, є 500 років захоплюючих завдань, над якими потрібно працювати. Це на такому рівні.

  • Насправді, провівши десять років свого життя, працюючи над проектом Tex, я дійшов висновку, що програмне забезпечення - це складна річ. Це найскладніше, що мені коли-небудь доводилося робити.

  • В області комп'ютерних наук дерева ростуть практично всюди...

  • Якщо ви виявите, що витрачаєте майже весь свій час на теорію, почніть приділяти трохи уваги практичним речам; це покращить ваші теорії. Якщо ви виявите, що витрачаєте майже весь свій час на практику, почніть приділяти трохи уваги теоретичним речам; це покращить вашу практику.

  • .. Розробник нової системи повинен бути не лише розробником та першим масштабним Користувачем; він також повинен написати перший посібник користувача. ... Якби я не брав повноцінної участі у всіх цих заходах, буквально сотні покращень ніколи б не були зроблені, тому що я б ніколи не думав про них і не розумів, чому вони важливі.

  • Розробник системи нового типу повинен повною мірою брати участь в її впровадженні.

  • Електронна пошта-чудова річ для людей, чия роль у житті - бути в курсі подій. Але не для мене; моя роль - бути в курсі подій. Те, що я роблю, вимагає довгих годин навчання та постійної концентрації.

  • Моя перша програма розповіла мені багато про помилки, які я збирався зробити в майбутньому, а також про те, як їх знайти. Це свого роду історія мого життя: я роблю помилки і намагаюся виправитися після них. Я намагаюся все виправляти. Я, мабуть, зациклений на тому, щоб не робити занадто багато помилок.

  • Неофіційно ознайомившись з деякими поняттями TeX, будуть викладені загальні правила; згодом ви виявите, що ці правила не зовсім правильні. В цілому, наступні глави містять більш достовірну інформацію, ніж попередні. Автор вважає, що ця техніка навмисної брехні насправді полегшить вам засвоєння ідей. Як тільки ви зрозумієте просте, але помилкове правило, вам не складе труднощів доповнити його винятками.

  • ..Одним з найважливіших уроків, мабуть, є той факт, що програмне забезпечення - це складна штука. Відтепер Я буду з набагато більшою повагою ставитися до кожного успішного програмного засобу, з яким зіткнуся. Протягом останнього десятиліття я був здивований, дізнавшись, що написання програм для TeX і Metafont виявилося набагато складнішим, ніж усі інші речі, якими я займався (наприклад, доведення теорем або Написання книг). Створення хорошого програмного забезпечення вимагає значно вищого рівня точності, ніж інші завдання, і вимагає більшої концентрації уваги, ніж інші інтелектуальні завдання.

  • ...методи важливіші за факти. Освітня цінність завдання, поставленого перед учнем, в основному залежить від того, наскільки часто процеси мислення, що використовуються для його вирішення, будуть корисними в наступних ситуаціях. Це має мало спільного з тим, наскільки корисною може бути відповідь на проблему. З іншого боку, хороше завдання також повинно мотивувати студентів; їм повинно бути цікаво знати відповідь. Оскільки студенти дуже різні, Я не можу очікувати, що всі сподобаються завданням, які мені подобаються.