振り返ってみると、私は Java 分野に 15 年近く携わっていますが、私の知識は平均的ですが、私の経験を共有することで、誰もが寄り道を避けることができるかもしれません。
[はじめに]
私は 2001 年以前は C/C++ キャンプに参加していましたが、その後、Java に切り替えて、ポインタを使用しない Java が非常にシンプルであることがわかりました。クラスライブラリは使いやすいです。
その後、『Javaで考える』と『Java Core Technology』を読みましたが、難しいとは感じませんでした。
もし私がこれまでに他の言語を学んだことがなかったら、あるいは僧侶になって途中でコンピュータ業界に転職したとしたら、私は最初に上記の 2 冊の本を読まず、代わりに「Head First Java」を選ぶでしょう。この本は初心者向けで、読みやすくて面白いです
が、ただ読むだけではかなり退屈です。 Chuanzhi Podcast の Java 基本ビデオは非常に優れていると思います (残念ながら、Chuanzhi を宣伝してください)。見つからない場合は、私のサイトにアクセスしてください。 QQ グループ (グループ番号: 299541275)
注: 動画の利点は、コードを入力するプロセスを見ることができることです。コードは生きています。これはクールです。 PPT に基づいたプログラミングについてのみ説明しているビデオがある場合は、思い切って捨ててください。
本には本の良さもあり、本に書けるものは著者が体系的に考え、整理した上でしか形にならないものなので、比較的体系的です。
本には他にも、気軽にパラパラめくって要点を見つけて何度も読み返せるなどのメリットがあります。
したがって、古典的な本を読むことと優れたビデオを組み合わせることが、始めるための最良の方法であるはずです。
Java を始めるには、トレーニング クラスには行かず、お金を無駄にせずに独学で十分です。
独習の過程で、経験豊富な専門家にガイドしてもらい、ルートマップを描いてもらい、登山の方向、罠がある場所、時間を無駄にすべきではない場所を指摘してもらえれば、独学で勉強することができます。模索したり、寄り道をしたりすることは少なくなります。
残念ながら、私はその頃には遭遇しませんでしたが、もし過去に戻れるなら、私を導いてくれる人を見つけようと思います。
【実践編】
ソフトウェア業界の特徴の一つは、10万行コーディングしないと、外に出て恥ずかしくなるくらい、やらないと覚えられないということです。こんにちは。
だから、練習、練習、練習!
在学中も、やるべきプロジェクトを見つけるために全力を尽くします(私の他の記事「これから履歴書を充実させましょう」を参照、「履歴書」に返信してご覧ください)。どうしても見つからない場合は、基礎から始めることもできます。お疲れ様でした
大学時代、ヤン・ウェイミンの「データ構造」を使用し、上級プログラマー試験を受けたときも、すべての演習を行いました。
その後、アルゴリズムに関するより優れた入門書である『Algorithm』について知りました。もし過去に戻ることができたら、この本で言及されているすべてのデータ構造とアルゴリズムを Java を使用して実装し、自分の実装も試してみたいと思います。授業後に宿題をすべてやり直す。
これは非常に重要なトレーニングです。なぜなら、実際にやってみると、アルゴリズムを設計していない限り、基本的なデータ構造につまずくことができないことがわかるからです。
【Java SE】
Javaコレクションフレームワークについては、使い方を学ぶだけでなく、List、ArrayList、Set、HashSet、Map、HashSetなどを実装してみます。書き方がわからない場合は、「JDK のソース コードを見てください。そこには最高の教師がいます」を参照してください。
実装後は、オブジェクト指向の設計、インターフェイス、抽象クラス、具象クラスの関係、責任の分離方法をよりよく理解できるようになり、デザインパターンのテンプレートメソッド、イテレータなどを学ぶことができます。
Iterator は非常に興味深いものであることは言及しておく価値があります。その年にコレクション フレームワークに Iterator を実装したときの興奮を今でもはっきりと覚えています:-)
Java コレクション フレームワークを実装するときに、ジェネリックスを使用できることも学びました。でもそれは学ばなかったら不可能だし、学ばなければ達成できないでしょう。
Java の世界では、すべてがオブジェクトです。カプセル化、継承、ポリモーフィズムについては誰もが知っていますが、これらを理解するだけでは単なる入門であり、実際のオブジェクト指向プログラムを作成することは不可能です。
「アジャイル ソフトウェア開発、原則、パターン、プラクティス」という古典的な本がありますが、これは給与支払いのケースを詳細に説明しており、これまでのオブジェクト指向設計の最良の例です
それを Java で実装します、本当にOOD を経験し、適切な責任を適切なクラスに割り当てる方法、実装指向のプログラミングではなくインターフェイス指向のプログラミングとは何か、継承の代わりに合成を使用する優先順位は何かを理解します。
Java スレッドについては、引き続き概念を理解することに焦点を当てます。これは、将来の作業では (システムレベルのプログラミングに従事しない限り)、独自のスレッド/スレッド プールを作成する機会は非常にまれであることがわかっているためです。これらはすべて、カプセル化されたクラス ライブラリとフレームワークによって提供されます。したがって、重要なのは理解することです
本を読みたい場合は、もちろん、多くの専門家によって書かれた『Java Concurrent Programming in Practice』です。
Java IO のアーキテクチャ設計は非常にエレガントでアカデミックな学校らしいものだと思いますが、ファイルを開いて読み取るには、デコレータ モードでファイルをラップする必要があります。疲れすぎます。
実際のプロジェクトではプロパティファイルとxmlファイルを読み込むことになります。 私は今でもコンセプトとデザインを理解することに重点を置いています。
しかし、簡単な XML パーサーを自分で作成するのは良いでしょう。
AWT と Swing については、詳しくは説明しませんが、クライアント側のプログラムはほとんどありません。 Swing/AWT を使用してデスクトップ プログラムを作成でき、それを実行するには顧客が JRE をインストールする必要があります。 私の知る限り、一部の銀行アプリケーションでは Swing と AWT が使用されています。 「アプレットはかつて流行ったが、今は誰も使っていない」という人もいるかもしれません。
だから、Swing と AWT に時間を無駄にすることはありません。
Java Reflection は、コレクション フレームワーク、スレッド、OO などほど魅力的ではないようですが、多くのフレームワーク (SSH) の基礎となっています (関連記事を参照するには、「Reflection」に返信してください)。後で Java EE を使用する必要があります。
Java を本当によく学びたい場合、Java 仮想マシンを理解していなければどうやって学ぶことができるでしょうか? 「Java 仮想マシンの詳細な理解」を必ず読んでください。これを読んだ後の目標は、簡単な Java デコンパイラを作成することです。
【資格のある Java プログラマーになる】
2008 年に IBM マネージャーが、デザイン パターンは必要なスキルであり、デザイン パターンを理解していない人を採用することはできない、と言ったのを覚えています。
つまり、デザイン パターンは、Java でよく使用されるものであり、ファクトリ メソッド、シングルトン、テンプレート メソッド、デコレータ、および責任の連鎖がすべて反映されています。
もちろん、「Design Patterns」の著者の一人である Eric Gamma が強く勧めている、リラックスできる「Head First Design」を最初に読みます。
数年後、私の IBM マネージャーは、今ではデフォルトの設計パターンを誰もが知っており、アジャイルの実践は必要なスキルであると再度言いました。
つまり、JUnit を知らなければならず、リファクタリングを知らなければならず、TDD や継続的インテグレーションなどの最も基本的なアジャイル プラクティスを知らなければ、他の人から見下されてしまいます。
Java プログラマーを目指している私は、コードを記述する際には、クラス名の最初の文字を大文字にする、登録を小文字にする、メソッド名を小文字にするなど、Java コーディング標準に従わなければなりません。
コードフリークとして、汚いコードは我慢できないので、手工芸品のように見えるまでコードを磨き続けます。
Java のベスト プラクティスを見逃すことはありませんか? JDK の作成者によってまとめられた Java プログラミングの最適な使用法が満載です。
しかし、翻訳は本当にあまり良くありません。多くの文は意味を理解するために慎重に検討する必要があるため、一連のビデオを録画して説明する予定ですので、お楽しみに。
【Java EE】
ここまでやってやっとJava EEにたどり着きました JavaはサーバーサイドのWebアプリケーションを書くためだけのものではないでしょうか?
私自身で Web プログラムを作成してみます。最も基本的なテクノロジである Servlet/jsp/jdbc を使用して、上記の古典的な給与支払いケースを Web バージョンに変換することを検討します。
次に、Struts を勉強し、簡単な MVC フレームワークを自分で作成し、それを独自の Web プログラムで使用します。これは、自分のドッグフードを食べると呼ばれます。
その後、Hibenete を勉強して、簡単な OR マッピング フレームワークを自分で書き、再び自分のドッグフードを食べます。
それから古典的な本「EJB を使用しない J2EE 開発」を読んでください。そうです、これは Spring の著者である Rod Johnson によって書かれたもので、重量級 EJB に対するみんなの理解を覆し、新しい時代を切り開きました。
この本の基礎があれば、簡単な依存性注入を自分で書くことは難しくありません。それを書いた後は、それを自分の Web プログラムで使用し、最後に自分のドッグフードを食べることができます。
実際にやってみると、これらはすべて Java Reflection に依存していることがわかります。
今後は、実際に取り組むプロジェクトを探すか、インターンシップを探す必要があります。それについてはまた別のトピックで説明します。
【読解法】
唐の詩300首を暗記すれば、作り方がわからなくても暗唱できるようになります
真似するのが一番の学習法です! 専門家がどのようにコードを書いているかを詳しく見てみることで、あなた自身の武術のスキルも向上します。
良いマスターがそばにいて、彼の後を追い、彼のプログラムを見ていたとしたら、どれくらい早く上達するでしょうか?
Java SE と Java EE を学習しながら、次のソース コードを読みます:
JDK の Java コレクション ソース コード: 祖先のものは完全に古典的です
JUnit ソース コード: Eric Gamma と Kent beck がパターンを渡して、システム (表示するには「JUnit」に返信)
SpringSide: Spring Framework をコアとしたプラグマティック スタイルの JavaEE アプリケーションのリファレンス例。これは、JavaEE の世界での主流のテクノロジの選択とベスト プラクティスの概要とデモンストレーションです。
中国人によって開発されました、強くお勧めします。
さらに、今世紀初頭の有名な Jive フォーラムを引き続き研究します。非常に古く、ソース コードは非常に学術的ですが、それらはすべて生きたアプリケーションの例です。
プロキシパターンを使った実装があったのは記憶に新しいです。 また、暇で興味があれば、Struts、Spring、hibernateのソースコードを読むのはもちろん、開発に参加することも可能です。 Javaの学び方、これは私が長年感じてきたことであり、単なる家族の話です。 私とコミュニケーションを取ることを歓迎します。 プログラミングを学ぶのは決して簡単ではありません。ビデオを見たり本を読んだりして学ぶことは不可能です。多くのプログラミングと練習が必要です。 プログラミングは精神的にも肉体的にも大変な作業ですが、そこに含まれる創作の喜びもまた格別です。 皆さんもこの過程を楽しんで楽しんでいただければ幸いです。Javaを学習中の学生の皆様、ご注意ください! ! !
学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、Java 学習交換グループ (299541275) に参加してください。一緒に Java を学びましょう!
以上がJavaを学習するためのステップとプロセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。