Программисты за работой
Автор | Питер Сейбел |
---|---|
Предмет | Разработка программного обеспечения |
Издатель | Торопиться |
Дата публикации | 16 сентября 2009 г. |
ISBN | 1-4302-1948-3 |
Программисты за работой: размышления о ремесле программирования ( ISBN 1-430-21948-3 ) — книга Питера Сейбеля, вышедшая в 2009 году и содержащая интервью с 15 высококвалифицированными программистами. Основные темы в этих интервью включают в себя то, как респонденты изучали программирование, как они отлаживают код, их любимые языки и инструменты, их мнение о грамотном программировании, доказательствах, чтении кода и так далее.
Интервьюируемые
[ редактировать ]- Джейми Завински
- Брэд Фицпатрик
- Для изучения Perl он рекомендует Higher-Order Perl Марка Джейсона Доминуса.
- Дуглас Крокфорд
- Брендан Эйх
- Джошуа Блох
- Джо Армстронг
- Саймон Пейтон Джонс
- Упоминает статью Дэвида Тернера о комбинаторах SK (см. Комбинаторное исчисление SKI ). Комбинаторы SK — это способ трансляции и последующего выполнения лямбда-исчисления. В своей статье Тернер показал, как перевести лямбда-исчисление в три комбинатора S, K и I, которые представляют собой просто закрытые лямбда-термы и I = SKK. Таким образом, по сути, вы берете лямбда-терм и компилируете только Ss и Ks.
- Вспоминает свой первый случай изучения функционального программирования, когда он проходил курс Артура Нормана, который показал, как создавать двусвязные списки без каких-либо побочных эффектов.
- Упоминает статью Джона Бэкуса «Можно ли программирование освободиться от стиля фон Неймана».
- Хочет, чтобы Джон Хьюз написал для журнала функционального программирования статью о том, почему статическая типизация плоха. Хьюз написал популярную статью под названием «Почему функциональное программирование имеет значение».
- Упоминает структуру данных под названием «молния», которая является очень полезной функциональной структурой данных. Пейтон Джонс также упоминает программу из 4–5 строк, которую написал Хьюз для ленивого вычисления произвольного числа цифр e.
- Упоминает, что последовательная реализация двусторонней очереди является проблемой программирования для студентов первого курса. Для параллельной реализации с блокировкой на узел это проблема исследовательской работы. С транзакционной памятью это снова проблема студентов.
- Любимые книги/авторы: « Жемчужины программирования » Джона Бентли, глава «Написание программ для «Книги»» Брайана Хейса из книги «Красивый код» , где он исследует проблему определения, на какой стороне линии находится данная точка, «Искусство «Компьютерное программирование » Дона Кнута , «Чисто функциональные структуры данных » Криса Окасаки, исследующего, как создавать структуры данных, такие как очереди и кучи, без побочных эффектов и разумных ограничений сложности, «Структура и интерпретация компьютерных программ» Абельсона и Сассмана, « Компиляция с продолжениями» Эндрю Аппеля, А. «Дисциплина программирования» Дейкстры, книга Пера Бринча Хансена о написании параллельных операционных систем.
- Пейтон Джонс упоминает статью Фреда Брука, которую он перечитал и которая ему понравилась, «Ученый-компьютерщик в роли кузнеца».
- Питер Норвиг
- В 1972/73 году, когда Норвиг еще учился в старшей школе, он нашел алгоритм Кнута для перетасовки карт.
- Первой интересной программой, которую написал Норвиг, была «Игра жизни».
- Написал эссе «Научитесь программированию за десять лет».
- Говоря о практическом применении академических концепций, он отмечает, что часть проблемы заключается в том, что ученые не видят всей проблемы, а другая часть — это образование. Если у вас есть группа программистов, которые не понимают, что такое монада, и не прошли курсы теории категорий, значит, есть пробел.
- Книги/авторы, которых он рекомендует, включают Кнута ; Кормен, Лейзерсон и Ривест ; Салли Голдман ; Абельсон и Сассман ; МакКоннелл .
- Кнут написал эссе о разработке TeX, в котором рассказывает о том, как перейти к своей чистой, деструктивной личности по обеспечению качества и сделать все возможное, чтобы взломать собственный код.
- Рассказывает о процессе собеседования в Google и говорит, что лучший сигнал — это если кто-то работал с одним из их сотрудников и может поручиться за кандидата. Он также говорит о «предсказателе резюме», который учитывает такие атрибуты резюме, как опыт, победа в конкурсе по программированию, работа над проектом с открытым исходным кодом и т. д., и прогнозирует соответствие. Он также упоминает о присвоении интервьюерами оценок от 1 до 4 и, как правило, об отказе кандидатам, получившим 1 от любого из интервьюеров, если только кто-то в Google не борется за их найм.
- Гай Стил
- Сотрудничал с Джеральдом Сассманом над серией статей, теперь известных как «Лямбда-документы», которые включали оригинальное определение языка программирования Scheme.
- Получив степень в области компьютерных наук, Гай упоминает, что собирался изучать чистую математику, но понял, что у него нет никакой интуиции в отношении бесконечномерных банаховых пространств, и именно это заставило его переключиться на специальность прикладная математика.
- Любимые авторы и книги: Кнут; Ахо, Хопкрофт и Уллман (Гай говорит, что именно в этой книге он научился «настоящей» сортировке), Джеральд Вайнберг о психологии компьютерного программирования , «Мифический человеко-месяц» Фреда Брука
- Предполагает, что вы хотите разработать спецификацию того, что находится посередине, таким образом, чтобы она, естественно, была корректной и на границах, а не рассматривала границы как особые случаи.
- Алгоритм параллельного сборщика мусора, разработанный Дейкстрой и умещающийся на половине страницы. Дэвид Грис написал статью для CACM, используя методы, разработанные его ученицей Сьюзан Овики, чтобы доказать правильность этого алгоритма.
- Дэн Ингаллс
- Л. Петер Герман
- Кен Томпсон
- Фрэн Аллен
- Берни Козелл
- Дональд Кнут