過去に戻って、開発者としてのキャリアを始めたときに特定の本を読むように自分に言い聞かせるとしたら、どの本を読みますか?
このリストは多様で、幅広いものを網羅していると思います。
検索するには:右上隅にある検索ボックスを使用します。現在の質問の回答を検索するには、 を使用しますinquestion:this
。例えば:
inquestion:this "Code Complete"
過去に戻って、開発者としてのキャリアを始めたときに特定の本を読むように自分に言い聞かせるとしたら、どの本を読みますか?
このリストは多様で、幅広いものを網羅していると思います。
検索するには:右上隅にある検索ボックスを使用します。現在の質問の回答を検索するには、 を使用しますinquestion:this
。例えば:
inquestion:this "Code Complete"
プログラミングの練習。ブライアン・W・カーニハン、ロブ・パイク。
ここに示されているスタイルは優れています。コードはそれ自体を物語っていて、本全体がKISSの原則に従っています。個人的には私の選択した言語ではありませんが、それでも私には影響力があります。
人工知能プログラミングのパラダイム:PeterNorvigによるCommonLispのケーススタディ
CommonLispを学びたかったので読み始めました。途中で、これが今まで読んだプログラミングの最高の本だと気づきました。
Systemantics:システムがどのように機能するか、特にシステムがどのように失敗するか。安く使ってください。しかし、いくつかの失敗したプロジェクトに取り組むまで、ユーモアを得ることができないかもしれません。
この本の美しさは著作権の年です。
おそらく、本で提示されている最も深遠な持ち帰りの「法則」:
基本的な故障モード定理(FFT):複雑なシステムは通常故障モードで動作します。
他の部分の障害または他の部分の検証によってマスクされているソフトウェアの特定の部分に障害のある部分があるという考えです。ソフトウェアの欠陥がハードウェアのフェイルセーフによって隠されていたTherac-25放射線装置の実際の例を参照してください。ハードウェアのフェイルセーフが削除されたとき、その間ずっと検出されなかったソフトウェアの競合状態により、マシンは3人を殺しました。
@フアン:私はフアンを知っています、私は知っています-しかし、実際に目の前の仕事に取り掛かることによってのみ学ぶことができるいくつかのことがあります。一日中抽象的な理想で話すことは単にあなたを学者にさせます。アブストラクトの適用において、私たちはそれらの存在の理由を本当に理解しました。:P
@Keith:AlanCooperによる「TheInmatesare Running the Asylum」についての素晴らしい言及-確かに目を見張るものであり、その本を読んで以来私と一緒に働いてきた開発者は、私がそれが支持するアイデアについて言及しているのを聞いています。+1
Database System Conceptsは、適切なデータベース設計の原則を理解する上で読むことができる最高の本の 1 つです。
プログラミング言語の基盤を完全に理解するには、Benjamin C Pierce による「型とプログラミング言語」を参照してください。
Extreme Programming Explained: Embrace Change by Kent Beck。私は、ハードコアな XP やハイウェイのようなソフトウェア開発を推奨しているわけではありませんが、キャリアの早い段階でこの本の原則に触れていればよかったと思っています。単体テスト、リファクタリング、シンプルさ、継続的インテグレーション、コスト/時間/品質/スコープ - これらは私の開発に対する見方を変えました。アジャイルが登場する前は、デバッガーと変更要求への恐怖がすべてでした。アジャイルの後、それらの悪魔はそれほど大きくはなりませんでした。
ゼロからのプログラミング。インターネットで無料です。この本は私に AT&T asm を教えてくれました。とても読みやすいです。
JK Truss によるコンピュータ科学者のための離散数学。
これはプログラミングを教えるものではありませんが、すべてのプログラマーが知っておくべき基本的な数学を教えてくれます。大学でこのようなことを覚えているかもしれませんが、実際には、述語ロジックを実行するとプログラミングのスキルが向上します。コレクションを使用してプログラミングする場合は、集合論を学ぶ必要があります。
ここには、さまざまな方法で問題について考えることができる興味深い情報がたくさんあります。何か新しいことを学ぶために時々手に取るだけで、あると便利です。
間違いなくソフトウェアの職人技
代替テキスト http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
この本は、ソフトウェア工学、システム開発について多くのことを説明しています。また、Web VS シュリンクラップ VS IBM フレームワークなど、さまざまな種類の製品開発の違いを理解することも非常に役立ちます。ウォーターフォールモデルを思いついたとき、人々は何を念頭に置いていましたか? これを読んで、すべてが明らかになります(うまくいけば)
私の個人的なお気に入りの 1 つは、Hacker's Delightです。これは、読むのが楽しいだけでなく、教育的でもあったからです。
第二弾が早く発売されることを願っています!
トーマス・フリードマンによる「世界はフラット」。
プログラミングの卓越性には、精神的なエネルギーの投資と、医学や法律の専門職に匹敵する継続的な学習への献身が必要です。それはそれらの職業が支払うものの何分の1かを支払います、ましてや金融部門に向かう数学に精通した人々に支払われる賃金ははるかに少ないです。そして、コードを構築するための賃金は、ほとんどの経済圏で知的で自己規律のある人が比較的簡単に参入できる職業であるため、低下しています。
プログラミングはすでに、たとえば配管よりも少ない金額で済むようになっています。配管は「オフショア」にすることはできません。学ぶのに1年かかるまったく新しい配管技術のセットを受け取る特権のために、隔年でProfessionalPlumber'sConferenceに参加するために2395ドルを支払う必要はありません。
北米またはヨーロッパに住んでいて、若く、賢い場合、プログラミングは合理的なキャリアの選択ではありません。絶対にプログラミングを伴うビジネス。ビジネスを勉強し、BS検出器を改良するためのプログラミングについて十分に知ってください:素晴らしい。しかし、あなたの精神的エネルギーの大部分を図書館、データ構造、およびアルゴリズムの習得に捧げますか?それは、プログラミングが経済的な選択よりもあなたにとって何かである場合にのみ意味があります。
あなたがプログラミングを愛し、その理由でそれをあなたのキャリアにするつもりなら、それはあなたがそれを生計を立てるためのより困難な職業にするために、そしてこれからも続く力についての冷淡な理解を深めることをあなたに勧めます。「TheWorldisFlat」では、変数の名前を教えてくれませんが、すでに到着している経済の現実に6〜8時間没頭します。あなたがそれを読むことができて、怖がらないなら、外に出て「コードコンプリート」を購入してください。
本当に良い本。コンピュータサイエンスの最も重要な分野の高レベルの味を持っています。はい、CS!=プログラミングですが、これはすべてのプログラマーにとって依然として役立ちます。
昨年、私はいくつかのクラスを受講しました。私は読む
イノベーターのジレンマ(破壊的技術)
The Mythical Man Month(ソフトウェアの管理)
Crossing the Chasm(スタートアップ)
データベース管理システム、COW Book
Programming C#、OSTRICH Book
Beginning iPhone Developmen、GRAPEFRUIT Book
それぞれの本は素晴らしかったですが、クレイトン・クリステンセンによるイノベーターのジレンマ(1997 !!!)は本当に素晴らしい本であり、現代のソフトウェアの世界について本当に考えさせられました。対処する課題は破壊的技術であり、ディスクドライブ企業と非技術企業が常に新しいゲームを変える技術によって破壊される方法です。おそらく最大の「ウェブ」企業であるグーグルについて考えるとき、それは1つに新しい視点を与えます。なぜ彼らはすべてに手を差し伸べているのですか?それは彼らが何か新しいことによって彼らの立場を混乱させたくないからです。グーグルでのプレビューはアイデアを得るのに十分です。それを読んで!
@Peter Coulton -- あなたはクヌースを読まないで、勉強します。
私にとって、そして私の仕事... Purely Functional Data Structuresは、関数型言語を念頭に置いて考え、開発するのに最適です。
Python 言語は私に大きな影響を与えました。何年も前にこれらの本を読んでいたらよかったのにと思います。Python 言語の美しさとシンプルさは、私が他の言語でコードを書く方法に大きな影響を与えました。
スティーブン・レヴィによるハッカー。
性格や生き方が第一。他のすべては学ぶことができます。
プログラミングの実践
と
コンピューターで解決する方法
マーティンファウラーのリファクタリング:既存のコードの設計の改善はすでにリストされています。しかし、それが私に影響を与えた理由を詳しく説明します。
本全体の本質は、人間が読みやすく理解しやすいようにコードを構造化することです。私が書いたコードは、同僚や後継者が消費し、おそらくそれから何か良いことを学ぶためのものであることを強く教えてくれます。それは、人々が私の名前を賞賛し、永遠に私を罵倒することのないように意識的にプログラムするように私を刺激します。
TCP / IPガイド、CharlesM.Kozierok著
それは「百科事典の参照」として説明されていますが、物語として信じられないほど読みやすくなっています。
この著者は、非常に、非常によく書かれた、包括的な、ネットワーキングとWebの基礎となるインフラストラクチャの概要を提供します。すべてのプログラマーが知っておくべきこと。
私にとって、それはチャールズ・ペッツォルドの「コード」からの自然な続編です。「コード」が素人にコンピュータのしくみを説明している場合、「TCP/IPガイド」はそれらがどのように相互に接続するかを説明しています。
12歳のオタクに「コード」と「TCP/IPガイド」のコピーを渡した場合、17歳までに次のGoogleを構築することになります。
言い換えれば、私が時間を遡って、開発者としてのキャリアの初めに特定の本を読むように自分に言い聞かせることができれば、これ(およびコード)は私のリストの一番上にあります。
Pete Goodliffe によるCode Craftはよく読んでいます。
The Mythical Man-Month by Fred Brooks http://en.wikipedia.org/wiki/The_Mythical_Man-Month
代替テキスト http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C++ How to Program初心者向け 1500ページフルコンプリートの秀逸な本です。
これは、広く称賛されているわけではありませんが、深い洞察に満ちた優れた本です: Agile Software Development: The Cooperative Game、Alistair Cockburn 著。
それについて何がそんなに特別なのですか?明らかに、誰もが「アジャイル」という言葉を聞いたことがあるでしょう。最近ではほとんどの人がそれを信じているようです。しかし、信じようが信じまいが、アジャイル運動が存在する理由の背後にはいくつかの深い原則があります。この本は、これらの原則を正確かつ科学的な方法で明らかにし、明確にしています。原則のいくつかは次のとおりです (ちなみに、これらは私の言葉であり、Alistair の言葉ではありません)。
そこには他にもたくさんあります。今は黙りますが、この本を強くお勧めします!
「The Art of Unix Programming」は、ソフトウェア設計のいくつかの原則 (主に単純さ) を理解させようとしているエリック S. レイモンドのような優れたハッカー/聡明な精神による優れた本だと思います。この本は、Unix プラットフォームでプロジェクトを開始しようとしているすべてのプログラミングにとって必須です。
上記の本の多くが必読であることには同意しますが (Pragmatic Programmer、Mythical Man-Month、Art of Computer Programming、SICP がすぐに思い浮かびます)、少し異なる方向に進み、A Disciplineをお勧めします。 Edsger Dijkstraによるプログラミングの。それは 32 歳ですが、「検証可能性のための設計」に重点を置いていることは非常に関連性があります (「検証可能性」が「単体テスト」ではなく「証明」を意味しているとしても)。
マスターズ・オブ・ドゥーム。あなたの職業へのモチベーションと愛に関して言えば、この本で説明されていることよりも良いものはありません。正直に感動的な話です!
Kernighan & Plauger のElements of Programming Style . これは、ギミック・クレバーとエレガント・クレバーの違いを示しています。
実用的なプログラマー:ジャーニーマンからマスターまで間違いなく。その中のアドバイスは非常によく提示されており、単純なので、まるで「常識的なプログラマー」であるかのように出くわします。大好きです。
私はしばらく前から存在しているので、影響力があると思ったほとんどの本は、必ずしも今日は当てはまりません。開発しているプラットフォーム(ハードウェアとOSの両方)を理解することは、普遍的に重要だと思います。他人の過ちから学ぶことも大事だと思います。したがって、私がお勧めする2冊の本は次のとおりです。
ブライアン・W・カーニハンとロブ・パイクによる「プログラミング作法」。
言語は簡単で、主題も興味深いものです。
Mr. Bunny の ActiveX ガイド
私が Java での開発を始めたとき (そして今日に至るまでそうしています)、この分野での傑出した仕事をお勧めする必要があります: Mr Bunny's Big Cup o' Java .
著者の宣伝文 より:
Java を学ぶには、専門の Java プログラマーの松果体を外科的に脳に移植する以外に良い方法はありません。悲しいことに、ほとんどの HMO は、Java があまりにも実験的であると見なして、このキャリア保存手順への支払いを拒否しています。抜本的な医療改革を待てない私たちにとって、ついに代替治療法が登場しました。
Mr. Bunny's Big Cup O' Java は、10 人中 n 人の医師に推奨されています。n は、驚くほど騙されやすい大衆に好印象を与えるために任意の整数です。この本は本の概要から始まり、すぐに本自体に展開します。カバーされているトピックを見てください。
- ジャワ
つまり、MBBCOJ は、今日のウサギの開発環境でキャリアを成功させるために知っておくべきことをすべて教えてくれます。
ピクセルへの洞察だけでも、私のソフトウェア開発人生は何年も切り捨てられたでしょう。
ユーザーがあなたのコードに触れることはありますか? バックエンドの仕事だけを行っていない場合は、About Face: The Essentials of User Interface Design — 現在第 3 版 (リンクあり) をお勧めします。ユーザーは私のインターフェイスを「理解」していないので、愚かだと思っていました。もちろん、私は間違っていました。顔については私を振り返った。
私の本棚に並べられている方法を除いて、特定の順序ではありません。
このリストにまだ載っていない、強い影響を受けた良い本がいくつかあります。
ドナルド・ノーマンによる日常の心理学. 他の人のためのデザインの一般原則。これは主にUIに適しているように見えるかもしれませんが、考えてみると、元の開発者以外の誰かが作業しなければならないインターフェースがあるほとんどすべての場所にアプリケーションがあります。たとえば、API と、他の開発者が正しいメンタル モデルを形成し、API 自体から適切なフィードバックを得るような方法でインターフェイスを設計します。
Glen Myers によるソフトウェア テストの芸術。ソフトウェアのテストに関する優れた一般的な入門書。プログラマーがテスターのように考えるのに役立ちます。つまり、何がうまくいかないかを考え、それに備えるのに役立ちます。
ところで、質問が「最も影響力のある 1 冊の本」だったことは承知していますが、議論は開発者が読むべき優れた本をリストすることに変わったようです。
McConnell による迅速な開発
Not the most influential, but worth a look is Youth by J.M.Coetzee.
The narrator of Youth, a student in the South Africa of the 1950s, has long been plotting an escape from his native country: from the stifling love of his mother, from a father whose failures haunt him, and from what he is sure is impending revolution. Studying mathematics, reading poetry, saving money, he tries to ensure that when he arrives in the real world, wherever that may be, he will be prepared to experience life to its full intensity, and transform it into art. Arriving at last in London, however, he finds neither poetry nor romance. Instead he succumbs to the monotony of life as a computer programmer, from which random, loveless affairs offer no relief. Devoid of inspiration, he stops writing. An awkward colonial, a constitutional outsider, he begins a dark pilgrimage in which he is continually tested and continually found wanting.
youth cover http://img440.imageshack.us/img440/5140/youthgd4.jpg
ナプキンの裏側http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg
視覚的思考技術についての素晴らしい本。現在、拡張版もあります。私はそれを所有していないので、そのバージョンと話すことはできません。まだ。
スティーブマコネルのコードコンプリートには多くの票がありますが、彼のソフトウェアプロジェクトサバイバルガイドの本はどうですか?どちらも読む必要があると思いますが、理由は異なります。
これは実際には初心者プログラマー向けの本ではありませんが、SOA設計の本を探している場合は、SOA in Practice:The Art of DistributedSystemDesignが最適です。
タイトル 表紙 http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg
完全なソフトウェア: テストに関するその他の幻想 (Gerald M. Weinberg)
ISBN-10: 0932633692
ISBN-13: 978-0932633699
Robert L. Glass の Facts and Fallacies of Software Engineeringは本当に素晴らしい本です。私はこの本を読む前にほぼ 10 年間プロのハッカーをしていましたが、今でも多くのことを学んでいます。
Brian W. Kernighan と PJ Plauger によるソフトウェア ツール
ソフトウェアの書き方に大きな影響を与えました。
開発プロセスのデバッグ:スティーブ・マグワイアによる、集中力を維持し、出荷日を決定し、堅実なチームを構築するための実践的な戦略。
ナンセンスで、現実的で、面白くて、深遠です。
すべてのC++プログラマーが読むべき素晴らしい本であるStroustupのC++プログラミング言語については誰も言及していないようです。
また、Extreme Programming Explained:EmbraceChangeはすべてのプログラマーとマネージャーが読むべきだと思います。この本のアイデアの多くは現在一般的な知識ですが、この本はソフトウェアエンジニアリングの品質の追求についてインテリジェントで刺激的な説明を提供します。
クラシックであるKnuthとGangofFourの2番目の推奨事項です。
コードコンプリートが一番の選択肢ですが、GangofFourのデザインパターンとCraigLarmanのApplyingUMLandPatternsも引用します。
クリストファー・アレクサンダーによるタイムレス・ウェイ・オブ・ビルディングは、もう1つの素晴らしい方法です。それはアーキテクチャに関するものですが、私がすでに読んだ多くの優れたプログラミング本の参考文献に含まれています。
私が多くの新しいことを学んでいるもう1つは、CliftonNockによるDataAccessPatternsです。
MaryとTomPoppendieckによるリーンソフトウェア開発は、間違いなくすべての開発者の本棚に1つです。
最近Dreaming in Codeを読みましたが、興味深い読み物でした。Chandler 1.0 がリリースされて以来、私がこの本を読み始めた日から、おそらくそれ以上のことが起こりました。「世界を変えよう」としている才能ある人々のプロジェクト チームの成長する痛みと過ちについて読むと、多くのことを学ぶことができます。また、Scott は多くのプログラマーの伝承と知恵をもたらしてくれます。
Beautiful Codeには、特にトップダウンの演算子の優先順位に関する章で、私の考えを変えさせたものが 1 つか 2 つありました。
Bertrand Meyerによるオブジェクト指向ソフトウェアの構築
W. Richard Stevens によるUNIX 環境での高度なプログラミング。
Scott Myers による効果的な C++およびより効果的な C++ 。
Perl のプログラミング (オライリー)
3冊の本が思い浮かびます。
ポール・グラハムの文章も大好きです。
UNIX環境での高度なプログラミング-W.リチャードスティーブンス
私にとっては、デザインパターンの説明でした。これは、デザインパターンに関して「ああ、それがどのように機能するか」という瞬間を提供し、他の人にデザインパターンを教えるときに非常に役立ちました。
ケントベックによるエクストリームプログラミング
これは厳密には開発本ではなく、別の回答で言及したと思いますが、phpからJava、アセンブリ開発者まで、すべての開発者が読むべきだと私は本当に信じています。
それは本当にコンピュータの内部にあるもの、なぜメモリが無駄にされるべきではないのか、そしてコンピューティングの歴史のより興味深い部分のいくつかをまとめています。それはコンピュータとそれが何であるかについての紹介です。それは私に低水準プログラミングへの究極の情熱を与え、他のどのコンピューターよりもポインターとメモリーを理解するのに役立ちました。
アーロンヒレガスによるMacOSX用のCocoaプログラミング
Smalltalkでコーディングしているかどうかにかかわらず、Smalltalkのベストプラクティスパターンは素晴らしい読み物です。あなたがコーディングする方法を変える小さな観察でいっぱいです。良い方向へ。
これは質問に対する直接的な回答ではありません。すでに上で回答されていると思うので、私のコーディング方法に確実に影響を与えた本の 1 つはCode Reading, Volume 1: The Open Source Perspectiveです。
代替テキスト http://g.bookpool.com/covers/405/0201799405_140_30O.gif
この本がまだ言及されていないことに驚いています。Leo Brodie によるStarting Forthです。結局のところ、スタックベースの言語である Forth は、このサイトの読者に適しているはずです...
確かに、Forth は奇妙な言語であり、最近ではあまり人気がありません。でも、この本は読んでいて楽しい。しかも漫画あり!この本は、Brodie のもう 1 つの本、Thinking Forthと同様に、どちらも Web 上で無料で入手できます。
私は C# プログラマーであり、ほとんどの一般的な本は既に言及されているので、Bill Wagner の本「より効果的な C# .
複合 WPF アプリケーションを開発するほとんどの人は、Microsoft の Composite Application Guidance (Prism とも呼ばれます) も参照する必要があると思います。
Coder to Developer、Mike Gunderloy 著。
http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg
私のプログラミングをまったく新しいレベルに引き上げました。
Craig Larman によるUML とパターンの適用。
本のタイトルは少し誤解を招きます。UML とパターンを扱いますが、それ以上のことをカバーしています。本書の副題は、オブジェクト指向分析と設計および反復開発の紹介です。
私にとって最も影響力のあるプログラミング本は、 Allen Holub著の Enough Rope to Shoot Yourself in the Footでした。
本の表紙 http://ecx.images-amazon.com/images/I/71AE90J735L._SL500_AA240_.gif
ああ、どれくらい前のことだ。
ダニエル・ピンクのホール・ニュー・マインド。私たちの業界の未来に対する興味深い見方。
これを読んでいる人のほとんどは、リストの一番上にある本をすでに読んでいると思います。そこで、私たちの業界を別の視点から見た本を提供します。
コードの完全性は、この質問で非常に人気のある質問になると思います。私にとって、これは私の悪い習慣の多くを修正し、私の良い実践を再確認しました.
また、Perl のバックグラウンドについては、Damian Conway の Perl Best Practices がとても気に入っています。スタイルとベスト プラクティスを使用しない場合、Perl は厄介な言語になる可能性があります。これは、私が読んでいた (そして時々書いている) スクリプトで見たものです。
私は Head First Series が好きです。より本格的なスタイルの本を読む気がないときでも、とても読みやすく、読みやすくなっています。
本の中のすべての思考。
ブルース・エッケルは教育学の天才です!C++ でのポリモーフィズムの実装を理解するのはとても簡単です。C++、基本および高度な概念について知っておくべきことがすべて含まれています。Stroustrup のものよりもはるかに優れています。私も彼と一緒に Java を学びました。
最後になりましたが、重要なことは次のとおりです。
C++ は無料です。
私はこの質問で高得点を得たほとんどの本を読みましたが、すべてではありませんでした (神に感謝します!) そして、すぐに他の本をAmazon ウィッシュ リストに追加しました!
(誰かがこれらの本のリストを Amazon で作成する必要があります...おそらく、「Stackoverflow 史上最高の本」という名前のリストですか?その方法を知っている人はいますか? )
私にとって、これまでで最高の本はCode Completeです。それは啓示でした。私は第 2 版を英語で購入し、次にフランス語で購入しましたが、コンピュータ サイエンスの学校では必読の書物にすべきだと思います。データ構造はクールですが、冗談ではなく、コードが完全であることの方がはるかに重要です...
それから、2 番目に優れた本は『Writing Solid Code 』でした。理解される方法を学んだので、堅実なコードの書き方を知ることができてよかったです。
それからたくさんのとても素敵な本がありますが、ここで言及する人はいません。2001 年まで、私は次のように考えていました。宝石!私はこの本を何度も読みましたが、今でも机の上、液晶ディスプレイのすぐそばに、Code Complete と一緒に置いています (本当に!)。私はそれが書かれた方法が大好きです(あちこちに追加されたコメントが大好きです-本はすべてそのように書かれるべきです!)
でもまあ、最初に読んだ素晴らしい本は忘れてしまいます。情熱を持ってコンピュータ サイエンスを好きにさせてくれた人たち:
まあ、素晴らしい質問です:o)
これが私を真の OOA&D へと駆り立てました。
UML とパターンの適用: オブジェクト指向の分析と設計、および反復開発の紹介 - Craig Larman
これらもそこにあります:
エリック・エバンスによるドメイン駆動設計は素晴らしい本です!
「プロローグの芸術」はとても良い読み物だと思いました。
まだ言及されておらず、すべてのプログラマーが読む必要があるはずの別の本は、あらゆるプログラミング言語で、教祖までの初心者であり、MSPressのMichaelHowardのWritingSecure Code(2nd Edition)です。
「コードを超えて-9つの簡単なステップで自分を区別することを学ぶ」は非常に優れた動機付けの本だと思います。技術的な問題については取り上げませんが、プロとしての人との付き合い方について説明しています。私にとって、これは、ちょっとした話が必要な場合に何度も読むことができる本です。それに加えて、3〜4時間で読むのは安くてとても簡単で楽しいです。
私のブログに少しレビューがあります。
GoF の本よりもはるかにアクセスしやすい導入については、Head First Design Patternsをお読みください。各章ごとにレベルアップしたような気がしたのを覚えています。
Kent Beck のTDDの例によるテスト駆動開発。
Amiga ROM カーネルマニュアル :)
Eric Evans によるドメイン駆動設計
上記の多くの理由から、Head First Design Patterns と Perl Testing: A Developer's Notebook の間でトスです。Perl Testing: A Developer's Notebook は、保守可能なコードを書きたい Perl プログラマーにとってバイブルの 1 つになるはずです。
これは「開発の本」とは見なされないかもしれませんが、とにかくそれを入れなければなりません: Stephen Levy による Hackers。それがプログラミングの感情的な側面に関係していることがわかりました。
非常に多くの人が Head First Design Patterns を挙げていますが、これは非常に優れた本であることに同意します。
このタイトルは、デザイン パターンを見事に扱っています。本の前半は非常に読みやすく、残りの章では、既にカバーされている内容をしっかりと把握するだけでよい 本の後半があまりアクセスしにくいと感じる理由は、若い開発者としての私が明らかに欠けているパターンをカバーしているからです経験上、あまり使用していません。
このタイトルでは、設計パターンの背後にある概念も紹介し、Christopher Alexander のアーキテクチャにおける初期の作業から、GoF が SmallTalk でパターンを文書化する最初の実装までをカバーしています。
Head First Design Patterns を楽しんだが、それでも GoF が非常に乾燥していると感じる人は、はるかに読みやすい (ただし包括的ではない) 代替手段として Design Patterns Explained を検討する必要があると思います。
この本はわずか 300 ページであり、マイクロソフトのテクノロジを支持していますが、言語にとらわれない優れた情報を提供しています。
Roger S. Pressman - ソフトウェア エンジニアリング (実践者のアプローチ)。それは多くの有用な情報を持っています。
この本は、世界最高のプログラマーの集合的な経験をまとめたものです。必読です。
高校の数学の先生が『Are Your Lights Figure Problem』を貸してくれたので、何度も読み返しました。開発者として、そして人生全般において非常に貴重なものでした。
問題は、「あなたが開発者としてどのように働くかに本当に影響を与えた本は何ですか?」ということです。 間違いなく、Jeff Prosise 著のProgramming Windows with MFCは、開発者としての私の仕事の仕方に最も大きな影響を与えた本です。「プログラミング」の基礎は教えてくれませんでしたが、私だけでなく何千人もの開発者に Windows プラットフォーム開発の世界を開いてくれました。
MFC が開発される前に、"Petzold スタイル" で Windows コードを少し書いていました。私はすぐに、開発者として苦労する価値のない Windows プラットフォームを決定しました。Prosise が MFC の本を出版したとき、私は (他の何千人もの Windows 以外のプログラマーと同様に) ユーザーが理解するだけでなく、実際に使用を楽しめる使いやすいインターフェイスを作成できることに気付きました。私はその本をむさぼり食い、たくさんのメモを書き、隅々まで断り、最終的に 2 冊目を購入しました。
プロサイス、ジェフ。MFC 2nd Ed を使用した Windows のプログラミング。 マイクロソフト プレス 1999 ISBN: 1-57231-695-0
数週間ごとに同じ最高評価の質問をして、 code completeまたはThe Pragmatic Programmerに言及しているすべての人をアップモッドすることができると思います.
それに何か問題があるというわけではありません:-)
「C++ の設計と進化」 Bjarne Stroustrup 著
C++ について多くの背景を説明するだけでなく、大規模なプログラムに伴うトレードオフや設計上の問題についても詳しく説明しています。
Ray Duncan による高度な MS-DOS。
Peter Van Der Linden 著の「Expert C Programming - Deep C Secrets」に何が起こったのか - 古典的で楽しい読み物。数年前に C を学んだ直後に読むべきだったのですが、C を学び始めて 3 年後に理解できました! ポインター (私のお気に入りのテーマ) に関する最も一般的な SO の質問に答えるお勧めの本。生きて、食べて、吸って!10/10!
最初はコマンドラインでした。ニール・スティーブンソン。
Expert C Programming: Deep C Secrets by Peter Van Der Linden
レガシー コードを効果的に使用するという本は、コードを適切に単体テストする方法と、その真の利点について詳しく説明している、本当に素晴らしい本です。それは本当に私の目を開けました。
低レベルのエンターテイメントには、Michael Abrash の
i) -Zen of Code Optimization- および
ii) -Graphics Programming Black Book-
をお勧めします。
Software Factory: Assembling Applications with Patterns, Models, Frameworks, and ToolsのレビューをXI-Factoryについても話しているブログで見ました。私はそれを読みましたが、この本は必読だと言わざるを得ません。特にプログラマを対象としているわけではありませんが、モデル駆動型アーキテクチャなどを使用してプログラミングの世界で現在何が起こっているのかを非常に明確に説明しています..
私は、Robert C. Martin のほとんどの本、特にAgile Software Development, Principles, and PracticesとClean Code: A Handbook of Agile Software Craftsmanshipの大ファンです。
Ulrich Drepper 著 - 最新のメモリ サブシステムの構造を説明し、それらを効率的に利用する方法を提案します。
PS: 二重投稿ですみません。
Craig Larman のUML とパターンの適用. Gang of Four の本であるDesign Patternsは非常に有益ですが、プログラミングの授業で Larman の本に出くわすまで、デザイン パターンの使用方法を「理解」していなかったことがわかりました。
Win32 プログラミング by Charles Petzold
厳密にはソフトウェア開発の本ではありませんが、 Don't Make me Think! を強くお勧めします。このリストで考慮されます。
それとは別に、ヒュー・ダーウェンと CJ デイトによるThe Third Manifestoについて言及したいと思います。データを理解することに興味がある場合(プログラマーの間では珍しいようです)、この本は必読です。また、SQL がどれほどひどく壊れているかを理解すると悲しくなりますが、その壊れた状態に対処するのにも役立ちます。ツールがどのように壊れているかを知ることで、それらの欠陥を念頭に置いて設計できます。
私は今、アジャイルソフトウェア開発、原則、パターン、および実践を読んでいます。XP とオブジェクト指向設計に関心のある人にとって、これは古典的な読み物です。
代替テキスト http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg
スティーブ・マクガイアのしっかりしたコードの書き方
C ++のアルゴリズムは、 Big O表記法と、さまざまなソートアルゴリズムの詳細を学ぶ上で非常に貴重でした。これは、セッジウィックが5冊の本に分割することでより多くのお金を稼ぐことができると判断する前に出版されました。
C ++ FAQは、C++で実行すべきことと実行すべきでないことを実際に示したすばらしい本です。C ++の下位互換性により、多くの地雷が残ります。この本は、それらを慎重に回避するのに役立つと同時に、オブジェクト指向の設計と意図についての優れた入門書です。
私はこの質問に遅れていますが、明らかにまだユニークなものを提供しています...要約すると、ソフトウェアの生産性を本当に向上させたい場合は、より優れたツール、ハードウェア、言語、メソッドなどはすべてわずかな影響しかありません。優れた人材だけが生産性を大幅に向上させます。強調しておきますが、これはより優れたエンジニアであり、より多くのエンジニアではありません。
Coders At Workのように、あなたが一緒に寝るような本ではなく、私たちの業界が心に留めるのに非常に苦労している教訓を家に持ち帰るような本です。オフショアリングを目撃してください。ベームのモデルが予測する誤った経済は、たとえあったとしても、わずかなプラスの効果しかありません。見てみな。
StanleyLippmanによるC++オブジェクトモデルの内部
Pragmaticプログラマーはかなり良かった。しかし、私が始めたときに本当に影響を与えたのは:
私は知っています-それは外見は少し安っぽく見え、おそらく少し古いです-しかしこれは彼自身のツールを使用した著者(マット・ピエトレク)の調査に基づいたWin95の内部の素晴らしい説明でした-コードその本が付いてきた。これはオープンソース全体の前であり、Microsoftはまだ内部のドキュメントをリリースすることについてかなり気が狂っていたことを覚えておいてください-ソースは言うまでもありません。そこには、「問題を解決していて、問題が発生した場合は、立ち止まってその部分を深く調べ、それがどのように機能するかを本当に理解する必要があります」などの引用がありました。私はこれがかなり良いアドバイスであることに気づきました-特にあなたがしばしば図書館の情報源を持っていて、見てみることができる最近では。それはまた、システムがどのように機能するかについての内部に飛び込むことを楽しむように私を刺激しました。
ああ、私も効果的な.netを投入します-ドンボックスからの.Netの素晴らしい内部説明。
Scelbi-Byte入門書
私はこの本のソースコードリストを何度も調べて、ある日突然8080アセンブリ言語プログラミングを調べました。
You.Next():ソフトウェア開発のキャリアをリーダーシップトラックに移す〜Michael C. Finley(作成者)、HonzaFedák(作成者) リンクテキスト
メンター/チームリーダー/マネージャー、または前述のことを報告する人のための必読。
Unix / Linux / MacOSなどで何かをしている場合は、故W Richard StevensによるUnix環境での高度なプログラミング(頭字語APUEとも呼ばれます)を読む必要があります。ファイル記述子がどのように機能するか、セッションが何であるか、または自分自身をデーモン化するときに実行する必要があるすべてのことを知らない場合(認めますが、そうではありません)、この本で説明します。
後で少し不気味に感じるでしょうが、Unix環境で(任意の言語の)プロのプログラマーと見なしたい場合は、これを読む必要があります。
Code is Law - あなたはこのすべての執筆、編集、思考を [選択した言語] で行っていますが、なぜですか? MEAN は何をコーディングしますか? それは実際に何をしますか?
(QA に関する本を勧めることもできましたが、しませんでした...)
Maverick!: 世界で最も珍しい職場の背後にあるサクセス ストーリー
代替テキスト http://ecx.images-amazon.com/images/I/410TX7YN94L._SL500_AA300_.jpg
職場のあるべき姿を実感させてくれます。
Donald Knuth による Literate Programming は、コード構造に関する優れた本です。
「The Fortran Coloring Book」Dr. Roger Kaufman著 (1978、ISBN:0262610264)
何というばかげたコンセプト - 「ダミー」の本よりも基本的なことです! しかし、どの言語でも機能し (もちろん、いくつかの Fortran 固有の例があります)、ロジック、変数、I/O などの基本的な概念を非常に理解しやすく、「痛々しいほど面白い」方法で説明しています。
10歳児がプログラミングに興味を持つには十分です...
( Flickr ユーザー アカウントでカバー写真を発見)
近年は「Nicolai M. Josuttis」による「The C++ Standard Library」です。私のバイブルです。
代替テキスト http://ecx.images-amazon.com/images/I/51BT5SKXTCL._SL500_AA240_.jpg
フォードの生産的プログラマー
私はまだこれを完全に理解していませんが、より生産的になるために私が得たいくつかのヒント/トリックにすでにわくわくしています。
確かに、私たちがすでに知っていることはたくさんあります (キーボード ショートカット、DRY などを使用します)。しかし、それに合わせて新しいものがたくさんあります。そして注意深い読者は、より大きな効果を得るために物事をどのように組み合わせることができるかをすぐに理解し始めるでしょう.
オブジェクト指向の分析と設計 - Grady Booch 著
ダイテルとダイテル、「C++: プログラミング方法」
XUnit テスト パターン
Koenig と Moo による " Ruminations on C++ " をもっと早く読みたかった
です。それは、OO の概念を私にとって本当に納得させた本でした。
また、90 年代半ばにプログラミングのキャリアを始めようと考えている人には、Michael Abrash の「Zen of Code Optimization」をお勧めします。
Ken Schwaber と Mike Beedle によるスクラムによるアジャイル ソフトウェア開発。
この本は、アジャイル開発を理解するための出発点として使用しました。
OK、質問は「最高のプログラミング本は何か」ではなく、「キャリアの最初に何を読むべきかを自分自身に教えることができれば」...
おそらく、"On Lisp" と SICP の 1 つに加えて、Udi Manber による CLRS または "Algorithms: acreative approach" の 1 つです。
Udi Manber によるアルゴリズムの紹介 http://vig-fp.prenhall.com/bigcovers/0201120372.jpg
最初の 2 つは、多くのプログラミング テクニックとパターンを教え、自分の創造性に心を開いてくれます。他の 2 つは異なります。それらはより理論的ですが、非常に重要でもあり、正確で効率的なアルゴリズムの設計に焦点を当てています (そして、より多くの数学を必要とします)。
「優れたプログラミング本」という話題が出てくると、最初の 3 冊の本を勧める人がたくさんいますが、最後の 1 冊 (Manber 著) は素晴らしい本であり、それを知っている人はほとんどいません。それは残念だ!マンバーは、帰納法を使用した定理証明によるアルゴリズムの漸進的開発に焦点を当てています。
Cress、Dirkson、および Graham による、Watfor および Watfiv を使用した Fortran IV。
この本は、私が当時パンチカードにプログラミングした最初のプログラミング言語を教えてくれました。3年経つと、使いすぎて本がボロボロになってしまいました。
代替テキスト http://g-ecx.images-amazon.com/images/G/01/ciu/4b/83/245d9833e7a03768eaf63110._AA240_.L.jpg
Fortran は素晴らしい言語でした。スーパーオプティマイザがあり、非常に高速なコードを生成しました。英国では依然として非常に人気があり、FTN95 は現在、非常にフル機能を備えた有能なコンパイラです。使い続ければよかったと思うこともありますが、Delphi は十分な代替品です。
Bruce Eckel による「C++ で考える」
Windows プログラマー、プログラミング Windowsに推奨
スティーブ マグワイアによるソリッド コードの記述。
C でコードを書く場合、エキスパート C プログラミングは目を見張るものがあります。なぜこのように機能するのか疑問に思ったことすべてに答えがあります。ピーター・ヴァン・ダー・リンデンは優れた文体を持ち、難解な概念を非常に読みやすくしています。すべての C 開発者必読
私に大きな影響を与えた最初の本は、Tom SwanのMastering Turbo Assemblerでした。
影響を与えた他の本は、Linus Torvalds と David Diamond によるJust For Funと、もちろんAndrew Hunt と David Thomas によるThe Pragmatic Programmerです。
ほとんどの人は、いくつかの非常に優れた本にすでに触れているようです。私を本当に助けてくれたのは、Effective C#: 50 Ways to Improvement your C#です。The Tao of Poohについて触れなかったら、私は気が進まないでしょう。哲学の本は魂とコードに良いものです。
GWベーシックの紹介です。それがなければ、私はプログラミングの方法を学んだことはなかったでしょうし、他のどの本も役に立たなかっただろう.
私に影響を与えた、ここで見たことのないいくつかを追加します。
これは、すべてのプログラマーにとって必読の本です: Abraham Silberschatz によるデータベース システムの概念。
代替テキスト http://images.barnesandnoble.com/images/14870000/14878097.JPG
私は何年も専門的にプログラミングを行っていましたが、CSLA フレームワークに関する Rocky Lhotka の「Business Objects」シリーズは、私の目を開かせてくれた本でした。
彼のアイデアは、ソフトウェア開発のパターンと理論について私を再び興奮させました。それは、最新の天才的なコントロールやライブラリについて学ぶだけでなく、より良い開発者になる方法を学ぶことへの新たな関心への道に私を置きました. (誤解しないでください。私は今でも優れた技術書が大好きです。最新情報についていく必要があります!)
IBM PC のプログラマーズ ガイド。ピンクのシャツの本.
……まあ、誰かが言わなければならなかった。
The Art of Game Design - A Book of Lenses by Jesse Schell 著
Jesse Schell は 2002 年以来、カーネギー メロン大学のエンターテイメント テクノロジー センターでゲーム デザインを教え、研究プロジェクトを率いてきました。
言っ途切れる。
ゲームデザインの芸術 - レンズの本 http://i50.tinypic.com/iekw0l.jpg
PS: 申し訳ありませんが、二重投稿の場合、タイトルが正確でなかったか、画像がなかったため、回答にこの本が見つかりませんでした。お知らせいただければ削除いたします。
Kent Beck による実装パターン。
代替テキスト http://ecx.images-amazon.com/images/I/51JHn-6oNwL._SL500_AA240_.jpg
プログラミングで人とのコミュニケーションを学ぶことができます。
The Algorithm Design Manualは非常に有益な読み物であることがわかりました。Programming Pearlsも強くお勧めします。
私はゲームをプログラミングしたことがありませんが、この本は多くのことを楽しく理解するのに役立ちました.
私が完全な初心者だったときにこれを購入し、Java が存在することしか知らなかった私を、信頼できるチーム メンバーに短期間で連れて行きました。
コンピューター科学者のように考える方法: Python で学ぶ
世界で最も先進的な本ではないかもしれませんが、プログラミングの概念、特にオブジェクト指向のトピックを理解することができませんでした。
Pro Springは、制御の反転と依存性注入の世界への優れた入門書です。これらのプラクティスとその意味を認識していない場合でも、Pro Spring のトピックと技術的な詳細のバランスは優れています。それは素晴らしいケースと結果としての個人的な基盤を構築します。
私がお勧めするもう 1 つの本は、Robert Martin のAgile Software Development (ASD) です。コードの匂い、アジャイル テクニック、テスト駆動開発、原則など、さまざまなプログラミング ファセットの適切なバランスが書かれています。
より伝統的なクラシックには、悪名高い GoF Design Patterns、Bertrand Meyer のObject Oriented Software Construction、Booch のObject Oriented Analysis and Design、Scott Meyerの「Effective C++」シリーズ、そしてあまり知られていない Gunderloy の著書Coder to Developerが含まれます。
本もいいですが、ラジオもお忘れなく!
……もう一つ付け加えさせてください。まだサファリを発見していない場合は、ぜひご覧ください。スタック オーバーフローよりも中毒性があります :-) 私の Google タイプの習慣では、いつでもどの本でも見ることができるように、より高価なサブスクリプションが必要であることがわかりました。 .
(ああ、はい、今日は少しobj -C、明日はココア、パターン?あなたがグーグルしているものへの継続性と文脈が欲しいなら...)
Object Oriented Design Heuristicsはよく読んでいます。私はそれを置くことができませんでした。
ドナルド・ノーマン「日常のデザイン」
プログラミング自体についてではなく、世界の物事がどのように機能するかについて、つまりユーザビリティの心理学のようなものです。
エンドユーザー インターフェイスと API の両方を設計する上で、私にとって非常に貴重なものでした。
Andrei Alexandrescu による最新の C++ 設計
それでも価値のあるクラシックは、Interface Hall of Shameです。この Web サイトでは、非常に面白いインターフェイス デザインの失敗作の膨大な品揃えについて詳しく説明しています。元の iarchitect.com はもう存在しませんが、他の人は自分の Web サイトで HOS を再確立しました。
プログラマーのためのエチュード by Charles Wetherell, More Programming Pearls (Jon Bently),
解決方法: 数学的手法の新しい側面 コンピュータ プログラミングとは直接関係ありませんが、問題解決の技術を教えてくれます。それがコンピュータ プログラミングのすべてです。
Grady Booch による「アプリケーションを使用したオブジェクト指向分析と設計」。私はずっと前にこれを読み、オブジェクト指向ソフトウェアを開発するための方法論が存在する可能性があることを示しました。それ以来、他の多くの本が私に影響を与えてきましたが、この本が私を始めさせました。
Stan Lippman による C++ オブジェクト モデルの内部。すべてが「魔法」になる前に、C++がついに「クリック」されました。この本は、新しいプログラミング言語に取り組むときに、私に別の考え方を与えてくれました。
Learning C# 2005、Jesse Liberty と Brian MacDonald (O'Reilly) 著。
ISBN 10: 0-596-10209-7。
VS2005 で ASP の従来の手続き型コードからオブジェクト指向の C# コードに初めて移行したとき、この本は正しい道を示してくれました。
Brian W. Kernighan と PJ Plauger による Software Tools は、私に最も大きな影響を与えました。
Windows でのグラフィックス プログラミングは、失敗するのが困難です。
エドワード・タフテの何でも:定量情報の視覚的表示。構想情報; 視覚的な説明
これは非常に充実した有用な編集物ですが、著者の中で Andrew S. Tanenbaum に出会ったことがないことに少し驚いています。IMO では、彼は最高の CS 教授の 1 人であり、彼の才能は主に、CS の学部生がかなり難しい資料にアクセスできるようにする彼の並外れた能力に関係しています。彼の本(Modern Operating Systems や Computer Networks など) は、BS を取得しながら CS の強固な基盤を提供してくれる素晴らしい仕事をしてくれたので、強くお勧めします。Tanenbaum に関するその他の興味深い内容は、彼のスキルが教育を超えていることを証明しています。アメーバ - 分散 OS。Turtle - 無料の匿名 p2p ネットワーク。
マイケル・アブラッシュ集会言語の禅
SAP ABAPプログラミング?「21日でABAPを教える」は最高の本です!
巧妙なトリックや魔法は含まれていませんが、3年後、私はこれ以上包括的な本に出くわすことはありませんでした
AlistairCockburnによるアジャイルソフトウェア開発
これは、C#3.0を使用したOOPの理由と方法を理解したい人のための本です。あなたはそれを見逃したくない。
John R Hubbard による Schaum の C++ によるプログラミングの概要。
これは、私が C++ を使い始めたときに読んだ最初のプログラミング本でした。私がプログラミングに興味を持っていることを知った人からプレゼントされました。この本は初心者にとって非常に優れています。初歩的な概念から始まり、テンプレートとベクトルにまで及びます。与えられた例はかなり関連性がありました。この本はあなたに深く考えさせ、より多くの質問をさせ、自分で物事を試しさせました。
実際、2冊の本が際立っています。最初はコードコンプリートでした。古さにも関わらず、これは今でも非常に有用な本であり、時期尚早の最適化の危険性に関する章は、それ自体で本の価格に見合うだけの価値があります。
2 つ目は The Psychology of Everyday Things (現在は The Design of Everyday Things と呼ばれていると思います) で、アプリケーションを設計する際のユーザー インターフェイスに対する考え方が変わりました。それは私をよりユーザー中心にしました。
私が最初に始めたとき、Tom Swan の「Mastering Turbo Pascal」がありました。この本には、それほど深い内容はありません。使用可能な例で明確かつ簡潔でした。この知識に基づいて、私は現在 15 年以上のソフトウェア開発のキャリアを生み出しています。
C++ ブラックブック。ずっとKISS
ギガバイトの管理は、情報の重労働を考える上ですぐにわかる古典です。
「Writing Solid Code: Microsoft's Techniques for Developing Bug-Free C Programs (Microsoft Programming Series)」 Steve MacGuire 著。
ここで言及されている本の大部分が C/C++ の本であることは興味深いことです。
数年前、Bruce Eckel の Thinking in C++ は、C++ について多くのことを教えてくれましたが、研究/分析のために問題を小さな「サンドボックス」に分離することの重要性も教えてくれました。この手法は私のキャリアに大きな影響を与え、日常的に自分自身と他の人の問題のトラブルシューティングに役立っています。
最近は、同じスタイルで書かれた Thinking in Java を参考にしています。どういうわけか、スタイルは単なる単純な「例」を超えており、問題の核心を深く捉えています。
目に見えないエッケルのほぼすべてのものを購入できることにとても感謝しています。
UML とデザイン パターンの適用。
それはデザインパターンが私と一致するのを助け、'スケッチとしてのUML'という言い回しで私にとって意味のあるUMLの正当化を提供しました。つまり、UML は、他の人に表記法を説明する必要がないという追加の利点があるシステムの簡単なスケッチとして使用する必要があります (彼らは既に UML を知っているか、UML の本を読んでもらいます)。
Bjarne Stroustrup による「C++ プログラミング言語」
Deitel および Deitel による C++ シリーズのプログラミング書籍
プログラミングの本ではありませんが、すべてのプログラマーが読むべき非常に重要な本です。
Java で考える (パターン)、ブルース・エッケル
Ian Craigによるオブジェクト指向プログラミング言語の解釈
標準の C++/Java イディオムよりも OO の方がはるかに優れていることがわかったからです。
Turbo C++ でのオブジェクト指向プログラミング。それほど人気はありませんでしたが、それは私が始めた本であり、オブジェクトが何であるかを理解するのに本当に役立った最初の本でした. 高校時代にこれを読んでください。なんだか涙がこみ上げてきます…。
経験豊富なプログラマー向けの C#
または本当にDietel&Dietelから何でも。私は彼らの本を何冊か読みましたが、どれも素晴らしいものでした。
Professional Excel Development この本は、利用可能な最もユビキタスなプログラミング プラットフォームの 1 つで高品質のアプリケーションを作成する方法を示しました。
私の一番のお気に入りは、Matthew Telles による C# Back Book でした。
この件に関する(かなり古い)ブログ投稿がいくつかあります
おそらく「C for Dummies」第 1 巻で、1997 年かそこらにさかのぼります。ほんの序章ですが、Atari ST の GFA Basic でのプログラミングの好みを理解した後は、良い読み物でした。同時期のコロナド C チュートリアルも役に立ちました。
コンピュータで解決する方法http://g-ecx.images-amazon.com/images/G/01/ciu/31/89/d4ac024128a044c186a18010._AA207_.L.jpg
それはコレクションであり、見事でした。Edsger Dijkstra の (CAR Hoare の助けを借りて) 小さな黒い本Structured Programmingと、特に "On Our Inability To Do Much" というタイトルのエッセイ。
他の人々の提案に加えて、SICP のコピーを入手するか、オンラインで読むことをお勧めします。これは、私が読んだ数少ない本の 1 つであり、ソフトウェアの設計、特に優れた抽象化レイヤーの作成のスキルが大幅に向上したと感じています。
プログラミングに直接関係しないが、プログラマー (IMO) にとっても読みやすい本はConcrete Mathematicsです。そのトピックのすべてではないにしても、そのほとんどはプログラマーが知るのに役立ちます。また、これまでに読んだどの数学の本よりも優れた説明を行っています。
私にとって、「C および C++ におけるプログラミングの概念としてのメモリ」は、メモリ管理が実際にどのように機能するかについて本当に目を開かせてくれました。あなたが C または C++ の開発者なら、必読だと思います。途中で忘れていたかもしれないことを反抗的に学び、思い出します。
http://www.amazon.com/Memory-Programming-Concept-C/dp/0521520436
私が初めて OOP 言語でプログラミングを始めたとき、この本は C++ と MFC に関する包括的な本であるだけでなく、これまでに見たオブジェクト指向の概念についての最良の説明の 1 つでもあることがわかりました。
オブジェクト指向言語でプログラミングを始めたばかりの開発者と話すとき、私は彼らにこの本を読むように言います。
Robert Sedgewick によるアルゴリズムの本。アプリケーション開発者必読。
多くの種類があります (C、C++、Java)
PHP オブジェクト、パターン、および実践。 http://www.apress.com/book/view/9781590599099
「プログラマーになる方法: 短く、包括的で、個人的なまとめ」 Robert L Read
正確には本ではなくエッセイですが、コーディングを始めたとき、これは間違いなく私にインスピレーションを与えました. 部族に入るという概念が気に入りました。一読の価値あり。
Tom Swan から C++ を習得。それは最高の種類の本であり、概念を教えるのに十分単純でありながら、他の問題を解決するのに十分役立つ例が含まれていました。とても読みやすかったです。大学に入学して初めて読んだ本で、一度読むだけで済みました。
Tenenbaum の最初のオペレーティング システムの本。カーネルレベルのプログラミングを初めて見ました。
Sedgewick による「Algorithms in C」(第 1 版) は、アルゴリズムについてすべてを教えてくれただけでなく、このバージョンのすべてのサンプル コードは「Algorithms in Pascal」バージョンから取られたため、ドキュメントの落とし穴とコードのコピー/貼り付けについてもすべて教えてくれました。単純なコード トランスレータを通過しただけで、さまざまなインデックス スキームに対応していませんでした。
Dreaming in Codeは、おそらく過去 6 か月間で最も大きな影響を与えました。