ホームページ  >  記事  >  Java  >  上級専門家による Java 初心者向けの学習ルートの提案

上級専門家による Java 初心者向けの学習ルートの提案

一个新手
一个新手オリジナル
2017-10-10 09:34:231578ブラウズ

Java 学習のこの部分が今日の焦点です。グループ内の多くの友人から寄せられた質問、つまり、Java をどのように学習するかという質問に答えるために使用されます。今日は実践的な話をするつもりなので、学習法やテクニックの話ではなく、各段階で学ぶべき内容や書籍について直接話しましょう。このパートの内容は、Java にキャリアを切り替えたい一部の学生にも当てはまります。

皆さんに読んでいただく前に、2点申し上げておきたいと思います。 1. 私は Java バックエンド開発者であるため、推奨される学習コンテンツは Java Web および Java バックエンド開発ルートです。Java Web および Java バックエンド開発者ではない学生は、学習アイデアを適切に参照しないでください。コピー。 2. 以下の [パート 1] の推奨コンテンツは、できるだけ早く働ける Java 開発者になることを目的としており、失業中で Java への移行を準備している学生に適しています。

学校の学生の場合は、次の学習を検討する前に、まず基礎 (コンピューター システム、アルゴリズム、コンパイル原理など) を学習する必要があります。

パート 1: 現役の学生や Java への移行を準備している学生を含む、まだ Java の作業を行ったことのない学生向け。

1. Java の基礎 まず、学習するための基本的な Java チュートリアルを見つけます。ここでは、Java の学習とコミュニケーションのための QQ グループにアクセスして、対応するビデオ チュートリアルを見つけることができます。 Java の基本を学ぶときは、当たり前のことを書いて実行してみると、そうではないことに気づくことがよくあります。やってみなよ。上記の内容を学習すると、Java の基本を理解できるようになります。Java 言語でいくつかの簡単なプログラムを作成し、メモ帳などの最も簡単なエディタを使用できます。現時点では、急いで次の部分に進まないでください。いくつかのプログラムを作成して、これらの基本的な内容にできるだけ慣れてください。

2. Web開発で数日間プログラムを書くと、単純な計算機の実装やファイルの読み込みなど、自分が書いた内容が役に立たないように思えて混乱することがよくあります。この時期は自分が面白いと思うものを書くことを学ぶ必要があるので、より多くの知識を学ぶ必要があります。これらのコンテンツは主に Web 開発に関連しており、HTML/CSS/JS (フロントエンド ページ)、Servlet/JSP (J2EE)、Mysql (データベース) 関連の知識が含まれます。学習順序は前から後ろに進む必要があるため、最初に学習するのは HTML/CSS/JS (フロントエンド ページ) です。この部分は上記の runoob Web サイトで見つけることができます。

自分でいくつかのページを書いてみてもいいですし、もちろん、一番美しくなるように最善を尽くしてもいいでしょう。コンテンツのこの部分は理論的にはバックエンド Java にとって特に重要ではありませんが、少なくとも自分でいくつかの簡単なページを作成できるレベルに達する必要があります。次に学習する必要があるのは、サーブレット/JSP (J2EE) 部分です。この部分は Java バックエンド開発の一部であり、非常に熟練する必要があります。したがって、この部分は 3 つの部分の中で最もエネルギーを必要とします。現時点では、メモ帳の代わりに開発ツールを使用することを学ぶ必要があります。Eclipse を選択できます。 Eclipse をダウンロードしてインストールしたら、ビデオのチュートリアルを段階的に実行し、さらに実行してください。サーブレット/JSP ビデオの選択に関しては、Ma Soldier のビデオが業界で認められているため、皆様にお勧めします。

もちろん、私自身が彼のビデオを見たわけではないので、より良い選択があるのなら、あなたは自分の意見を貫き、私に干渉させないでください。当初は指導動画を公開する予定でしたが、時間の関係で断念しました。ただし、ビデオの視聴中に問題が発生した場合は、私のコミュニケーション グループに来て質問するか、Douyu にアクセスして私のライブ ブロードキャストを見て質問してください。ライブ ブロードキャストのアドレスとグループ番号は、の左側にあります。私の個人的なブログ。最後のステップは、データベースの使用方法を学ぶことです。MySQL が適切な選択肢であり、Java 分野の主流のリレーショナル データベースは MySQL です。この部分は通常、Servlet/Jsp を学習する際に明らかになります。JDBC 部分はデータベース関連の部分です。 JDBC を使用してデータベースを操作する方法を学ぶだけでなく、navicat や sqlyog などのデータベース クライアント ツールの使用方法も学ぶ必要があります。2 つのうちの 1 つを選択してください。

3. 開発フレームワーク 上記の内容を学習した後でも、現時点では作業に参加するのに十分ではなく、まだ学習を続ける必要があります。開発効率を向上させるために、企業はいくつかの Java Web フレームワークを使用するため、開発フレームワークもいくつか学ぶ必要があります。現在、より主流なのは SSM フレームワーク、つまり spring、springmvc、mybatis です。これら 3 つのフレームワークを構築し、それらを使用して Web プロジェクトを簡単に追加、削除、変更、クエリする方法を学ぶ必要があります。これらの構成が何を意味するのか、なぜそれを行う必要があるのか​​を理解する必要はありません。後で学習できます。

ただし、Web フレームワークを構築するには、これら 3 つをすぐに使用できる必要があります。最初の構築プロセスを記録できます。必ず使用します。もう 1 つ言及しておきたいのは、SSM を構築する過程で、maven と呼ばれるツールに頻繁に触れる可能性があるということです。このツールは今後の作業でほぼ使用することになるツールでもあるため、SSM を構築しながら Maven について学ぶこともできます。現段階では、インターネット上で Maven の基本的な使い方を学ぶだけで済みます。仕事の経験が増えるにつれて、徐々にハイエンドの使い方に触れるようになります。

4. 仕事を見つける 開発フレームワークの学習を終えたら、学校に通っている人はインターンシップを、卒業した人はフルタイムの仕事を見つける必要があります。同時に、就職活動中に勉強をやめるべきではありません。正確に言うと、将来勉強をやめるべきではありません。上記の内容を急いで学習しただけですが、インターネットは最も重要な教師です。

パート2: 働いて1年未満の学生向け。おめでとうございます。この時点で、あなたはすでに Java ジョブを持っています。 この段階は成長が非常に早く、残業も多くなるかもしれません。しかし、残業だからといってリラックスできるわけではありません。この業界に入った瞬間から、常に学び続けなければなりません。今年中には少なくとも「Java Programming Thoughts」という本を読む必要があります。この本の内容は、Java をより深く理解するのに役立つものであり、Java の基礎のアップグレード版です。この本はとても分厚いので、読むのに3か月かかりました。普通のスピードなら半年くらいで終わるはずです。 1 年以内にこの本を読み終わる限り、私はここで多くを求めるつもりはありません。もちろん、読むとは一度読むことではなく、完全に吸収することを意味するので、内容によっては複数回読むこともあります。全体として、この段階での中心的な学習アイデアは、職場で実践し、Java の基本をより深く理解することです。

パート3:社会人1~2年目の学生向け。この期間の学生はすでに Java についての理解を深めています。 しかし、オブジェクト指向の経験はまだ十分に深くないかもしれません。プログラミングするとき、それはまだ機能を完成させるレベルに留まり、設計の問題を考慮することはほとんどありません。このとき、デザインパターンが登場しました。 「Dahua Design Patterns」という本を読んで、デザインパターンのブログの完全版を書きました。ですので、みなさんも長くても入社1年目くらいでブログを始めていただき、デザインパターンはブログの始まりです。

ここで述べたことは基本的に最低限の条件であることを覚えておいてください。そうでない場合は、5年後に自分より給料が高い人を羨んだり、入社した人を羨んだりしてはなりません。とある会社。今年はデザインパターンをよく知っておく必要があり、「Dahua デザインパターン」があなたの出発点になります。さらに、今年のタスクはデザイン パターンだけではありません。コード記述の最適化に関する本を読むことも必要です。たとえば、「既存のコードの設計を改善するためのリファクタリング」や「効果的な Java」などです。全体として、この段階での中心的なタスクは、コーディング能力を向上させ、エレガントなコードを書けるようになることです。

パート 4: 2 ~ 3 年働いている学生の場合、この時点ですでに非常に優れていると感じている学生もいます。そのため、ゆっくりとリラックスし始めます。 覚えておいてください、あなたはまだとても若いです。この段階で必ず読まなければならない本があります。それは、「Java 仮想マシンの徹底理解」というものです。この本は間違いなく Java 開発者にとって最も重要な本です。私の目には、この本は『Java プログラミング思想』よりも重要です。この本の内容は、Java 仮想マシンを包括的に理解するのに役立ちます。この段階では、Java が JVM 上で実行されることをすでに知っている必要があります。したがって、JVM について知らない理由はありません。

さらに、過去 2 年間の仕事の中で、多かれ少なかれ同時実行性にさらされてきたはずです。このとき、並行処理関連の知識をより深く理解する必要があります。この部分については、「実践 Java 並行プログラミング」という書籍をお勧めします。この本を読めば、並行性の部分は基本的に理解できます。同時に、この段階でやるべきことはそれだけではありません。この時点では、使用しているフレームワークと Java クラス ライブラリについての理解を深める必要があります。

そのため、使用しているフレームワークのソースコードも含め、JDKの一部のクラスのソースコードを確認する必要があります。これらのソース コードを理解するための前提条件は、デザイン パターンをよく理解している必要があることです。そうしないと、ソースコードを見るときに、「なぜこのコードはこのように書かれているのか?」という疑問が常に発生します。冗長に見えるのに、なぜこのインターフェイスを定義するのでしょうか?このことから、これらの学習プロセスは連動していることがわかります。どこかの段階で失敗すると、本当についていけなくなるか、段階的に速度が落ちてしまいます。そして、私には非常に責任がありますが、この段階にいたとき、ここに挙げたものよりもはるかに多くのことを学びました。

ですから、私が述べたことはほんの最低限のことであると思わないでください。私だけでなく、多くの人がこの期間中にこの記事の範囲をはるかに超えて学びました。このペースについていけない場合、数年後、プログラマーの市場が良くなければ、おそらく他の人より給料が低く、会社も他の人より良くないだけでなく、あなた自身も落ち込むことになるでしょう。まったく仕事が見つからなくなる。全体として、この段階で行う必要があるのは、基礎となる Java および Java クラス ライブラリを深く理解することです (たとえば、同時実行に関する書籍は、Java 同時実行パッケージ java.concurrent の内容です)。つまり、JVM と JDK の関連コンテンツです。また、使用しているフレームワークをより深く理解する必要があります。ソースコードを読むか、公式ドキュメントを読むことをお勧めします。また、2歳の段階でも取り入れるべき学習方法がもう一つあり、それは「車輪づくり」です。 「車輪の再発明は不要」という議論に騙されないでください。これは企業が時間とコストを節約するためにでっち上げたものです。あなたが作成する車輪はすでに存在している可能性があり、一般に、あなたが作成する車輪は既存の車輪ほど優れていないため、車輪の再発明は他の人にとって価値がない可能性があります。

しかし、他人にとって価値がないからといって、自分自身にとって価値がないわけではありません。ホイールを作る工程は、ゼロから何かを作り上げる工程です。このプロセスでは、コーディング能力をテストするだけでなく、ホイールをスケーラブルで堅牢にする必要もあります。そして、ホイールを作る過程では様々な問題に遭遇しますが、それが学びの機会となることも多いです。ホイールを組み立ててみると、実際に多くのことを達成したことに必ず気づくでしょう。したがって、この段階では、上記の JVM、JDK、およびフレームワークのソース コードを理解することに加えて、他の人の優れたソース コードを基に、想像できるホイールを構築することも求められます。

パート5: 3〜4年働いている学生 この段階の学生はすでに上達することが難しく、この段階での学習はより多様であることがよくあります。 過去 3 年間に、ビッグ データ、分散キャッシュ、分散メッセージング サービス、分散コンピューティング、ソフト ロード バランシングなど、多かれ少なかれ他のテクノロジーにさらされてきたはずだからです。これらのテクノロジーのいずれかに習熟していれば、今後の面接で大きなアドバンテージとなるため、特定のテクノロジーに興味がある場合は、この時点でそれについて深く学ぶことができます。テクノロジーは仕事で使用しているものである必要はありませんが、関連性がなければなりません。また、新しいテクノロジーを研究するときは、無計画に行動しないように注意してください。今日、一部の学生はビッグデータに取り組み、Hadoop や hbase などに取り組みました。しばらくして、退屈に感じて、redis などの分散キャッシュについて勉強し始めました。それからしばらくして、MapReduce や Storm などの分散コンピューティングを再び勉強し始めました。その結果、最終的にはすべてを知った気になり、ビッグデータ、分散キャッシュ、分散コンピューティングを理解していると履歴書に大胆に書きます。実際には、どれも表面的なものにすぎません。いざとなったら、面接官は何気ない質問でそれを理解してくれるでしょう。

