Как стать автором
Обновить

Дональд Кнут —  автор «Искусства программирования»  и  великий мастер ордена программистов Земли

Время на прочтение7 мин
Количество просмотров21K
Всего голосов 50: ↑43 и ↓7+36
Комментарии16

Комментарии 16

Что за прикол с двойными и тройными неразрывными пробелами, щедро расставленными по всему тексту в случайных местах? Глаза ломаются такое читать.

Интересно, а есть ли неформальная биография Кнута?
Должно получится что-то вроде "Вы конечно шутите, мистер Фейнман"

Да, было бы замечательно если бы Кнут собрался с духом и написал про себя такую книгу.

Сколько лет на это понадобится?

Вспоминается...

Что нужно, чтобы из студента получился хороший программист ?

Д.Кнут и пряник

Дай бог ему здоровья, как и всем нам

У меня есть два тома Кнута: том 1 — «Основные алгоритмы», и том 3 — «Сортировка и поиск». Из тома про сортировку мне особенно запомнился алгоритм поиска всех блюд, содержащих заданные ингредиенты. Каждый ингредиент обозначался отдельным столбцом перфокарты, если блюдо содержало этот ингредиент, над столбцом на карте делалась дырочка и выемка, соединявшая дырочку с краем карты, если не содержало — просто дырочка. Перфокарты складывались в колоду, а для поиска нужно было ввести тонкие стержни в дырочки, соответствовавшие выбранным ингредиентам и подвесить колоду на стержнях, при этом блюда с нужными перфокартами выпадали из колоды вниз

Premature optimization is the root of all evil - можно сказать русская поговорка "поспешишь людей насмешишь". Дословно же звучит как "преждевременная оптимизация основа провала".

Это довольно занятный спойлер к книжке "Искусство программирования"

If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole thing.

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

Последняя цитата - это Билл Гейтс об "Искусстве программирования" в одном из предисловий к очередному изданию первого тома.

Хорошая задачка. Но паскаль для неё – не самый правильный язык :)

#!/usr/bin/perl

use strict;
use warnings;
use locale;
use utf8;
use open qw(:std :utf8);
use Encode qw(decode);
use I18N::Langinfo qw(langinfo CODESET);

my $codeset = langinfo(CODESET);
@ARGV = map { decode $codeset, $_ } @ARGV;
 
ALL: while (<STDIN>) {
  y/ё/е/;
  my $w = $ARGV[0]."\n";
  foreach (map {chr} unpack("C*")) { next ALL unless ($w =~ s/$_//); }
  print;
}

Паскаль в принципе далеко не луший язык для программирования, но, как по мне, замечательно хорош именно для обучения ему. Вся его неудобность и нудность направлена на то, чтобы человек осваивающий программирование на Паскале понимал то, что и как использует. После Паскаля переход на другой язык вызывает даже некоторую эйфорию, типа: "Какого хрена я мучался с этим паскалем?!" Вот именно для этого.

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

Доказана в 1994-ом. Тоже помню это упражнение, делал на листике в начале нулевых

На полях той же книги, что уж там.

Классика!

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации