ホームページ  >  記事  >  Java  >  トップの Java プログラマーになる方法

トップの Java プログラマーになる方法

巴扎黑
巴扎黑オリジナル
2017-06-26 10:22:391341ブラウズ

学ぶための最良の方法は本を読むことです

「学ぶための最良の方法は本を読むことです」、これは独学で勉強して経験を積んで初めて感じた言葉です。個人的に、本を読むことには次の 2 つの利点があると考えています:

1. 出版できる本は、何度も考え、推敲し、レビューする必要があるため、専門的な観点から見ると、良い本の価値は他の本をはるかに上回ります。資料

2. 自分で本のコードを入力するときに便利です

「本を読んだ後に自分自身を再度改善するための最良の方法は、関連する良いブログ投稿を読むことです。これは個人的には 2 番目のステップだと思います。」なぜなら、本は何百ページにも及ぶことが多いからです。本を読んで研究した後に、それを要約して推敲したものです。もちろん、これは私自身のことに関するものではありません。学習方法については詳しく説明しません。

多くのプログラマーは、本を読みたいという衝動に駆られることがよくありますが、どの本を読めばよいのかわかりません。以下に Java プログラマーにおすすめの本をいくつか紹介します (各本の著者は太字で強調表示されています)。私が普段読んでいる本についての短い要約と考察とも言えます。

デザインパターンを解説した本はたくさん市販されていますが、本を読むのが一番だと言いましたが、デザインパターンに興味のある友人にはこのブログをお勧めします。このブロガーのデザイン パターンの説明は非常に優れており、内容の 90% は問題なく、学ぶ価値があると思います。 デザイン パターンの定義は次のとおりです。

2. このデザインパターンの構造を画像とテキストで説明します

3. 補足的な内容を説明します

5.このデザインパターンについて

For a デザインパターンについて私たちが注目して学んでいる知識は上記だけではないでしょうか?

しかし、同じデザインパターンを書くにも多くの方法があることをネチズンに思い出してもらいたいのですが、特定の方法で書くことだけがこのデザインパターンであるという意味ではありません。アダプター パターンを例に挙げると、アダプター パターンに注意を払う必要があるのは、アダプター パターンの記述方法ではなく、アダプター パターンが何であるかに注意する必要があります。アダプター パターンはアダプター パターンではないことを覚えておいてください。デザイン パターンを学ぶと、コードで使用されるデザイン パターンについての理解が確実に深まります。

「Java 仮想マシンの深い理解: JVM の高度な機能とベスト プラクティス」

if...else... しか書けない Java プログラマーであることに満足していないのであれば、さらに一歩進んで、いくつかの例を示します。

1. Java コードの基本的な動作メカニズムを理解する

3. システム全体のパフォーマンスを調整する

4.奇妙な問題 オンラインとオフラインの問題

5. より高いレベルで、自分のプロジェクトに適した仮想マシンをカスタマイズします

次に、Java 仮想マシンは学習する必要があるテクノロジーです。 『Java 仮想マシンの詳細: JVM の高度な機能とベスト プラクティス』の著者は Zhou Zhiming です。この本は、私が過去 6 か月間で執筆した Java 仮想マシンに関する最高の本と言えます。少なくとも5回はこの本を読んでください。中国の仮想マシンに関する本はこの本以外にも実は何冊か購入しているのですが、ざっと見た感じでは『Java 仮想マシンの徹底理解』にも多くの内容が載っています。 JVM の高度な機能とベスト プラクティス」。

『Java 仮想マシンの徹底理解: JVM の高度な機能とベスト プラクティス』という書籍は電子版で入手可能であり、オンラインで検索してダウンロードできることにも言及する価値があります。ただし、興味のある友人には、この本を購入して読むことをお勧めします。ダウンロードした電子版は、『Java 仮想マシンの詳細: JVM の高度な機能とベスト プラクティス』の最新改訂版と比べると古いバージョンです。 、著者による新規追加が多数あり、知識点はありません。

「HotSpot in Action」

すべての Java 仮想マシンは Java 仮想マシンの仕様に従っています。「Java 仮想マシンについての深い理解: JVM の高度な機能と書籍『ベストプラクティス』で解説する仮想マシンは特定の仮想マシンを対象としたものではなく、Java仮想マシンの仕様という観点からJava仮想マシンを解説しています。

私たちが通常使用し、商用でも使用している Java 仮想マシンのほとんどは、Sun の HotSpot です。cmd を使用してコマンド ラインを入力し、「java -version」コマンドを使用すると確認できます。 Java 仮想マシン仕様に基づいて仮想マシンの一部の詳細がどのように実装されるかをより深く理解したい場合は、Chen Tao 著の書籍『HotSpot Practice』を読むことができます。ただし、HotSpot のソース コードは C/C++ で記述されているため、読者は C/C++ の十分な基礎を持っている必要があります。これら 2 つの言語にあまり慣れていない場合、この本を読んでもあまり役に立たないかもしれません。あなた。

最後に、興味がある場合は、最初に OpenJDK をオンラインでダウンロードすると、HotSpot のソース コードが含まれます。

「Java同時プログラミングの実践」

この本はJavaプログラマー必読の本トップ10によく入っていますが、個人的にはあまりお勧めしません。

「Java Concurrent Programming in Practice」の著者は Brian Goetz です。私はこの本を 2 回ほど読みました。

1. より多くのテキストとより少ないコード

2. Java は北米諸国 (カナダ、米国) で開発および保守されているため、外国人は Java の理論的なあらゆる側面を非常に明確かつ徹底的に理解しています。知識システム。この本を開いて、マルチスレッドとは何か、デッドロックとは何か、競合とは何か、スレッドの安全性とは何かなどを読んでください。知識ポイントのあらゆる側面が大量のテキストで説明されているため、人々は非常に退屈で理解しにくいと感じます。読者は大幅な進歩を遂げました。この本は2回読みましたが、1回で10行の意味があり、気になったところを中心に紹介していきます。

いずれにせよ、Java プログラマーの必読書トップ 10 によく入る本なので、皆さんにお勧めしなければなりません。

「Java マルチスレッド プログラミング コア テクノロジー」

「Java マルチスレッド プログラミング コア テクノロジー」著者 Gao Honyan 氏。マルチスレッドを学びたい友人には、この本を強くお勧めします。私の個人ブログの 20 以上のマルチスレッド ブログ投稿は、この本に基づいて洗練され、要約されています。

この本は、『実践 Java 並行プログラミング』とは対照的に、大規模なコード + 小規模な正確な説明が特徴です。これは、中国人によって書かれた本の実践的なスタイルに関連しているかもしれません。本書はスレッドセーフ、同期、リエントラント、タイマーなどを詳細なコードで解説しており、大きな知識の下に複数の小知識が詳しく解説されており、非常に実践的です。

興味のある方は、本書のコードに従って、入力、実行、思考の 3 ステップを踏んでいただければ、マルチスレッドの使用と理解は確実に大きく前進すると思います。

ただし、この本の欠点は、CountDownLatch、Semphore、CyclicBarrier、Future、Callable などの Java 同時実行パッケージの一部のクラスについては言及していないことです。主要な CAS と AQS については触れられておらず、実装原則についても触れられていません。主要なクラスについては言及されていません。もちろん、これは非常に奥深いものであり、この本を読んだ後もこの知識の学習と研究を続けることができれば、非常に強力なマルチスレッドの専門家に徐々に成長するでしょう。

『Effective Java 中国語版』

これは私が買わなかった唯一の本です。私がこの本を初めて知ったのは、私のブログ投稿「Java コードの最適化 (長期更新)」でした。その時、友人がこの本についてコメントで言及していましたが、購入する時間がありませんでした。この 2 か月間、本屋に買い物に行きました。残念ですが、今後必ず時間を見つけてこの本を購入します。

『Effective Java 中国語版』の著者は Joshua Bloch さんです。この人は Google のチーフアーキテクトで、超技術専門家レベルです(笑)。私はこの本を読んでいないのでコメントできませんが、この本の人気と著者の経歴(もう一つ言うと、この本はJavaの父であるジェームズ・ゴズリング博士の推薦本でもあります)から判断すると、これは読む価値のある良い本に違いないと思います。

すべての Java プログラマーが追求すべきは、良いコードを書くことで、悪いコードを書くよりもパフォーマンスが向上するということではありません。コードは柔軟性があり、多くの潜在的な未知の問題を回避でき、コードがオンラインになった後の問題を回避し、メンテナンスに時間を費やすことができます。これは、時間コスト、人件費、リスク コストの点で非常に高くなります。

「Java Web テクノロジー内部関係者の詳細な分析」

「Java Web テクノロジー内部関係者の詳細な分析」、著者 Xu Lingbo、タオバオ エンジニア。

この本を一言で言えば、「完了」です。 HTTP、DNS、CDN、static、Jetty、Tomcat、Servlet、Spring、MyBatisなど本当に網羅的で、幅広い知識を網羅していますが、何かに特化した本という感じではありません。解説が非常に詳しく、読者がJava Webで使われている技術の裏話などを短い文章で合理的に理解できるように工夫されているように感じます。これらのナレッジポイントの裏話。

とはいえ、一つ一つの知識のスペースは少ないものの、要点はほぼ網羅されており、本当に読み応えのある本です。これらの技術の詳細を知りたい場合は、関連する書籍を購入するか、インターネットで自分で情報を確認する必要があります。新しいアイデアを引き寄せようとしている、またはマスターに導かれていると言えます。 、そして自分で練習します。

「大規模ウェブサイトのテクニカルアーキテクチャの基本原則と事例分析」

この本を一言で言えば素晴らしい、この本を二語で言えば素晴らしい、三語で言えば素晴らしい。はは、分かった、このまま話し続けたら、他の人は私を荒らしだと思うかもしれない。

『Large Website Technical Architecture Core Principles and Case Analysis』の著者は、元 Alibaba の技術専門家である Li Zhihui です。

ほとんどの Java アプリケーションは Web 上で使用されています。現在、大規模な Web アプリケーションは分散システムでなければなりません。では、分散システムではどのようなテクノロジが使用されているのでしょうか。小さな Web サイトから大規模な Web サイトはどのように成長するのでしょうか?ウェブサイトを安全に保つにはどうすればよいでしょうか?分散システムではキャッシュが使用されます。どのようなキャッシュがありますか?キャッシュを使用する際の注意点は何ですか?

この本には、あなただけが思いつかないような、分散配布に関するすべての知識が反映されており、基本的には 1 回か 2 回読んでメモを取るだけで、それが何なのかを知ることができます。それは同じことです。何度か読むと、流通に対する理解が確実に深まります。そして、分散された知識が含まれているだけでなく、優れた建築家になる方法についても非常に現実的な方法で書かれています。実際、これは建築家になりたい読者だけでなく、読者にもいくつかのヒントを与えるものだと思います。優れたアーキテクトになる方法、自分の意見をよりよく表現する方法、他人に自分の声にもっと注目してもらう方法、他人の長所を見つけてそこから多くのことを得る方法についての提案。

「大規模 Web サイト システムと Java ミドルウェアの実践」

「大規模 Web サイト システムと Java ミドルウェアの実践」の著者である Zeng Xianjie は、淘宝網のテクニカル ディレクターであり、少なくとも P8 のはずです。アリババ。

本書の内容の一部は、分散システムの進化、CDN、CAP理論、BASE理論など、李志暉氏の前著『大規模Webサイト技術アーキテクチャの核心原則と事例分析』と重複しています。これらは分散システムや大規模な Web サイトで重点を置かれている内容なので、改めて学習するとよいでしょう。

この本で強調すべき重要な点は、ミドルウェアという言葉です。分散システムでは、その最も重要な役割は、モジュール間の強い依存関係を軽減することです。モジュールが独自の機能を開発できることは、ソフトウェアエンジニアリング開発の目標であり原動力とも言えます。

そのため、本書の内容の一部はミドルウェアに基づいており、ミドルウェアやJMSに関するさまざまな知識を詳しく説明しています。分散システムに精通していて、ミドルウェアについて調べたいと考えている読者に適しています。

「Paxos から ZooKeeper への分散一貫性の原則と実践」

「Paxos から ZooKeeper への分散一貫性の原則と実践」、著者は Alibaba エンジニアの Ni Chao です。

この本は、上記の「大規模WebサイトシステムとJavaミドルウェア実践編」と同じく、分散コンポーネントの部類に入る、少し踏み込んだ内容です。個人的な興味。 。もちろん、優れた大規模 Web サイトのアーキテクトや企業のテクニカル ディレクターなどを目指すのであれば、この知識を習得する必要があります。

この本は、分散システムの基本理論から始まり、Paxos アルゴリズムについて説明し、最後に Zookeeper を段階的に紹介します。もちろん、この本の第 2 章にある Paxos アルゴリズムをまだ理解していないため、現時点でこれ以上の意見を表明するのは都合がよくありません (Paxos アルゴリズムは確かに理解するのがやや難しく、簡単ではありません)。 、次の章はまだ利用できません。

ネチズンが働いている会社が Zookeeper を使用していて、Zookeeper に興味があり、その原理を学びたい場合は、この本が最適な選択となるでしょう。

「MySQL 5.6 をゼロから学ぶ」

「MySQL 5.6 をゼロから学ぶ」、Liu Zengjie と Li Kun 著。

Java プログラマーとして、データベースは DBA の問題であると考えてはいけないと思います。Java プログラマーにとって、データベースのパフォーマンス最適化に関する豊富な経験は、トップ プログラマーにとって必須の知識です。 。

現在主流のデータベースには Oracle と MySQL が含まれています。もちろん、MySQL が誰にでも推奨される理由は 2 つあると思います。

1. MySQL は Oracle よりも軽量で、インストールとアンインストールがより便利です。実際、SQL はすべて同じです。データベースを学習したい場合は、MySQL を学習するだけで済みます。Oracle を使用している企業の場合は、Oracle との違いに注意して学習するだけで済みます。 MySQL

2 、2009 年の Alibaba の IOE への移行の進展に伴い、多くの国内インターネット企業は、使用するデータベースとして MySQL を選択するようになりました。MySQL は無料であるため、コストを節約でき、何か問題が発生した場合でも Oracle に依存する必要がありません。

MySQL を学ぶのにおすすめなのは、私自身が勉強して読んだ『MySQL 5.6 Learning from Scratch』です。この本の知識点は非常に詳細で包括的であり、読者が選ぶ基準です。大体この2点だけではないでしょうか?

「Spring ソース コードの詳細分析」

「Spring ソース コードの詳細分析」、著者 Hao Jia 氏。

Spring フレームワークは非常によくできており、その機能が非常に強力であるため、多くの開発者は Spring しか知らず、ファクトリー、シングルトン、エージェントが何であるかを知りません (他の人にインタビューした私の実際の経験)。この強力なフレームワークには、内部に非常に複雑な実装が必要です。これにより、プログラムが Spring を使用すると、エラーや例外が発生したり、プログラムの実行結果が期待したものと異なったりする可能性があります。場合によっては、オンラインで情報を確認するか、他の人に尋ねる以外に良い解決策がないと思われることがあります。

Spring のソースコードを学ぶことは、多くの利点があると個人的に思います:

1. フレームワークの内部実装を理解した後は、他の人に依存せずに問題を積極的に解決できます

2. Spring フレームワークでは、多くの設計パターンと優れたコード設計アイデアが使用されているため、コードの作成と設計パターンの理解が大幅に向上します。 Spring が内部的にどのように実装されているかを明確に学ぶことができるので、他のフレームワークのソース コードも難しくありません

つまり、コードを読む能力は、普通のプログラマと優れたプログラマの最大の違いの 1 つであると思います。それらは、前者は他人が書いたもののみを使用するのに対し、後者はそれらをうまく使用できるだけでなく、他人が書いたものの基礎となる実装がどのように実装されているかを明確に知っており、問題が発生したときに簡単に解決できるということです。

Spring のソース コードについては、個人的には「Spring ソース コードの徹底分析」という本をお勧めします。本当に徹底的に勉強して Spring のソース コードを明確に書き留めたい場合は、3 ~ 4 冊の本では不十分だと思います。著者は Spring のソースコードを 400 ページ近くにわたって一生懸命説明しましたが、それを完全に説明することは簡単ではありませんが、読者自身の研究と組み合わせることで、間違いなく理解できると思います。 Spring の実装についてのより深い理解。

追記

上記は、Java 開発者にお勧めする、読む価値のある良書です。ただし、これらの本には Java の基礎や Java チュートリアルは含まれていません。お勧めしないわけではありませんが、Java の基本的な技術を自分で学んだのは数年前なので、勉強していたときに読んだものはすべて忘れてしまっています。私は自分自身が読んだことのない本を無責任にみんなに勧めます。

Javaを学習中の学生の皆様、ご注意ください! ! !

学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、Java 学習交換グループ (299541275) に参加してください。一緒に Java を学びましょう!

以上がトップの Java プログラマーになる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。