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 оказалось намного сложнее, чем все другие вещи, которыми я занимался (например, доказательство теорем или написание книг). Создание хорошего программного обеспечения требует значительно более высокого уровня точности, чем другие задачи, и требует большей концентрации внимания, чем другие интеллектуальные задачи.

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