Книга Питера Сейбела, изданная в 2009 году
Coders at Work: Reflections on the Craft of Programming ( ISBN 1-430-21948-3 ) — книга Питера Сейбела 2009 года, включающая интервью с 15 высококвалифицированными программистами. Основные темы этих интервью включают то, как интервьюируемые изучали программирование, как они отлаживают код, их любимые языки и инструменты, их мнение о грамотном программировании, доказательствах, чтении кода и т. д.
Интервьюируемые
- Джейми Завински
- Брэд Фицпатрик
- Дуглас Крокфорд
- Брендан Эйх
- Джошуа Блох
- Джо Армстронг
- Саймон Пейтон Джонс
- Упоминает статью Дэвида Тернера о комбинаторах SK (ср. SKI combinator calculus ). Комбинаторы SK являются способом перевода и последующего выполнения лямбда-исчисления. Тернер показал в своей статье, как перевести лямбда-исчисление в три комбинатора S, K и I, которые все являются просто закрытыми лямбда-термами, и I = SKK. Таким образом, по сути, вы берете лямбда-терм и компилируете только в Ss и Ks.
- Вспоминает свой первый опыт изучения функционального программирования, когда он посещал курс Артура Нормана, который показал, как строить двусвязные списки без каких-либо побочных эффектов.
- Упоминается статья Джона Бэкуса «Можно ли освободить программирование от стиля фон Неймана».
- Хочет, чтобы Джон Хьюз написал статью для Journal of Functional Programming о том, почему статическая типизация плоха. Хьюз написал популярную статью под названием «Почему функциональное программирование имеет значение».
- Упоминает структуру данных под названием "zipper", которая является очень полезной функциональной структурой данных. Пейтон Джонс также упоминает программу из 4-5 строк, которую Хьюз написал для ленивого вычисления произвольного количества цифр e.
- Упоминает, что последовательная реализация двухсторонней очереди — это задача бакалавриата по программированию на первом курсе. Для параллельной реализации с блокировкой на узел — это задача исследовательской работы. С транзакционной памятью — это снова задача бакалавриата.
- Любимые книги/авторы: « Жемчужины программирования » Джона Бентли, глава под названием «Написание программ для „Книги“» Брайана Хейса из книги « Красивый код» , где он исследует проблему определения того, по какую сторону от прямой находится заданная точка, «Искусство программирования» Дона Кнута , «Чисто функциональные структуры данных » Криса Окасаки, в которой исследуется, как создавать структуры данных, такие как очереди и кучи, без побочных эффектов и с разумными ограничениями сложности, «Структура и интерпретация компьютерных программ» Абельсона и Сассмана, «Компиляция с продолжениями» Эндрю Аппеля, «Дисциплина программирования» Дейкстры, книга Пера Бринка Хансена о написании параллельных операционных систем.
- Пейтон Джонс упоминает статью Фреда Брука, которую он перечитал и которая ему понравилась: «Ученый-компьютерщик как инструментальный мастер».
- Питер Норвиг
- В 1972/73 году, когда Норвиг еще учился в средней школе, он нашел алгоритм Кнута для тасования карт.
- Первой интересной программой, написанной Норвигом, была «Игра жизни».
- Написал эссе под названием «Научитесь программированию самостоятельно за десять лет».
- О практическом применении академических концепций он упоминает, что часть проблемы заключается в том, что ученые не видят всей проблемы, а другая часть — в образовании. Если у вас есть группа программистов, которые не понимают, что такое монада, и не проходили курсы по теории категорий, то есть пробел.
- Книги/авторы, которых он рекомендует, включают Кнута ; Кормена, Лейзерсона и Ривеста ; Салли Голдман ; Абельсона и Сассмена ; Макконнелла .
- Кнут написал эссе о разработке TeX, в котором он рассказывает о том, как перешел в стадию своей чистой, разрушительной личности QA и сделал все возможное, чтобы сломать собственный код.
- Рассказывает о процессе собеседования при приеме на работу в Google и говорит, что лучшим сигналом является то, что кто-то работал с одним из их сотрудников и может поручиться за кандидата. Он также говорит о «предсказателе резюме», который учитывает такие атрибуты резюме, как опыт, победа в конкурсе по программированию, работа над проектом с открытым исходным кодом и т. д., и предсказывает соответствие. Он также упоминает присвоение оценок от 1 до 4 интервьюерами и, как правило, отклонение кандидатов, получивших оценку 1 от любого из интервьюеров, если только кто-то в Google не борется за их найм.
- Гай Стил
- Сотрудничал с Джеральдом Сассманом над серией статей, ныне известных как «Lambda Papers», включавшей оригинальное определение языка программирования Scheme.
- Получив степень в области компьютерных наук, Гай упоминает, что он намеревался специализироваться на чистой математике, но понял, что у него нет никакой интуиции для бесконечномерных банаховых пространств, и именно это заставило его переключиться на прикладную математику.
- Любимые авторы и книги: Кнут; Ахо, Хопкрофт и Ульман (Гай говорит, что именно эта книга помогла ему научиться сортировать по-настоящему), Джеральд Вайнберг о психологии компьютерного программирования , «Мифический человеко-месяц» Фреда Брука
- Предполагается, что вы хотите разработать спецификацию того, что находится посередине, таким образом, чтобы она естественным образом была корректна и на границах, а не рассматривать границы как особые случаи.
- Параллельный алгоритм сборщика мусора, разработанный Дейкстрой , который умещается на половине страницы. Дэвид Грайс написал статью для CACM, используя методы, разработанные его студенткой Сьюзан Овицки, чтобы доказать правильность этого алгоритма.
- Дэн Ингаллс
- Л. Питер Дойч
- Кен Томпсон
- Фрэн Аллен
- Берни Коселл
- Дональд Кнут
Смотрите также
Внешние ссылки