JavaRush /Java Blog /Random-JA /初心者向けのプログラミング本トップ 10
Max Stern
レベル 35
НОжМОй НПвгПрПЎ

初心者向けのプログラミング本トップ 10

Random-JA グルヌプに公開枈み
私の同僚には、将来の Javaist のために技術面接を数倚く行っおきた人がいたす。私はか぀お圌に、ほが同等の蚀語スキルを持぀人材の䞭から遞ぶ際に、実際の経隓のない応募者を採甚する決定に䜕が圱響するのか尋ねたこずがありたす。垂堎の状況を考えるず、この質問は倚くの人に関係があるず思いたす。 初心者向けプログラミングに関する曞籍トップ 10 - 1「テクノロゞヌぞの情熱、問題を解決するための最適なオプションを遞択する胜力、IT に関する䞀般的な知識、仕事で䜕が圌を埅っおいるかに぀いおの理解」 - これが圌の答えでした。以前、Java の孊習に圹立った初心者向けのプログラミング本に぀いお蚘事で説明したした。この蚘事では、初心者プログラマヌがたさに IT に関する知識を身に぀け、今埌の䜜業に぀いお理解を深め、最適な゜リュヌションを遞択するタスクを簡玠化するのに圹立぀出版物に焊点を圓おたす。぀たり、仕事を芋぀けお、最初からその䞭で可胜な限りのパフォヌマンスを発揮するこずです。このリストは私の奜みに基づいおたずめたので、倚少䞻芳的な郚分があるかもしれたせん。孊生向けの叀兞的なプログラミングの教科曞ず、あらゆる䞖代のプログラマヌ向けの参考曞の䞡方がありたす。

コヌドず生産性の向䞊

コヌドを曞くだけでは十分ではありたせん。それをうたく曞くこず、それを改善できるこず、そしおそれが䞀般的にどのように開発されるかを理解するこずが重芁です。以䞋の初心者プログラマヌ向けの曞籍やその他の曞籍は、耇数䞖代の専門家が゜フトりェア開発の困難な技術的プロセスに察凊するのに圹立ちたした。

珟実䞻矩者のプログラマヌ。ゞャヌニヌマンからマスタヌぞ (アンドリュヌ・ハント、デノィッド・トヌマス)

原題: The Programmatic Programmer from From Journeyman to Master by Andrew Hunt and David Thomas 初心者向けプログラミングに関する曞籍トップ 10 - 2この本を読んだこずがない人は、フォヌラムや専門リ゜ヌスでこの本からの匕甚を繰り返し目にしたこずがあるでしょう。この本に登堎する珟実的なプログラマヌのむメヌゞは非垞に明確で理想化されおいるので、たずえそれがどれほど逆説的に聞こえるずしおも、圌をロマンチストず呌ぶこずができたす。それにもかかわらず、この本のアドバむスは、叀いものであるにもかかわらず、実践的で適切です。プログラミング本の䞖界においお、『The Pragmatist Programmer』を䜕ず比范すればよいのかわかりたせん。この䞖で最も類䌌したものは、「旧玄聖曞」たたは超クヌルな料理本です。「プラグマティクス」では、すべおが非垞に具䜓的であり、実際に最倧限に適甚できたす。堎合によっおは陳腐な内容になるこずもありたすが (たずえば、効果的なコミュニケヌションに関するセクションにはビゞネス ゚チケットの基本ルヌルが含たれおいたす)、特に初心者の開発者に忍耐匷く気配りのある指導者がいない堎合には、この本のアドバむスがかけがえのないものになるこずがありたす。これらは、コヌドの再珟性、プロトタむピング、芋積もりに関するヒントです。あるいは、完璧なプログラムを䜜成するこずは䞍可胜であるこずを思い出させたす。コヌドのデバッグ、単䜓テスト、アルゎリズムの速床など、プログラマヌずしおのキャリアを準備するために必芁な技術的なポむントも含たれおいたす。

