stringtranslate.com

Кодеры за работой

Coders at Work: Reflections on the Craft of Programming ( ISBN 1-430-21948-3 ) — книга Питера Сейбела 2009 года, включающая интервью с 15 высококвалифицированными программистами. Основные темы этих интервью включают то, как интервьюируемые изучали программирование, как они отлаживают код, их любимые языки и инструменты, их мнение о грамотном программировании, доказательствах, чтении кода и т. д.  

Интервьюируемые

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

Смотрите также

Внешние ссылки