Кодеры за работой - Coders at Work

Кодеры за работой: размышления о ремесле программирования
Кодеры за работой.jpg
АвторПитер Сейбел
ПредметРазработка программного обеспечения
ИздательApress
Дата публикации
16 сентября 2009 г.
ISBN1-4302-1948-3

Кодеры за работой: размышления о ремесле программирования (ISBN  1-430-21948-3) - это книга Питера Зайбеля 2009 года, содержащая интервью с 15 высококлассными программистами. Основные темы этих интервью включают в себя то, как респонденты изучали программирование, как они отлаживать код, их любимые языки и инструменты, их мнение о грамотном программировании, доказательствах, чтении кода и так далее.

Собеседники

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

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

внешняя ссылка