The Pragmatic Programmer について誰も言及していないことに驚いています。あなたが自分の技術にまったく興味があるなら、それは必読です。
手袋
デイリーWTFからのこの投稿 は正しい道を歩んできた。私は、「手袋」が適切な解決策である何かを開発し始めたことを何度か認めます。
アドビのアレックス・ステパノフ氏のスピーチをお読みください。 5年の終わりに、これは素晴らしいものから素晴らしいものを分離するでしょう。
私は常に Coding Horror および Joel on Software が特定のブログ投稿に刺激を与えることを発見しました。また、彼らが話していることを理解し、自分をプログラマーだと思い込ませてくれたので、いつも気持ちがよくなりました。
そして、その足跡をたどり、肩を立てる人々の束(特に順不同で、現在自由に流れているように私の頭に浮かんだときにリストされています): Alan Kay 、 リチャードストールマン 、 ケントンプソン 、 デニスリッチー 、 ブライアンカーニハン 、 Theo de Raadt 、- Linus Torvalds 、 Eric S. Raymond 、 Rob Pike 、 Bill Gates 、 Steve Jobs 、 ジョン・マッカーシー 、 ジョン・コンウェイ 、 マーティン・オーダースキー 、 ジェームズ・ゴズリング 、 ガイ・スティール 、 Donald Knuth 、 Edsger Dijkstra 、 John Carmack 、 Peter Molyneux ...自分の言葉や作品がインスピレーションを与えたまたは他の人が語った彼らの物語。いくつかの分野での彼らのスキルと天才が、他の人々への彼ら自身の信念によって盲目的な立場に置かれることを妨げないことを覚えている限り。他の人と同じように。 (上記の2冊の本は、ほとんどの場合、すでにかなりうまくカバーしています!)
またはあまり知られていないが、それでも遠くからフォローするのが興味深いアクティブな技術者:Neal Gafter、 Martin Fowler 、 Don Syme など...
私はこれらの人々の作品と、彼らが彼らのプロジェクトを達成(または放棄)するためにしたことから刺激を受けました。
26 を子供時代に読んだとき、私の英語がembyonicだったとき early phreakersCaptain Crunch の話、またはPC時代の誕生- Wozniak at Appleと William Gibson と Neil Stephenson による本とエッセイを読むことも、プログラマー、それは直接プログラミングとは関係ありませんでした。その意味で、 Hacker's Manifesto 、 Agile Manigesto 、または IEEE Code of of倫理 あり、今でも刺激的です。
最後の講義 アリスの背後にいる男ランディポーシュが書いた本。それは彼の最後の講義「本当にあなたの幼年期の夢を達成すること」と一緒です。常にティガーであることを忘れないでください。
これは非常に短いリストで、2冊の本で構成されています。
スティーブマッコネルによるコードコンプリート、セカンドエディション
設計パターン:Erich Gammaによる再利用可能なオブジェクト指向ソフトウェアの要素
私は完全に独学で、幸運にも私はこれらの2冊の本を紹介する仕事の早い段階で(どこにいたかを忘れて以来ずっと)ある記事に出くわしました。 2冊の本を読んだ後のコードの変換は驚異的でした。私はそれらの作者のおかげです。
KernighanとPlaugerによる本The Elements of Programming Styleは、私がCを学んでいたときに非常に影響力がありました。この本は、 PL/IとFortranのサンプルを使用しているため、私はそれを読みましたが、ヒントは両方の言語を超えました。
その本を読む前に、「スタイル」とは、フォーマットなど、ささいな問題について考えていることだと確信していました(タブのスペースの数、カーリーはどこに配置しますか?)。しかし、スタイルは、フォーマットや命名規則を削除した後の状態です。文字列を逆方向に作成してから逆にする方が簡単ですか?次に、それを逆方向に作成して逆にします。
KernighanとPlaugerによる別の本Software Toolsも参考になったが、それほど良くはなかった。そして、カーニハンとパイクによるはるかに新しい本The Practice of Programmingも役に立ちますが、とはかけ離れていますプログラミングスタイルの要素。私はまだ私のコピーを持っているといいのですが。すべてのプログラマが読む価値があります。
Glenford MyersThe Art of Software Testingを読んだ後、テストとQAの評価を高めました。テストは本当の創造的な活動であり、プログラミングを好まないコンピュータサイエンス専攻の学生のためだけのものではないことを示しました。おそらく、テスト駆動開発の人気の高まりとともに、より多くの人々がマイヤーズの本に目を向けるようになるでしょう。
そして、私は本 The Structure and Interpretation of Programs よりも、抽象化の概念へのより良い導入を考えることができません。オンラインで無料で入手できます。これは、Schemeプログラミング言語を紹介しますが、宣言型プログラミングを含む、コンピューターサイエンスの他の多くのトピックに出会います。
私の学歴では、アスペクト指向プログラミングの概念に触発されました。 AOPに関するごく初期の論文をいくつか読んで、アイデアについてのメモの半分のページで終わることができます。
教会とチューリングの進歩も非常に刺激的だと思います。 1930年代には、コンピューターが作成される前まで、科学者や数学者は高次プログラミング言語であるラムダ計算でプログラミングを行っていました。 教会の数 の構造と先行関数は、おそらくこれまでで最も賢いプログラミング構造の1つです。ほとんど何もないところから何かを作る方法を示しています。
私が読んだものではありません。 1984年、私は隣人と彼の友人と話していました。私は16歳でした。友人は、本質的に世界はコンピューターユーザーとコンピュータープログラマーに分かれていると言っていました。彼は、世界で最も賢い人だけがプログラマーになることができると言いました。
イエーイ!なんて挑戦だ!
元々 Joel on Software 、彼が書いた方法は、私が始めたときの概念を非常に簡単に理解するようにしました。
インスピレーションのために、 Yegge'sBlogs 、 Graham's Essays および SICP Video Lectures です。
コード完了 。プログラマーとして知っておく必要のある基本的な主題のほとんどをカバーし、それぞれについてさらに学ぶための指示を提供します。学習パスの非常に優れた最初のステップ。私と私が知っている多くの人々は、彼らがプログラマーの人生の早い段階でそれを読んでくれることを願っています。
多くのインスピレーションの中で、最近の本はこの本でした:見習いパターン
私はこの記事を6か月に1度読み直す必要があります シェアウェアの専門家があなたより100倍賢くないなら、なぜ一部は100倍の結果を得るのですか?-Steve Pavlinaによって
私が今まで聞いた中で最も刺激的な話は、ソフトウェアを書くことは詩を書くことに似ているとリチャード・ガブリエルが話したことでした。詩人は多くの場合、数単語を取得するために多くの労力を費やしますちょうどいい-Haikusを考えてください-そしてソフトウェアを書くとき、私たちは同じ種類の卓越性と優雅さを目指して努力すべきです。
エレガンスと簡潔さは、詩や数学と同様にプログラミングでも重要であり、流暢に行うには多くの努力が必要です。
http://www.dreamsongs.com/PoetryOfProgramming.html のポイントのいくつかを参照してください
The Little LISPer は私の心を吹き飛ばしました。
高校のパスカルプログラミングクラスを受講しました。私はすでにC64ベーシックをよく知っていて、すべてのプログラミング言語がベーシックやパスカルのようであるかどうかを先生に尋ねました。リトルLISPerのコピーを貸してくれました。週末にそれを読んだ後、そのような奇妙な言語が存在したり、うまくいくとは思いませんでした。彼がアクセスできるダイヤルアップミニで実行されているのを見たとき、私は床に浮かされました。それは存在しました。
私の2番目の大学レベルのプログラミングクラスの後。アルゴリズムとデータ構造、私は専攻を切り替えてより良いCSコンピューターラボにアクセスできるようにしました。彼らは、LISP、scheme、prolog、Smalltalk80、その他多数のツールを備えたUnixマシンを持っていました。
私が最初に Design Patterns の本を1995年に読んだとき、それはプログラマーとして私にとって本当に目を見張るものでした。
今日、 James Shores ' アジャイル開発についての本は私に多くのインスピレーションを与え、そして最近 Lyssa Adkins コーチングチームについて、その両方に興味がある場合はどちらも強くお勧めします。
東の曲がり方は、超越したかわいい小説の本 プログラミングのタオ を楽しむかもしれません。
これは悟りへの道への私の最初のステップであり、プログラミングと、一般に創造的な仕事について、クリエイターが時間の経過とともに発見するために存在する征服できない実体として考えることを奨励した最初のことでした。それと戦おうとするかそれを理解しようとする人は必ず失敗するでしょう。
これまでで最も有用な1冊の本-プログラミングについてではなく、この分野で効果的に機能する方法について:DeMarcoとListerによる「Peopleware」。すべてのプログラマーの本の棚にある必要があります。そして、あなたが管理職に昇格した場合、二重にそうなります。
新しいマシンの魂 (高校時代のインスピレーション) [〜#〜] sicp [〜#〜] (おそらくソフトウェア開発に関連する最高の本の1つ私は今まで読んだことがあります)
Alan Kayがほぼ30年前に言った のように、視点は80 IQポイントの価値があります。私の見方を変えた本:
ルートヴィヒ・ヴィトゲンシュタインによる「哲学的調査」
時々私たちは知っていると思いますが、実際にはわかりません。 W.は、よく見る方法を示しています。
ネルソン・グッドマン著「事実、フィクション、そして予報」
ここで、Wordanalyticが実際に意味することを学びました。また、Wordpragmaticが実際に意味すること。
「Zen and the Art of Motorcycle Maintanance」by Robert M. Pirsig
他のものよりも優れているものはどのようにありますか?なぜすべてが品質的に同じではないのですか? IOW、優れた映画、優れた自動車、優れた食品、優れたソフトウェアの共通点は何ですか?
私は ハッカーになる方法 を見つけました。また、プログラマーとして開発するための実行可能なロードマップも提供します。
難しい読みですが、 Knuth'sThe Art of Computer Programming は本当に大きいです私たちの分野で取引してください。そして Douglas Hofstadter'sゲーデル、エッシャー、バッハ:永遠のゴールデンブレイドは、数学やアルゴリズムの曲がりを持つ私たちにインスピレーションを与えます。
仕事で本のプログラマー: http://www.Amazon.com/Programmers-Work-Interviews-Computer-Industry/dp/1556152116
80年代の世界クラスのプログラマーのインタビューを特集した素晴らしい本
約1世紀前にそのような複雑な方法とアルゴリズムを設計している誰かを想像するだけで、私はやる気を出します。
マービン・ミンスキー
計算:有限および無限マシン
意味情報処理
ncle Bob Martin のプログラミング投稿。 Robert Martinが現在彼の new blog にビデオを投稿しているため、アクティブではなくなりました。
Seth Godin は、完全にプログラミングに関連しているわけではありませんが、プログラマーであり希望のあるビジネスパーソンとして(Joel on Softwareに加えて)刺激的な投稿をしてくれます。
妙本むささしによる五指輪の本。
いくつかのハイライト。
お気に入りのツールはありません。すべてのツールの使用方法を学び、適切なタイミングを学び、そのツールの弱点と長所を学びます。
仕事が完璧ではないスタッフは、彼らの技量の質が公に見える場所で使用することができます。建物の下の床を支える柱は、完璧な仕上げである必要はありません(機能するだけです)。
1つのことを行うことで、多くのことを行います。したがって、AとBのどちらかを選択できるが、Bを使用して来週多くのことを実行できる場合、余裕があればBを実行します。
私はゲームプログラミングから始めました。それはすべてファミコンの日から来ています。ゲーム開発者を志し、それを達成しましたが、私のゲーム業界の国がニッチすぎるため、より良いキャリアのためにアプリケーションソフトウェア/ハードウェアアナリストに変更しました。
私の初期の頃、私は実際にこのITの役割に入るのに少し後悔を感じました。しかし、後に私の同僚の影響を受けて彼の業績に影響を受け、彼らはこれらの新しい技術開発分野で非常に活発でした。空き時間には、ソフトウェアプログラミングと交流して、元同僚と個人的なプロジェクトに取り組みます。
テッドフェリックスのQbasicチュートリアルは、ベーシックでプログラミングすることを学ぶように励ましました。そこからやる気が出てきて、他の言語を学ぶようになりました。プログラミングを始めるのにとても刺激的なチュートリアルです。
コーダーから開発者へ-Mike gunderloy(Amazing Read)
すべてのプログラマが知っておくべき97のこと-Kevlin Henney。
プログラミングの首謀者-Federico Biancuzzi。
Just For Fun:Linus Torvalds
設計パターン:再利用可能なオブジェクト指向ソフトウェアの要素。
ヤフーからのビデオ:ダグラス・クロックフォードとグレイディ・ブーチ。
Charles Petzoldの コンピュータハードウェアおよびソフトウェアの隠されたコード を読んで、そしてもちろん Mythical Man Month をFrederick P. Brooksが読むことを強くお勧めします。 1つ目は、コンピューター全般、およびハードウェアとソフトウェアがどのように連携するかについての優れた洞察です。後者は、現実の世界でソフトウェアを作成することに関するものです。どちらも非常に役立つ本です。
プログラミングの実践 ブライアンW.カーニハンとロブパイク
私はそれが思考を促進するという点で珍しいことに気づきました。代わりに、多くの典型的な言語主導の自己宣伝本です。
10代の頃、Atari ST関連の雑誌でDave Small(*)の記事の翻訳を読んでいましたが、彼の文章はとても刺激を受けました。この男はトリッキーな問題を解決するのを楽しんでいて、大企業ではなく彼自身のために働いており、人々について素晴らしいアドバイスをしてくれました。テクノロジーではなく、人が重要です!
(*)または、AtariでMacをエミュレートしたSmall by GadgetsのDavid David。
私は あなたとあなたの研究 が非常に貴重なアドバイスであることを発見しました。これは、Bell Labsの同僚に対するハミングの講義でした。
ボーデが言っていたのは、「知識と生産性は複利のようなものです」でした。ほぼ同じ能力の2人の人と、他の人よりも10パーセント多く働く1人の人を考えると、後者は前者を2倍以上アウトプロデュースします。あなたが知るほど、あなたはより多くを学びます。学べば学ぶほど、できることが増えます。できることが多ければ多いほど、機会も多くなります。それは複利に非常によく似ています。私はあなたにレートを与えたくありませんが、それは非常に高いレートです。まったく同じ能力を持つ2人のユーザーを想定すると、1日1日管理してもう1時間の思考を獲得する1人のユーザーは、生涯にわたって非常に生産的になります。私はボードの発言を心に留めた。何年かの間、もう少し一生懸命努力することにかなりの時間を費やしましたが、実際にはもっと多くの仕事をこなすことができました。私は妻の前でそれを言うのは好きではありませんが、時々彼女を無視しました。私は勉強する必要がありました。あなたがやりたいことをやりたいのなら、あなたは物事を無視しなければなりません。
「コンピュータプログラムの構造と解釈」、Abelson&Sussman。
「構造化プログラミング」、ダール、ダイクストラ&ホアレ。
「有害なGOTO声明」、ダイクストラ。