Когда вы пишете программу, думайте об этом в первую очередь как о литературе. Вы пытаетесь написать то, что будут читать люди. Не думайте об этом в первую очередь как о чем -то, за чем будет следовать компьютер. Чем эффективнее вы делаете свою программу читаемой, тем эффективнее будет: вы поймете ее сегодня, вы поймете ее на следующей неделе, и ваши преемники, которые собираются поддерживать и изменить это, поймут это.
Люди, которые более чем небрежно заинтересованы в компьютерах, должны иметь хотя бы какое -то представление о том, на что похожа основное оборудование. В противном случае программы, которые они пишут, будут довольно странными.
Я думаю, что у людей, которые пишут программы, есть, по крайней мере, проблеск дополнительного понимания природы Бога ... потому что создание программы часто означает, что вы должны создавать небольшую вселенную
Мой общий стиль работы - сначала написать все с карандашом и бумагой, сидя рядом с большой корзиной. Затем я использую EMACS, чтобы ввести текст в свою машину.
... Дизайнер новой системы должен быть не только реализацией и первым крупномасштабным пользователем; Дизайнер также должен написать первое руководство пользователя. ... Если бы я не участвовал полностью во всех этих действиях, буквально сотни улучшений никогда бы не были сделаны, потому что я бы никогда не подумал о них или не воспринимал, почему они были важны.
... Возможно, одним из самых важных уроков является тот факт, что программное обеспечение сложно. Отныне я буду иметь значительно больше уважения к каждому успешному программному инструменту, с которым я сталкиваюсь. В течение последнего десятилетия я был удивлен, узнав, что написание программ для Tex и Metafont оказалось гораздо сложнее, чем все другие вещи, которые я сделал (например, доказывание теоремы или написание книг). Создание хорошего программного обеспечения требует значительно более высокого стандарта точности, чем эти другие вещи, и это требует более длительного внимания, чем другие интеллектуальные задачи.