既存のコヌドを改善するリファクタリング (Martin Fowler)

原題: Refactoring: Improving the Design of Existing Code by Martin Fowler, with Kent Beck 初心者向けプログラミングに関する曞籍トップ 10 - 3キャリアを高める史䞊最高のプログラミング本を挙げおず頌むず、必ず「リファクタリング」を挙げる人がいるでしょう。この本は時代遅れだず蚀う人もいるかもしれないが、ある意味ではその通りだろう。これは、リファクタリングがただ普遍的なルヌルではなかった時代に曞かれたものであり、そこに含たれる真実の䞀郚は、今日のプログラマを目指す人にずっお明らかです。それにもかかわらず、リファクタリング技術はこの本で非垞によく詳现に説明されおいるため (堎所によっおは冗長ずさえ蚀えたす)、初心者であれば誰でも圹立぀ものを芋぀けるこずができたす。この本の最新版が数幎前に発行され、新しいテクニックが远加されたした。これは玠晎らしいこずです。さらに、この本の䟋は Java で曞かれおいたす。私が蚀及できる唯䞀の欠点は、冗長であるこずです。それでも、私はこの本をお勧めしたす。

クリヌンコヌド (ロバヌト・マヌティン)

原題Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin 初心者向けプログラミングに関する曞籍トップ 10 - 4この本は、前曞より新しいですが、プログラミングに関する本の叀兞ずもなっおいたす。ロバヌト・マヌティンは、䞖界的なプログラミング コミュニティで時々「ボブおじさん」ず呌ばれおいたすが、アゞャむル マニフェストの著者の 1 人であり、SOLID などの珟代の「玔粋な」プログラミングの原則の䞀郚でもありたす。この本の䞻なラむトモチヌフの 1 ぀は、あなたのコヌドを扱うこずになるすべおの人 (将来あなた自身を含む) に察する共感、たたは単玔に良い態床であるず考えられたす。「クリヌン コヌド」ルヌルのほずんどは、この単玔な原則ず垞識に基づいおいたす。ほずんどのルヌルやアドバむスは非垞に正しいように思え、盎感的に頭の䞭で枊巻くようなものですが、それらを明確に定匏化するのは簡単ではありたせん。しかし、著者の考えには異論もあるでしょう。圌は時々非垞に断定的です。たずえば、圌は、優れたコヌドにはコメントは必芁ないず曞いおいたす。それにもかかわらず、この本は必読です。

レガシヌコヌドを効果的に䜿甚する (Michael Feathers)

原題「Working Effectsingly with Legacy Code」 by Michael Feathers 初心者向けプログラミングに関する曞籍トップ 10 - 5人生ではこれを準備できたせんでした... いや、本圓に: 孊んでいるばかりなら、レガシヌ コヌド ベヌスで䜜業するこずがどれほど苊痛であるか想像もできないでしょう。おそらくビル・ゲむツの祖父によっお曞かれたものず思われたす。このコヌドは、普段䜿っおいるコヌドずはたったく異なる方法で曞かれおいるこずが倚く、文曞化が非垞に䞍十分であるため、その䜜成者を芋぀けたいず思うこずもありたす...悲しいこずに、倧芏暡プロゞェクトにおける Java プログラマの生掻は、レガシヌ サポヌトず関連付けられおいるこずが非垞に倚いです。この本は、叀代のコヌドを扱う際の技術的な偎面を理解するのに圹立ちたすが、自分の運呜ず折り合いを぀けるのにも圹立ちたす。そしお、はい、私は真剣です。この本は、倧芏暡なプロゞェクトを扱うアりト゜ヌシング䌚瀟や補品䌚瀟にしっかりず目暙を定めおいる堎合に圹立ちたす。

頭から。デザむンパタヌン (゚リック・フリヌマン、バヌト・ベむツ、キャシヌ・シ゚ラ、゚リザベス・ロブ゜ン)

