発音 - resources 読み方




すべてのプログラマが読むべき最も影響力のある本は何ですか? (20)

@Peter Coulton - あなたはKnuthを読んでいない、あなたはそれを研究している。

私にとって、そして私の仕事... 純粋に関数型データ構造 は、関数型言語を念頭に置いて考えたり開発したりするのに最適です。

あなたが時間をさかのぼって開発者としてのキャリアの最初に特定の本を読むように自分自身に言うことができたら、それはどの本でしょうか?

私はこのリストが多様であり、そして広範囲のものをカバーすることを期待しています。

検索するには: 右上隅にある検索ボックスを使用します。 現在の質問の回答を検索するには、 inquestion:this 使用し inquestion:this 。 例えば:

inquestion:this "Code Complete"

Martin Fowlerの リファクタリング:既存コードの設計の改善 はすでにリストされています。 しかし、それが私に影響を与えた理由を詳しく述べます。

この本全体の本質は、コードを構造化して 人間が 読みやすく理解しやすいようにする こと です。 私が書いたコードは私の同僚や後継者がそれを うまく 使いこなすためのものであることを強く示唆しています。 それは 、私の名前を賛美し、永遠のために私を侮辱するように私を呪っていないような方法で、 意識的に プログラム することを私に促します。


Python言語は私にとって非常に影響力がありました。何年も前にこれらの本を読んでもらえればと思います。 Python言語の美しさと単純さは、私が他の言語でコードを書く方法に本当に影響を与えました。


Steven Levyによるハッカー。

人格と生き方が先に来なければなりません。 他のすべては学ぶことができます。


これは広く称賛されているわけではありませんが、深い洞察に満ちた優れた本です。 アジャイルソフトウェア開発:共同ゲーム 、Alistair Cockburn著。

それについて何がそんなに特別なのですか? 確かに、誰もが「アジャイル」という用語を聞いたことがありますが、最近ではほとんどの人が信者です。 あなたが信じているかどうかにかかわらず、アジャイル運動が存在する理由の背後にあるいくつかの深い原則があります。 この本は、正確で科学的な方法でこれらの原則を明らかにしてはっきりさせます。 いくつかの原則は次のとおりです(ところで、これらは私の言葉であり、Alistairのものではありません)。

  1. チームソフトウェア開発で最も困難なことは、全員の頭脳に同じ理解を持たせることです。 私たちは、具体的な世界には見えない、大きくて複雑で複雑なシステムを構築しています。 より深い理解を共有するためにより多くの人々の頭脳を獲得することに優れているほど、あなたのチームはソフトウェア開発においてより効果的になります。 これがペアプログラミングが理にかなっている根本的な理由です。 ほとんどの人はそれを却下します(そして私も最初からやりました)、しかしこの原則を念頭に置いて、私はあなたがそれを別のショットにすることを強く勧めます。 あなたは今構築したサブシステムを深く理解している2人の人々に巻きついています...そのような迅速な情報伝達を得るための他の方法はそれほど多くありません。 それはバルカンの心を溶かしたようなものです。
  2. 理解を深めるために言葉を必ずしも必要としません。 そして当然の結果として、言葉が多すぎてあなたは聞き手/読者の能力を超えています。あなたが試みている理解の移転は起こらないことを意味します。 子供たちが「没入」し「吸収」することによって言語を話す方法を学ぶことを検討してください。 言葉だけでなく…床に電車で遊んでいる子供たちの例を挙げています。 電車を見たことがない子供がいますが、他の子供たちを見て、ゲームの要点を拾ってすぐに遊んでいます。 これは人間の間でいつも起こります。 あまりにも多くの単語についての推論と一緒にこれはあなたがそれが700ページの詳細な要求仕様を書くことを試みることが昔の「滝」日にどれほど誤った指示だったかを見るのを助けます。

そこにももっとたくさんあります。 私は今黙るでしょう、しかし私はこの本を強くお勧めします!



決定的にソフトウェアの職人技

代替テキストhttp://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

この本はソフトウェア工学、システム開発について多くのことを説明します。 Web VSシュリンクラップVS IBMフレームワークという、異なる種類の製品開発の違いを理解することも非常に役立ちます。 彼らが滝モデルを考えたとき、何の人々が心に抱いていましたか? これを読むと、私たちは(うまくいけば)明確になるでしょう


私の個人的なお気に入りの1つは ハッカーの喜びです 。なぜなら、それは教育的であるのと同じくらい読むのが楽しいからです。

第2版​​がもうすぐリリースされることを願っています!


私は上記の本の多くが必読であることに同意しますが(Pragmatic Programmer、Mythical Man-Month、Art of Computer Programming、そしてSICPはすぐに頭に浮かぶ)、私は少し異なる方向に進み、 A Discipline を推薦したいと思います。 Edsger Dijkstra著 プログラミングの 。 32歳ですが、「検証可能性の設計」を重視しているのは非常に関連性があります(「検証可能性」が「単体テスト」ではなく「証明」を意味する場合でも)。


昨年私はいくつかのクラスを受講しました。 私は読む

イノベーターのジレンマ(破壊的な技術)
神話の人月(管理ソフトウェア)
Crossing the Chasm(スタートアップ)
データベース管理システム、COW本
プログラミングC#、OSTRICHブック
iPhone開発の始まり、GRAPEFRUITブック

それぞれの本は素晴らしいものでしたが、Clayton ChristensenによるInnovatorのジレンマ(1997年)は本当に素晴らしい本です、そしてそれは私が現代のソフトウェアの世界について本当に考えさせられました。 取り組むべき課題は、破壊的なテクノロジ、およびディスクドライブ企業と非技術系企業が、常に新しい革新的テクノロジによって中断されることです。 グーグル、おそらく最大の「ウェブ」会社について考えるとき、それは一つに新しい見方を与える。 なぜ彼らは彼らのすべてを手にしているのですか? それは彼らが彼らの立場を新しい何かによって 混乱 たくないからです。 Googleでのプレビューは、アイデアを得るのに十分です。 それを読んで!






K&R

@ジュアン:私はフアンを知っている、私は知っている - しかし、実際に手元のタスクに降りることによってのみ学ぶことができるいくつかのことがあります。 終日抽象的理想で話すことはあなたを学者にするだけです。 アブストラクトを適用することで、それらが存在する理由を本当によく理解することができます。 :P

@Keith:Alan Cooperによる "The Inmates are the Asylum"の偉大な言及 - 私がその本を読んで以来私と一緒に働いてきた開発者は誰もがそれが支持するアイデアについて言及しているのを聞いた。 +1


極端なプログラミングの説明: Kent Beckによる 変化を受け入れる 私はハードコアなXPやハイウェイでのソフトウェア開発を支持することはしませんが、私はこの本の原則の中でもっと早くから紹介されたことを願います。 単体テスト、リファクタリング、単純さ、継続的な統合、コスト/時間/品質/範囲 - これらは私が開発を見ている方法を変えました。 アジャイル以前は、デバッガと変更要求への不安がすべてでした。 アジャイルの後、それらの悪魔はそれほど大きくは現れなかった。




運命の達人。 あなたの職業に対する動機と愛に関しては、それはこの本で説明されていること以上に良くなることはないでしょう。