プログラマーとして、日常的に多くのテクノロジーにさらされる可能性があることを必ず覚えておいてください。しかし、テクノロジーを自分の利点にしたいのであれば、このテクノロジーに対するあなたの理解は、ほとんどの才能のある人よりも優れている必要があります。 。 わかりました。したがって、この段階では、過去 3 年間の内容を単純に学習することはできませんが、十分に深く学習していない場合は継続する必要がありますが、この時点で、自分の長所を構築することをさらに考慮する必要があります。違いを求めることもできます。違いを理解するのは難しいことではなく、自分をユニークにすることだと私は信じています。最初の 3 年間の学習は、基本的に資格のある Java 開発者になるには十分ですが、優れた Java 開発者になるにはまだ程遠いです。

いわゆる優秀とは、他の人ができないことができることを意味します。最初の 3 年間で学んだことは、数年間 Java 開発を行っている多くの人が習得できます。したがって、自分自身を差別化するには、別の方法を見つけて深く勉強する方向を見つけ、将来、分散コンピューティングの分野の専門家、専門家など、この分野の専門家になれることを期待する必要があります。ビッグデータ分野、並行性分野などの専門家。また、差別化を確立するだけでなく、これまで基礎について触れていなかった部分を補うことも必要です。その理由は、基礎を早く学びすぎると混乱しやすいだけでなく、混乱したときに心理的な影を引き起こしやすく、将来これらの基礎を学びたくないからです。しかし、たとえば、分散コンピューティングを学びたい場合、アルゴリズムを理解していない場合は、それを試してみてはいかがでしょうか。たとえば、分散キャッシュを実行したいが、コンピューター システムのメモリがわからない場合、どうすればキャッシュを実行できるでしょうか?

あなたの基礎がすでに非常に強固である場合は、おめでとうございます。これまでの仕事でこれらの基礎の助けを十分に理解していると思います。しかし、専攻を卒業した人であっても、アルゴリズムやコンピュータシステムの原理、コンパイルの原理など、元々の基礎知識がどれほど強いのかを敢えて語らない人が多いと思います。しかし、誰にとっても時間は限られており、これらの基本的な本を 1 冊読むには 1 年半かかり、すべてを理解するのは非常に難しいため、やはり選択をしなければなりません。より多くのアートを行うことは負担ではありませんが、問題は、より多くのアートを行うには代償が伴い、それには時間とエネルギーが必要であるということです。個人的には、同じ代償で最大の利益を得ることを好みます。

まず、私が強くお勧めする基本書籍は、『コンピュータシステムの徹底理解』『TCP/IP詳解 上・下・下巻』『データの構造とアルゴリズム』の3冊です。その中に TCP/IP に関する書籍が 3 冊ありますが、ここではこの 3 冊を 1 つの大きな書籍として扱います。これら 3 冊の本は、それぞれ 3 つのタイプの人に適しています。「コンピュータ システムの詳細」は、Java Web 開発と APP バックエンド開発に従事している人に適しています。 「Tcp/IP 詳解 第 1 巻、第 2 巻、および第 3 巻」は、たとえば netty を使用して開発する場合、TCP/IP についての深い理解が必要になる人に適しています。 『データ構造とアルゴリズム』という本は、先ほど述べた分散コンピューティングなどのコンピューティングの研究を行う人に適しています。さらに、ここで述べた適性は、他の 2 冊があなたにとって役に立たないという意味ではないことを強調したいと思います。たとえば、Java Web および APP のバックエンド開発を行う場合は、『Tcp/IP 詳解 第 1、2、3 巻』という書籍も役立ちます。これはあくまで優先順位ですので、時間があれば3冊を集中的に読んでいただければと思います。

でも、時間が限られているなら、自分にとって最も役に立つ本を選んで、最初に読んでください。理論的に言えば、今年この 3 冊のうち 1 冊を集中的に読むことができれば、非常に強力になります。基礎とこれまでの実務経験を活かして、自分の分野を開拓することができます。この年、あなたは自分の分野を計画し、自分の利点を確立し、違いを生み出す必要があります。自分の分野について十分に理解していないと、長く仕事をすればするほど、より多くのテクノロジーにさらされることになり、簡単にテクノロジーの海に溺れてしまうようです。より多くのテクノロジーにさらされると、より多くのテクノロジーを使用するようになりますが、メリットはありません。 「私、自分の専門分野が何なのか分からないのですが、どうしたらいいですか?」と尋ねる学生もいるかもしれませんが、私は「くそー、私に聞いているの?私がやればいいのではないか」と言いたいだけです。

パート 6: 4 ~ 5 年働いた後、あなたは現時点で、勉強している分野についてすでに一定の洞察を持っていると思います。ボトルネックにぶつかった。 現時点では、自分の影響力を向上させるために急いではいけません。より多くの人に影響を与えるために、いくつかの有名な企業に行ってみましょう。もちろん、Github にアクセスして独自のオープンソース プロジェクトを作成し、独自の製品を構築することもできます。

今回のオープンソースプロジェクトは、これまでのホイール作りとは異なり、他の人にとって真に価値のあるホイールを作るために本当に努力しなければなりません。技術学習のこの段階ではボトルネックに遭遇しやすく、学術研究を専門にしている場合を除き、ある程度のレベルに達した後はさらに深めても効果がほとんどないことがよくあります。残念ながら、ほとんどのプログラマーはこれを行うことができません。現時点で影響力を向上させることは、技術的なボトルネックに遭遇しやすいためだけでなく、影響力によってより多くの機会が生み出される可能性があるためでもあります。プログラマーは、ある意味、有名人に似ています。優れたテレビシリーズや映画が、スターのグループを生み出すこともあります。たとえば、中国では淘宝、Alipay、QQ、Baidu、WeChat などの人気プロジェクトがいくつかあります。これらのプロジェクトごとにプログラマーのグループが作成されました。あえて言えば、あなたがここのプロジェクトの中心的な開発者である場合、そのようなタイトルを持っているだけですでに大きな利点になります。さらに重要なのは、タイトルは結局のところ単なるタイトルであり、この種のプロジェクトを行う場合、それはあなたの経験にとって非常に強力なものでなければなりません。

そして、そのようなプロジェクトに参加したいのであれば、運に頼るだけでなく、影響力も非常に重要な手段です。例えば、分散コンピューティングの分野で一定の影響力を持っている場合、分散コンピューティングに関連した良いプロジェクトがあれば、相手も誘ってくれる可能性が高いです。たとえ誰かに誘われなかったとしても、あなたが率先して面接に行ったとしても、相手がこの分野におけるあなたの影響力を知っていれば、それは間違いなく大きな役割を果たし、その役割はあなたの現在の技術力を超える可能性さえあります。したがって、この段階でのあなたの最大の課題は、自分の影響力を高め、今後 10 年間の社会人キャリアにおけるその日に備えることです。自分の影響力と過去に蓄積したスキルを頼りに素晴らしいプロジェクトに参加できれば、今後 5 年間は成功するでしょう。もちろん、私は今から準備万端で、プログラマになってまだ4年半も経っていないので、4~5年の部分に関しては、私の意見が正しいとは限らないかもしれませんし、正しいとしても違うかもしれません。誰にでも適しています。

ということで、皆さんもご自身の判断で今年をどう過ごすか決めていただければと思います。まとめ この記事は基本的にここで終わりますが、実際には主に 2 つの部分について説明します。1 つはソーシャル採用面接の準備、もう 1 つは Java キャリアの学習です。この2つの部分については既に私なりの意見を述べてきましたが、繰り返しになりますが、誰もが知識を吸収する際には、本質を抽出し、カスを取り除く能力が必要です。私が言ったことの中には正しいものもあれば、間違っているものもあるかもしれません。自分に適しているものもあれば、適していないものもあります。それは自分で判断する必要があります。実際、それは人生でも仕事でも同じで、あなたの周りには好きな人もいれば嫌いな人もいます。でも実は、好きな人にも欠点があるし、嫌いな人にも長所があるのです。嫌いな人の良いところを学ぶ必要があり、決して棒で殴り殺してはいけません。そうすることで学び、成長するための多くの機会が失われるだけです。さて、ここまで言いましたが、この記事がプログラマー、またはプログラマーになろうとしているプログラマーにとって役立つことを願っています。

以上が上級専門家による Java 初心者向けの学習ルートの提案の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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