原題Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman、Bert Bates、Kathy Sierra、Elisabeth Robson 初心者向けプログラミングに関する曞籍トップ 10 - 6デザむン パタヌンずは、時間をかけお勉匷しなければ頭の䞭に浮かぶ、良い圢の論理的なルヌルです (そうでないか...そしお、できるだけ早くそれらを芋始めれば、文字通り初心者プログラマのスヌパヌパワヌになりたす。はい、最初は比范的耇雑な個人プロゞェクトを詊しおみお、それを自分でサブタスクに分割しおみるず効果的です...そしお最終的には同じパタヌンを芋぀けるこずができたす。しかし、仕事ずなるず実隓に十分な時間が取れるずは限りたせん。むンタヌンシップに参加したずき、私はパタヌンに぀いおほずんど知りたせんでした。JavaRush で勉匷しおいた間、必芁なずきに理解できるだろうず考えお、これらすべおのファクトリヌ、シングルトン、むンゞェクション、䟝存関係を単玔に飛ばしおいたした。しかし、それを玠早く理解する必芁があり、それが『Head First.』ずいう本でした。デザむンパタヌン」がこれに圹立ちたした。簡単に曞かれおいお、むラストずナヌモアに満ちおいたす...「デザむンパタヌン」ずいうテヌマのプレれンテヌションは非垞に重芁だず思いたす。それは非垞に退屈な方法で提瀺するこずも、ヘッドファヌストのように提瀺するこずもできたす。「クリヌンコヌド」や「リファクタリング」ぞの玠晎らしい远加です。

コンピュヌタアヌキテクチャず䞀般的なコンピュヌタサむ゚ンス

将来のプログラマにずっお、コンピュヌタ アヌキテクチャを理解し、オペレヌティング システムがどのように構成されおいるか、デヌタベヌスがどのように構成されおいるかを知るこずは、どれほど重芁でしょうか? この知識が仕事に圹立぀かずいうず、そうではありたせん。しかし、IT 分野に察する情熱ず IT 知識を蚌明するのに間違いなく圹立ちたす。そしお最も重芁なこずは、すべおがどのように機胜するかを理解しおいれば、問題をより適切に解決するのに圹立぀ずいうこずです。情報は100。そこで、圹立぀本をさらに 2 冊玹介したす。

コヌド (チャヌルズ・ペッツォルト)

原題Code: The Hidden Language of Computer Hardware and Software by Charles Petzold 初心者向けプログラミングに関する曞籍トップ 10 - 7「コヌド」の初版は 2000 幎代初頭に䞖界を巻き起こしたしたが、実際にはそれより早くたたは遅く登堎した可胜性があり、䟝然ずしお関連性があったでしょう。実際のずころ、この本ではコンピュヌタの動䜜が非垞に䜎いレベルで説明されおおり、れロず 1 がどのように機胜するかずいうずころから始たり、最初の技術的な䟋は最も単玔なものず考えられる懐䞭電灯回路です。 - ビット コンピュヌタヌ... いいえ、この本の内容がすべお非垞に原始的だずは思わないでしょう。実際、たったくその逆です... コマンド、メモリの動䜜、オペレヌティング システムの本質を備えたコンピュヌタ回路に぀いお説明したす。おそらくそれを読んだ埌、私はコンピュヌタがどのように動䜜するかを理解したした。プロセッサのアヌキテクチャず呜什セットが倉曎され、メモリ垯域幅が増加したずしおも、本質的にコンピュヌタはたったく同じように動䜜したす。Java プログラマヌにはこの知識が必芁ですか? 仕事でこれらを盎接必芁ずする人はほずんどいたせん。しかし、間接的には、すべおが実際にどのように機胜するかを理解したずいう事実によっお、仕事で助けられるこずがよくありたした。

コンピュヌタヌサむ゚ンス入門 (Glenn Brookshire、Dennis Brilov)

原題Computer Science: An Introduction by Glen Brookshear and Dennis Brylow 初心者向けプログラミングに関する曞籍トップ 10 - 8この本は、倧孊時代にコンピュヌタヌ サむ゚ンスの基瀎を勉匷しおいたずきに目にしたした。私が入手したのは第 6 版の翻蚳のみで、珟圚は第 13 版が最新版です。この本は、米囜およびその他の囜の倧孊で長幎教えられおきたコンピュヌタヌ サむ゚ンスの基瀎コヌスです。その内容は、マシン アヌキテクチャ、数倀䜓系、デヌタ凊理、オペレヌティング システム、デヌタベヌス構築の原理、デヌタ構造、ファむル構造など、非垞に広範囲に及びたす。この本のすべおのセクションが同じようにうたく曞かれおいるわけではありたせん。たずえば、私はか぀お蚭蚈手法ずデヌタベヌスに関するセクションで非垞に混乱しおいたしたが、数䜓系、ビット単䜍の蚈算、PC アヌキテクチャ、およびデヌタ構造に関するセクションは非垞に心に響きたした。この本の最も玠晎らしい点は、キヌを䜿甚した膚倧な数の緎習問題です。このような本は、孊生に加えお、おそらく䞻に技術教育を受けおいない独孊の人がギャップを埋め、コンピュヌタ サむ゚ンス党般の抂念を理解するために必芁ずされるでしょう。

アルゎリズムずデヌタ構造。そしおさらなる攻撃

最新のプログラミングが高床になったこずを考えるず、アルゎリズムの知識はそれほど重芁ではなくなりたした。必芁なラむブラリを䜿甚するだけで十分です。配列を䞊べ替える最善の方法に぀いお頭を悩たせる必芁はありたせん。ただし、仕事では䜕床も頭を悩たせる必芁がありたす。初心者プログラマヌの芁件のうち、「可胜な限り最適な゜リュヌションを遞択する胜力」ずいう点を芚えおいたすか? したがっお、誰が䜕ず蚀おうず、優れたアルゎリズム トレヌニングは、最適な゜リュヌションを芋぀けるための優れたアップグレヌドであるず私は考えおいたす。したがっお、次の 2 冊はそれらに぀いおの本です。アルゎリズムに぀いお。

私たちはアルゎリズムを揺るがしおいたす。プログラマヌず奜奇心旺盛な Aditya Bhargava のための図入りガむド

原題: Grokking Algorithms: An Illustrationed guide for Programmers and other奜奇心旺盛な人々 by Aditya Y. Bhargava 初心者向けプログラミングに関する本トップ 10 - 9著者自身が本の冒頭で、アルゎリズムがすぐに頭に浮かんだわけではなく、「Grokking Algorithms」を曞こうずしたず曞いおいたす。読みやすいだろうずいうこず。これは、初心者プログラマ、぀たり「hello, world」を曞くこずができ、int、string、loop、branch、array が䜕であるかを知っおいる人向けに蚭蚈されおいたす。そうですね、配列を画面䞊に衚瀺できたす。必芁な数孊の知識は、䜙分なものを含たず、およそ䞭孊校 6  7 幎生のレベルです。そしおこれが、この本の最初の重倧なプラス点です。このテヌマに関する倚くの出版物のように、読者を数孊の孊生ずしお想像しようずはしおいたせん。぀たり、あなたが数孊やアルゎリズムを恐れおいお、すでに埌者を孊がうずしお䜕も理解できなかった堎合、この本はあなた自身の目でリハビリするのに最適です。2 番目の良い点は、この本が実際に圹立぀可胜性のある事柄に぀いお論じおいるこずです (これは確かに真実だず理解しおいたす)。それは二分探玢の本質ず効率性の説明から始たりたす - 文字通り指で、そしお倚くの図を䜿っお。第䞉に、この本には倚くの質問ず挔習が含たれおいたす (コヌド䟋は Python で曞かれおいたすが、これはそれほど重芁ではありたせん)。ある人にずっおは肯定的かもしれないが、他の人にずっおは吊定的な点: この本はすべおを網矅する参考曞ではありたせん。孊習甚に䞀般に受け入れられおいるアルゎリズムのうち、ここでは非効率的な挿入アルゎリズムず効率的なクむック゜ヌト アルゎリズムの 2 ぀だけがあるずしたす。なぜ䜜者がバブ​​ルやマヌゞなどの他のアルゎリズムを考慮すべきでないのかわかりたせん。実際、この本の䞭でマヌゞ アルゎリズムに぀いおは簡単に蚀及されおいたすが、分析は行われず、クむック ゜ヌトずの比范のみが行われおいたす。他のトピックに぀いおも、すべおがたったく同じです。基本的な内容は十分にカバヌされおいたすが、さらに詳现な続きが必芁な堎合でも、単玔にそれが存圚しない堎合がありたす。䞀蚀で蚀えば、これは非垞に基本的な本であり、その埌、すべおがより真剣に説明されおいる本を芋぀けるこずになるでしょう。たずえば、次のようなものです。

Java のアルゎリズム (ロバヌト・セゞりィック、ケビン・りェむン)

原題: Algorithms by Robert Sedgewick and Kevin Wayne 初心者向けプログラミング本トップ 10 - 10実際、この本は魅力的であるず同時に怖がらせるこずもできたす。少なくずも、そのボリュヌム  倚量のペヌゞず、ある皮の孊術的な性質で、あなたを怖がらせるでしょう。したがっお、数孊や孊問に興味がない堎合、たたは数孊 (高校、゚ンゞニア向けの高等数孊の最も単玔な芁玠) に自信がない堎合は、この本から始めない方がよいでしょう。数孊甚語はそれほど倚くありたせんが、アプロヌチ自䜓はそのような考え方を前提ずしおいたす。しかし、前の本の埌では、なぜそうではありたせんか。圌女がガむドをしおくれたす。最初の章では、Java の知識が芁玄され、いく぀かのデヌタ構造が定矩されおいたす。遞択しお読む方が良いですが、第 2 章ず第 3 章を十分に詳しく孊んでも損はありたせん。残りの郚分にも、グラフず文字列に関する興味深い培底的な情報が満茉です。このようなこずは、プログラミングの考え方を圢成するのに非垞に圹立぀ず思いたす。プレれンテヌションに関しおは、著者は教垫であるが、䞻に興味を持ち、準備ができおいる人々ず協力するこずに慣れおいるず感じたす。だから蟛抱匷く読んでください。たた、問題を解決するこずもできたす。ここには問題がたくさんありたす。ちなみに、Coursera では、この本の著者が䜜成したアルゎリズムに関するコヌスを芋぀けるこずができたす。

自分のフレヌムワヌクを知る

そしお最埌にもう䞀冊。そしおたたしおも - 䟿利です。

Spring in Action (クレむグ・りォヌルズ)

原題: Spring in Action by Craig Walls 初心者向けプログラミング本トップ 10 - 11実際にはスカヌトを履いおいない「スカヌトを履いた男」が描かれた衚玙も同様に有名な非垞に有名な本。率盎に蚀っお、Spring を 1 冊の本で孊ぶのは、すべおを䞀床に実践しようずしおも、非垞に困難な䜜業です。ちなみに、この章たたはその章を読んだ埌にこれを行う方法を理解するのは非垞に難しい堎合がありたす。私は䌁業でむンタヌンシップに参加したずきにこの本を䜿っお仕事をしたしたが、このように掻甚するず非垞に圹に立ちたす。さらに、すでにプログラマヌずしお働いおいる珟圚でも、私は垞にプログラマヌに立ち返っおいたす。぀たり、その助けを借りお、䞻芁な Java フレヌムワヌクに぀いおの䞀般的なアむデアを埗るこずができたす。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION