Loading article…
| 著者 | ピーター・サイベル |
|---|---|
| 主題 | ソフトウェア開発 |
| 出版社 | アプレス |
発行日 | 2009年9月16日 |
| 番号 | 1-4302-1948-3 |
Coders at Work: Reflections on the Craft of Programming ( ISBN 1-430-21948-3 ) は、2009 年に Peter Seibel が著した書籍で、15 人の優秀なプログラマーへのインタビューで構成されています。これらのインタビューの主なトピックには、インタビュー対象者がどのようにプログラミングを学んだか、どのようにコードをデバッグするか、お気に入りの言語とツール、文芸的プログラミング、証明、コードの読み取りに関する意見などが含まれています。
インタビュー対象者
- ジェイミー・ザウィンスキー
- ブラッド・フィッツパトリック
- Perl の学習には、 Mark Jason Dominus 著のHigher-Order Perl を推奨しています。
- ダグラス・クロックフォード
- ブレンダン・アイク
- ジョシュア・ブロック
- ジョー・アームストロング
- サイモン・ペイトン・ジョーンズ
- David Turner の SK コンビネータに関する論文について言及しています ( SKI コンビネータ計算を参照)。SK コンビネータは、ラムダ計算を変換して実行する方法です。Turner は、論文で、ラムダ計算を 3 つのコンビネータ S、K、I に変換する方法を示しました。これらはすべて閉じたラムダ項であり、I = SKK です。つまり、実際には、ラムダ項を取得して S と K にコンパイルすることになります。
- 関数型プログラミングを初めて学んだのは、副作用を一切伴わない二重リンクリストの構築方法を教えてくれたアーサー・ノーマンの講座を受講したときだったと回想します。
- John Backus による論文「プログラミングはフォン・ノイマン スタイルから解放されるか」について言及しています。
- John Hughes に、静的型付けが悪い理由について Journal of Functional Programming に論文を書いてもらいたいと考えています。Hughes は、「関数型プログラミングが重要な理由」というタイトルの人気論文を書いています。
- 非常に便利な関数型データ構造である「ジッパー」と呼ばれるデータ構造について言及しています。また、ペイトン ジョーンズは、e の任意の桁数を遅延計算するためにヒューズが作成した 4 ~ 5 行のプログラムについても言及しています。
- 両端キューの順次実装は、学部 1 年生のプログラミング問題であると述べています。ノードごとにロックがある同時実装の場合は、研究論文の問題です。トランザクション メモリの場合は、再び学部の問題になります。
- 好きな本/著者: Jon Bentley 著『 Programming Pearls』 、Brian Hayes 著『 Beautiful Code』の「Writing Programs for 'The Book'」という章 (特定の点が線のどちら側にあるかを判断する問題を探求)、Don Knuth著『Art of Computer Programming』、副作用や合理的な複雑性境界なしでキューやヒープなどのデータ構造を構築する方法を探る Chris Okasaki 著『Purely Functional Data Structures』 、Abelson および Sussman 著『 Structure and Interpretation of Computer Programs』、Andrew Appel 著『Compiling with Continuations』 、Dijkstra 著『 A Discipline of Programming』、Per Brinch Hansen 著の並行オペレーティング システムの作成に関する本。
- ペイトン・ジョーンズは、再読して気に入ったというフレッド・ブルックの論文「ツール職人としてのコンピュータ科学者」について言及しています。
- ピーター・ノルヴィグ
- 1972年から1973年にかけて、ノルヴィグは高校生だった頃、カードをシャッフルするためのクヌースアルゴリズムを発見しました。
- Norvig が書いた最初の興味深いプログラムは、Game of Life でした。
- 「10年でプログラミングを独学する」というエッセイを書きました。
- 学術的概念の実際の応用について、彼は問題の一部は学者が問題の全体像を把握していないことであり、もう 1 つの部分は教育であると述べています。モナドが何であるかを理解しておらず、圏論のコースを受講したことのないプログラマーが多数いる場合、ギャップが生じます。
- 彼が推薦する書籍/著者には、Knuth、Cormen、Leiserson、Rivest、Sally Goldman、Abelson、Sussman、McConnellなどがいます。
- Knuth は TeX の開発に関するエッセイを執筆しており、その中で彼は、純粋で破壊的な QA の性格に転向し、自分のコードを破るために全力を尽くしたことについて語っています。
- Google での就職面接プロセスについて語り、Google の従業員と働いた経験があり、候補者を保証できる人がいるかどうかが、最も良いシグナルであると述べています。また、経験、プログラミング コンテストでの優勝、オープン ソース プロジェクトでの作業など、履歴書の属性から適合性を予測する「履歴書予測」についても語っています。また、面接官が 1 から 4 までのスコアを割り当て、面接官のいずれかが 1 をつけた候補者は、Google で誰かが採用のために戦わない限り、通常は断られると述べています。
- ガイ・スティール
- ジェラルド・サスマンと共同で、現在「ラムダ論文」として知られる一連の論文を執筆しました。この論文には、Scheme プログラミング言語のオリジナルの定義が含まれていました。
- コンピュータサイエンスの学位を取得するにあたって、ガイは純粋数学を専攻するつもりだったが、無限次元のバナッハ空間について全く直感がないことに気づき、それが応用数学に転向するきっかけになったと述べています。
- 好きな著者と本: クヌース、アホ、ホップクロフト、ウルマン (ガイはこの本でソートを「本物」として学んだと言っています)、ジェラルド・ワインバーグの「コンピュータプログラミングの心理学」、フレッド・ブルックの「Mythical Man-Month」
- 境界を特別なケースとして扱うのではなく、境界でも自然に正しくなるように、中間にあるものの仕様を設計することを提案します。
- Dijkstraが開発した、半ページに収まる並列ガベージ コレクター アルゴリズム。David Gries は、学生のSusan Owickiが開発した手法を使用して、このアルゴリズムの正しさを証明する論文をCACMに執筆しました。
- ダン・インガルス
- L. ピーター ドイチュ
- ケン・トンプソン
- フラン・アレン
- バーニー・コセル
- ドナルド・クヌース
参照
外部リンク
- 本のウェブサイト。
