もしあなたが過去にさかのぼって、開発者としてのキャリアの初めに特定の本を読むように自分に言うことができるなら、それはどの本でしょうか?
このリストは多様で、幅広いものをカバーしていると思います。
検索するには:右上にある検索ボックスを使用します。現在の質問の回答を検索するには、を使用しますinquestion:this
。例えば:
inquestion:this "Code Complete"
もしあなたが過去にさかのぼって、開発者としてのキャリアの初めに特定の本を読むように自分に言うことができるなら、それはどの本でしょうか?
このリストは多様で、幅広いものをカバーしていると思います。
検索するには:右上にある検索ボックスを使用します。現在の質問の回答を検索するには、を使用しますinquestion:this
。例えば:
inquestion:this "Code Complete"
回答:
@フアン:私はフアンを知っています、私は知っています-しかし、実際に目前の仕事に取り掛かることによってのみ学ぶことができるいくつかのことがあります。一日中抽象的な理想について話すことは、単にあなたをアカデミックなものにするだけです。それらの存在の理由を真に理解したのは、アブストラクトの適用です。:P
@キース:アランクーパーによる「受刑者たちは亡命を実行している」についての素晴らしい言及-その本を読んでから私と一緒に働いた開発者の目を開く人は、それが支持するアイデアについて言及しているのを聞いた。+1
JKトラスによるコンピュータ科学者のための離散数学。
これはプログラミングについては教えていませんが、すべてのプログラマが知っておくべき基本的な数学を教えています。大学でこのようなことを覚えているかもしれませんが、実際には、述語ロジックを実行するとプログラミングスキルが向上します。コレクションを使用してプログラミングする場合は、セット理論を学ぶ必要があります。
ここには、さまざまな方法で問題について考えることができる興味深い情報がたくさんあります。何か新しいことを学ぶためにたまに拾うだけで便利です。
Systemantics:システムの動作方法、特にシステムの失敗方法。安く使ってください。しかし、いくつかの失敗したプロジェクトに取り組むまでは、ユーモアを得られないかもしれません。
本の美しさは著作権の年です。
おそらく、本で提示された最も奥深いテイクアウトの「法則」:
基本的な故障モード定理(FFT):複雑なシステムは通常、故障モードで動作します。
特定のソフトウェアに、他の部分の障害または他の部分の検証によってマスクされている障害部分があるという考えです。Therac-25放射マシンでの実際の例を参照してください。そのソフトウェアの欠陥はハードウェアのフェイルセーフによって隠されていました。ハードウェアフェイルセーフが取り外されたとき、それらの年の間ずっと検出されなくなっていたソフトウェアの競合状態は、マシンが3人を殺すことをもたらしました。
私の個人的なお気に入りの1つはHacker's Delightです。これは、教育的であると同時に読むのも楽しかったからです。
第二弾がまもなくリリースされますように!
エクストリームプログラミングの説明:ケントベックによる変化を受け入れる。私はハードウェアXPまたはそれ以上の方法でソフトウェア開発を行うことを主張していませんが、私のキャリアのかなり早い段階で、この本の原則を紹介していただければ幸いです。単体テスト、リファクタリング、シンプルさ、継続的インテグレーション、コスト/時間/品質/スコープ-これらは私が開発の見方を変えました。アジャイルが登場する前は、デバッガと変更要求に対する恐れがすべてでした。アジャイルの後、それらの悪魔はそれほど大きくはありませんでした。
データベースシステムの概念は、優れたデータベース設計の原則を理解する上で読むことができる最高の本の1つです。
プログラミングの練習。ブライアンW.カーニハン、ロブパイク
ここに示されているスタイルは優れています。コードはそれ自体が意味をなし、本全体がKISSの原則に従っています。個人的には選択した言語ではありませんが、それでも私に影響を与えています。
ゼロからプログラミング。インターネットでは無料です。この本は私にAT&T asmを教えました。とても読みやすいです。
人工知能プログラミングのパラダイム:Peter NorvigによるCommon Lispのケーススタディ
Common Lispを学びたかったので、私はそれを読み始めました。途中で、これが今まで読んだプログラミングに関する最高の本だと気づきました。
間違いなくソフトウェアの職人技
代替テキストhttp://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
この本はソフトウェア工学、システム開発について多くのことを説明します。また、さまざまな種類の製品開発の違いを理解することも非常に役立ちます。WebVSシュリンクラップVS IBMフレームワークです。ウォーターフォールモデルを考案したとき、人々は何を考えていましたか?これを読んで、すべてが明らかになります(うまくいけば)
トーマス・フリードマンによる「世界はフラット」。
プログラミングの卓越性には、精神的エネルギーの投資と、医学や法律の専門職に匹敵する継続的な学習への献身が必要です。それはそれらの職業が支払うもののほんの一部を支払い、金融セクターに向かう数学的に精通した人に支払われる賃金よりはるかに少ないです。そしてのための賃金コード構築する、それが比較的職業であるので侵食されています、ほとんどの経済でインテリジェントで自己規律簡単に参入できるています。
プログラミングはすでに、例えば配管工事よりも支払う額が少なくなるまでに侵食されています。配管を「オフショア」にすることはできません。学ぶのに1年かかるまったく新しい配管技術のセットを受け取る特権のために、隔年でProfessional Plumber's Conferenceに参加するために$ 2395を支払う必要はありません。
あなたが北アメリカまたはヨーロッパに住んでいて、若くて賢いなら、プログラミングは合理的なキャリアの選択ではありません。プログラミングに関わるビジネスは絶対に。ビジネスを研究し、BS検出器を改良するためのプログラミングについて十分に理解してください。しかし、精神的エネルギーの大部分を、ライブラリ、データ構造、アルゴリズムの習得に捧げますか?それは、プログラミングが経済的な選択よりもあなたにとって何かである場合にのみ意味があります。
あなたがプログラミングを愛し、そのためにそれをあなたのキャリアにするつもりであるならば、それはあなたが生計を立てるためにそれをますます困難な職業にするために、現在そしてこれからも続く力について冷ややかな理解を発達させることを必要とします。「The World is Flat」は変数の名前を教えてくれませんが、すでに到着している経済の現実に6時間または8時間浸ります。あなたが怖がって取得し、それを読んで、できない場合は、その後、出て行くと買う「コードコンプリート。」
昨年、私はいくつかのクラスを受講しました。私は読む
イノベーターのジレンマ(破壊的技術)
神話の人間月間(管理ソフトウェア)
亀裂を乗り越える(スタートアップ)
データベース管理システム、COWブック
プログラミングC#、OSTRICHブック
iPhoneの開発を始める、GRAPEFRUITブック
それぞれの本は素晴らしかったが、クレイトン・クリステンセンのイノベーターのジレンマ(1997 !!!)は本当に素晴らしい本であり、現代のソフトウェアの世界について本当に考えさせられました。対処される課題は、破壊的なテクノロジーであり、ディスクドライブ企業と非技術企業が常に、ゲームを変える新しいテクノロジーによってどのように破壊されるかです。おそらく最大の「ウェブ」企業であるグーグルについて考えるとき、それは1つに新しい展望を与えます。なぜ彼らはすべてに手を持っているのですか?それは彼らが自分の立場を何か新しいもので混乱させたくないからです。グーグルのプレビューはアイデアを得るのに十分です。それを読んで!
プログラミングの実践
そして
コンピュータでそれを解決する方法
Python言語は私に非常に影響力がありました、私がこれらの本を何年も前に読んでいたらいいのにと思います。Python言語の美しさとシンプルさは、他の言語でコードを書く方法に本当に影響を与えました。
本当に良い本です。コンピュータサイエンスの最も重要な領域のハイレベルな趣味があります。はい、CS!=プログラミングですが、これは依然としてすべてのプログラマーにとって有用です。
フレッド・ブルックスによる神話のマン月 http://en.wikipedia.org/wiki/The_Mythical_Man-Month
「Unixプログラミングの芸術」は、ソフトウェアデザインのいくつかの原則(主に単純さ)を理解させようとするエリックS.レイモンドのような優れたハッカー/優秀な心による優れた本だと思います。この本は、Unixプラットフォームでプロジェクトを開始しようとしているすべてのプログラミングに欠かせません。
上記の本の多くは必読であることに同意しますが(実用的プログラマー、神話的マン月、コンピュータプログラミングの芸術、SICPがすぐに思い浮かびます)、少し異なる方向に進んでA Disciplineを推奨しますEdsger Dijkstraによるプログラミングの。32歳ですが、「検証可能性の設計」を強調することは非常に関連があります(「検証可能性」が「単体テスト」ではなく「証明」を意味する場合でも)。
コードクラフトピートグッドリフによるは良い読み物です!
Martin Fowlerのリファクタリング:既存のコードのデザインの改善はすでにリストされています。しかし、それが私に影響を与えた理由を詳しく説明します。
本全体の本質は、人間が読みやすく理解できるようにコードを構造化することです。私が書いたコードは、同僚や後継者が消費し、おそらくそれから何か良いことを学ぶためのものであることを強く教えてくれます。それは私が人々を私の名前を称賛するような方法で意識的にプログラムするように促し、私を永遠に非難するつもりはありません。
代替テキストhttp://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++プログラミング方法初心者に最適です。1500ページの完全な優れた本です。
広く賞賛されていないが、深い洞察に満ちている優れた本は次のとおりです。AlistairCockburnによるAgile Software Development:The Cooperative Game。
何がそんなに特別なのですか?まあ、明らかに誰もが「アジャイル」という言葉を聞いたことがあり、最近ではほとんどが信者であるようです。しかし、信じるかどうかにかかわらず、アジャイル運動が存在する理由の背後にはいくつかの深い原則があります。この本は、これらの原則を正確かつ科学的な方法で明らかにし、明確にします。原則のいくつかは(ところで、これらはAlistairの言葉ではなく、私の言葉です):
そこにもたくさんあります。今は黙るが、この本を強く勧める!