回答:
The Pragmatic Programmerについて誰も言及していないことに驚いています。あなたが自分のクラフトにまったく興味があるなら、それは必読です。
手袋
Daily WTFからのこの投稿は、正しい道を歩み続けています。一対の「手袋」が適切な解決策である何かを開発し始めたことを何度も認めます。
AdobeのAlex Stepanovによるスピーチを読んでください。5年の終わりに、これにより、優れたものから優れたものが分離されます。
そして、その足跡をたどり、肩を立てる人々の束(順不同で、今では自由な流れで私の頭に浮かぶようにリストされています):アラン・ケイ、リチャード・ストールマン、ケン・トンプソン、デニス・リッチー、ブライアンカーニガン、テオ・デ・ラード、ライナス・トーバルズ、エリック・S・レイモンド、ロブ・パイク、ビル・ゲイツ、スティーブ・ジョブズ、ジョン・マッカーシー、ジョン・コンウェイ、マーティン・オーダースキー、ジェームズ・ゴスリング、ガイ・スティール、ドナルド・クヌース、エドガー・ダイクストラ、ジョン・カーマック、ピーター・モリニュー ... 一部の分野での彼らのスキルと天才は、他の分野での彼ら自身の信念によって彼らが盲目的にならないようにすることを心に留めている限り。他の人と同じように。(上記の2冊の書籍は、それらのほとんどについて既にかなりよくカバーしています!)
またはあまり有名ではありませんが、遠くから興味を持っているアクティブな技術者:Neal Gafter、Martin Fowler、Don Symeなど
私はこれらの人々の作品と、彼らが彼らのプロジェクトを達成(または放棄)するためにしたことからインスピレーションを受けました。
私の英語が恵まれない頃に子供として2600を読んだり、キャプテンクランチのような初期の詐欺師の物語や、Apple でウォズニアックとPC時代の誕生の物語や、ウィリアムギブソンとニールステファンソンの本やエッセイを読むことは、プログラマーとしてもインスピレーションを与えました、それはプログラミングに直接関係していませんでしたが。その意味で、Hacker's Manifesto、Agile Manigesto、またはIEEE Code of Ethicsのようなものでさえ、今でもインスピレーションを与えています。
KernighanとPlauger の著書The Elements of Programming Styleは、Cを学んでいたとき、私にとって非常に影響力がありました。ヒントは両方の言語を超えました。
その本を読む前に、「スタイル」とは、書式設定(タブ用のスペースの数、カーリーを配置する場所)など、ささいな問題だと確信していました。ただし、書式設定と命名規則を削除すると、スタイルが手に入ります。文字列を逆方向に構築してから逆にする方が簡単ですか?次に、逆方向に構築し、逆にします。
KernighanとPlaugerの別の本、Software Toolsも参考になりましたが、それほど良くはありませんでした。また、KernighanとPikeによるはるかに新しい書籍The Practice of Programmingも役立ちますが、The Elements of Programming Styleとはかけ離れています。まだコピーがあればいいのに。すべてのプログラマーが読む価値があります。
Glenford Myers The Art of Software Testingを読んだ後、テストとQAに感謝しました。テストは本当に創造的な活動であり、プログラミングを好まないコンピューターサイエンス専攻の人たちだけのものではないことがわかりました。おそらく、テスト駆動開発の人気が高まるにつれて、より多くの人がマイヤーズの本に目を向けるでしょう。
そして、無料のオンラインで入手できる本The Structure and Interpretation of Programsの本よりも、抽象概念のより良い紹介を考えることはできません。Schemeプログラミング言語を紹介しますが、宣言型プログラミングを含むコンピューターサイエンスの他の多くのトピックにヒットします。
私の学歴では、アスペクト指向プログラミングの概念に触発されました。AOPに関する非常に初期の論文のいくつかを読んで、アイデアに関するメモの半ページで終わることができます。
また、教会とチューリングの進歩は非常に刺激的だと思います。1930年代、コンピューターが製造される前から、科学者と数学者は高次プログラミング言語、ラムダ計算でプログラミングをしていました。建設教会番号と前身の機能は、おそらくこれまでで最も巧妙なプログラミング構造の一つです。ほとんど何もないところから何かを作る方法を示しています。
私が読んだものではありません。1984年、私は隣人と彼の友人と話していました。私は16歳でした。友人は、本質的に世界はコンピューターユーザーとコンピュータープログラマーに分かれていると言いました。彼は、世界で最も賢い人だけがプログラマーになることができると言いました。
そうだね!なんてチャレンジ!
元々SoftwareのJoelが、彼が書いた方法により、私が始めたときに概念を非常に簡単に把握できました。
デザインパターン:Erich Gammaによる再利用可能なオブジェクト指向ソフトウェアの要素
私は完全に独学であり、幸運なことに、これらの2冊の本を指し示した作品の初期の記事(どこから忘れていたのか)に出くわしました。これらの2冊の本を読んだ後のコードの変換は驚異的でした。私はそれらの著者にたくさん借りています。
インスピレーションについては、Yeggeの ブログ、Grahamのエッセイ、およびSICP Video Lecturesをご覧ください。
多くのインスピレーションの中で、最新の本は次の本です:実習パターン
1995年にDesign Patterns Book を初めて読んだとき、またはそれはプログラマーとしての私にとって本当に目を見張るものでした。
最近、アジャイル開発に関するジェームズ・ショアーズの本は私に多くのインスピレーションを与えました。最近、リッサ・アドキンスはコーチングチームに興味を持ちました。
Little LISPerは私の心を吹き飛ばしました。
私は高校のパスカルプログラミングクラスを受講しました。私はすでにC64ベーシックをよく知っていて、すべてのプログラミング言語がベーシックやパスカルに似ているかどうかを先生に尋ねました。彼は私にLittle LISPerのコピーを貸してくれました。それを読んで週末を過ごした後、私はそのような奇妙な言語が存在する可能性があるか、または動作するとは思わなかった。彼がアクセスできるダイヤルアップミニで実行しているのを見たとき、私は床に落ちました。存在していました。
2回目の大学レベルのプログラミングクラスの後。アルゴリズムとデータ構造、私はメジャーを切り替えて、より良いCSコンピューターラボにアクセスできるようにしました。彼らには、lisp、scheme、prolog、SmallTalk80、その他のツールを備えたUnixマシンがありました。
私が今まで聞いた中で最も刺激的な話は、リチャードガブリエルで、ソフトウェアの作成は詩の作成に似ていると話していました。詩人は、多くの努力を尽くして少数の言葉を正しく表現します-Haikusを考えます-そしてソフトウェアを書くとき、私たちは同じ種類の卓越性と優雅さを目指して努力するべきです。
優雅さと簡潔さは、詩や数学と同様にプログラミングでも重要であり、それを流toに行うには多くの努力が必要です。
http://www.dreamsongs.com/PoetryOfProgramming.htmlのポイントのいくつかを参照してください
アランケイがほぼ30年前に言ったように、視点は80 IQポイントの価値があります。私の視点を変えた本:
ルートヴィヒ・ヴィトゲンシュタインによる「哲学的調査」
時々、私たちは知っていると思いますが、実際、私たちは知りません。W.は、詳しく見る方法を示しています。
ネルソン・グッドマンによる「事実、フィクション、予測」
ここで、分析という言葉が本当に意味することを学びました。また、どのような言葉実用的には本当に意味します。
「Zen and the Art of Motorcycle Maintanance」by Robert M. Pirsig
他のものよりも優れたものがあるのはどうしてですか?なぜ品質がすべて同じではないのですか?IOW、良い映画、良い車、良い食べ物、そして良いソフトウェアに共通しているのは、それらを良いものにしていることですか?
Soul of a new Machine(高校時代のインスピレーション) SICP(おそらく私が今まで読んだソフトウェア開発に関連した最高の本の1つ)
マーヴィン・ミンスキー
計算:有限および無限マシン
意味情報処理
Seth Godinは、完全にプログラミングに関連しているわけではありませんが、プログラマーであり、有望なビジネスマンとして(ソフトウェアのJoelに加えて)私にとって刺激的な投稿をいくつか持っています。
明本武蔵による五輪の本。
いくつかのハイライト。
お気に入りのツールはありません。すべてのツールの使用方法、使用するのに適切なタイミング、その弱点と長所を学びます。
仕事が完璧ではないスタッフは、その仕上がりの質が公の場にある場所で使用できます。建物の下の床を支える柱は、完璧に仕上げる必要はありません(作業する必要があります)。
1つのことを行うことで、多くのことを行います。したがって、AとBを実行する選択肢があり、Bを使用して来週多くのことを実行できる場合は、余裕があればBを実行してください。
読みにくいと思いますが、Knuthの The Art of Computer Programmingは、私たちの分野では本当に大したことです。そして、ダグラス・ホフスタッターの ゲーデル、エッシャー、バッハ:永遠の黄金の編組は、数学的またはアルゴリズム的な曲がりを持つ私たちにとってインスピレーションを与えます。
ほぼ1世紀前にこのような複雑な方法とアルゴリズムを設計している人を描いただけで、やる気になります。