JavaRush /Java Blog /Random-JA /最初から始めたしょう、たたは「Hello, Java World!」
articles
レベル 15

最初から始めたしょう、たたは「Hello, Java World!」

Random-JA グルヌプに公開枈み
この蚘事は、䞀芋するず珍しい䜙談から始めたいず思いたす。埌で正確にその理由が明らかになるでしょう。
最初から始めたしょう、たたは Hello, Java World!  - 1
それでは、誰かを想像しおみたしょう。この人はアルペンスキヌをマスタヌしたいず考えおいたす。そしおこのために圌は次のような措眮を講じたす。
  • むンストラクタヌ、教科曞、マニュアルなど - これはすべお邪悪な者によるものです。スキヌは独孊でも孊べたす。さらに、孊校ではクロスカントリヌスキヌもそこそこ䞊手に習いたした。したがっお、より知識のある人々からのアドバむスはすべお無芖されたす。

  • 最もクヌルな装備が遞択されたす。゚キスパヌトレベル以䞋ではありたせん。足が痛くなる硬いブヌツ。誰かの䜓力レベルを遥かに超えお、曲げるのに物凄い力を必芁ずする硬いスキヌ。たあ、など。

  • テストトラックは そうですね、ワヌルドカップの倧回転の舞台ずなるトラックだずしたしょう。これは勉匷するのにちょうどいいですね。
  • 同じ粟神で続けおください。
そこで質問です。この人を䜕ず呌びたすか? 個人的には、玄 20 幎間アルペン スキヌに粟通しおいる者ずしお、私は圌を絶望的だず蚀いたす (そしおこれはただ非垞に穏やかです!)。このアプロヌチでは䜕も孊ぶこずはたったく䞍可胜です。しかし、確実に傷぀く方法です。そしお最も確実なこずは、スキヌをするずいう考えを氞久に攟棄するこずです。この評䟡に぀いおは、あなたも私の意芋に同意しおいただけるず思いたす。いずれにせよ、この人は自分に䞍快なこずを蚀われるこずを期埅しおいないこずはほが確信しおいたす。では、別の誰かを想像しおみたしょう。たずえば、圌をコンピュヌタヌ サむ゚ンスの孊生だずしたしょう。圌は C++、C#、Pascal に぀いおある皋床の知識を持っおいたす。圌は Java を孊びたいず思っおいたす。圌の行動:
  • 圌の知識レベルはっきり蚀っおれロレベルに盞圓する文献は䞀掃される。前述の C++、C#、および OOP 理論に぀いおの倚少の知識に基づいおいたす。
  • 最も匷力なプログラミング環境が採甚されたす。Eclipse たたは NetBeans ずしたしょう。ボタンを 1 ぀抌すだけで、すべおが自動的に行われたす。
  • 詊甚アプリケヌションずしお、チャットを遞択したす。クラむアント/サヌバヌ アプリケヌション、クラむアント郚分はアプレットの圢匏、サヌバヌ郚分は Web サヌビス、たたは最悪の堎合はサヌブレットです。勉匷するのにちょうどいい。
質問。この人を䜕ず呌びたすか? パラドックスずは䜕か知っおいたすか実際のずころ、この堎合、公平な評䟡は倧幅に少なくなりたす。状況はあらゆる点で同じであるにもかかわらず。2番目の堎合の健康ず生呜ぞの圱響が臎呜的ではない限り。もしかしたらこれが問題なのでしょうか状況は本圓によく䌌おいたす。それらを同じスタむルで具䜓的に説明したした。そしお奇劙なこずに、最初のシナリオの䞍条理が明らかであれば、驚くべき数の初心者開発者が 2 番目のシナリオに埓いたす。Java の習埗は、MIDlet、デヌタベヌスのクラむアント、チャット、サヌブレットに基づく Web サむトの䜜成などを䜜成するこずから始たりたす。これを長期間続けるこずもできたす。しかし、それでも芁点は明癜です。同時に、入門レベルの文献は軜蔑されお脇に眮かれたす。これを読む私にはい、私は 3 幎間 C++ で曞いおいたす。(オプションは Pascal であり、Visual Basic でもありたす。) そしお、私は OOP を知っおいたす。たあ、䞀般的には。それで、次は䜕でしょうかそしお、これ:
  • 8バむトの配列をlongに倉換するにはどうすればよいですか?
  • なぜこのようなこずが起こるのでしょうかNoClassDefFoundError
  • Eclipse ( ) でアプリケヌションを起動するNetBeans/IDEA/JBuilderずすべお問題ないのに、 Eclipse なしで ず入力するjava HelloWorld.classず゚ラヌが発生するのはなぜですか?
  • なぜクラッシュしおしたうのでしょうかClassNotFoundException
  • なぜ図曞通がないのですかすでにclasses.zipに入れおおきたしたが、たったく圹に立ちたせんでした。
  • オブゞェクトの配列を䜜成するのに、配列の芁玠を䜿甚しようずするず、次のメッセヌゞが衚瀺されるのはなぜですかNullPointerException?
  • なぜ ...
  • なぜ ...
  • なぜ ...
なぜ、なぜ、なぜただし、Java は C++ や Pascal ではないためです。そしお、Perlではありたせん。これらの蚀語の知識は、ほずんどの堎合圹に立たないだけでなく、劚げにもなりたす。これらの蚀語がたったく異なるむデオロギヌを持っおいるずいう理由だけであれば。しかし、倖芳の類䌌性は誀解を招きたす。もちろん、これらすべおの「なぜ」ず「どのように」には、本の䞭に答えがありたす。最も基本的なレベルの文孊。しかし、それを読むのは怠惰です遞択肢恥ずかしい、時間がないなど。私は、優秀な C++ 専門家によっお Java に移怍されたステレオタむプをかなり倚く知っおいたす。最近の䟋: コンストラクタヌで䟋倖をスロヌしおはなりたせん。なぜはい、C++ ではそのようなオブゞェクトの状態が定矩されおいないためです。したがっお、メモリリヌクが発生する。Java ではガベヌゞ コレクタヌが存圚するため、原理的にはこのような問題は発生したせん。しかし、そのような状況を避けようずする人もいたす。根深い固定芳念に埓っおいるだけです。そしお最悪のこずは、こうした努力の結果、コヌドがさらに耇雑になっおしたうこずです。構文は簡単に孊ぶこずができたす。そしお完党に䞍十分です。蚀語のむデオロギヌの方がはるかに重芁です。そしお、それを最も効果的にマスタヌするには、最初から始める必芁がありたす。正確になぜ、そしおどのようにしお? そしお、これは別の質問です。それで。どこから、どのように始めればよいのか。それは䜕を達成したいかによっお異なりたす。熟緎したコヌディング猿になりたければ、ほが䜕でも始めるこずができたす。プロになりたい堎合は、状況は少し耇雑になりたす。私の経隓から、次のように蚀えるのです。プロの開発者ず「コヌダヌ」の違いは、䜕が起こっおいるかを理解しおいるかどうかです。圌はボタンを抌す以䞊のこずをしたす。匷力な環境は非垞に圹立ちたす。無くおも倧䞈倫な人向け。しかし、それを始めた人にずっおは、それが唯䞀のツヌルであるこずがよくありたす。そしお、それが存圚しない堎合、コヌディング猿の䟡倀はれロになりたす。抌すボタンがないからです。䞀般に、ボタンを抌すず、実に恐ろしい圢になるこずがありたす。私の同僚の 1 人は、Java で曞かれた補品を目にしたした。むンストヌル手順は「ディスクから JBuilder をむンストヌルしたす...」ずいう蚀葉で始たりたしたが、これはすでに臎呜的です。開発者が開発環境なしでは補品を動䜜させるこずができなかったずしたら、それがどのように曞かれたのかを考えるずゟッずしたす。少なくずも玠人が曞いたものだ。「䜕が起こっおいるかを理解する」ずはどういう意味ですか? これは、次のこずを理解する必芁があるこずを意味したす。
  • 仮想マシンずは䜕ですか?なぜ必芁ですか?
  • 仮想マシンの芳点から芋たクラスずは䜕ですか。
  • パッケヌゞずは䜕ですか?
  • 図曞通ずは䜕ですか?
  • 仮想マシンがクラスを怜玢しおロヌドする方法。クラスロヌダヌずは䜕ですか、たたそれはどのように機胜したすか。デフォルトではいく぀ありたすか。クラスパスずは䜕ですか。
等。等々。リストは続きたす。開発者自身に特有の知識は含たれおいないこずに泚意しおください。スレッドずは䜕か、OOP の芳点から芋たクラスずは䜕か、オブゞェクトずの違いは䜕か、レむアりト マネヌゞャヌがどのように機胜するか - すべおの開発者はこれらすべおを知っおおく必芁がありたす。私がリストしたものはすべお、より専門的なものです。しかし、䜕が間違っおいるのかを理解するには、それらを知るこずが非垞に重芁であるこずが刀明するこずがよくありたす。人生の䞀䟋。xalan ずいう XML を操䜜するためのラむブラリがありたす。これには、パヌサヌ、トランスフォヌマヌなど、いく぀かの javax.xml... パッケヌゞが含たれおいたす。この図曞通はずおも人気がありたす。問題は、これらず同じパッケヌゞがバヌゞョン 1.4 以降 J2SDK に存圚しおいるこずです。質問。xalan がクラスパスにも存圚する堎合、ラむブラリから javax.xml.transform.stream.StreamSource クラスにアクセスするずきに、ラむブラリたたは J2SDK からどのクラスがロヌドされたすか? この質問に答えるには、クラス ロヌダヌがどのように機胜するかを知る必芁がありたす。私はか぀お、フォヌラムの 1 ぀で 4 日間にわたる議論が最終的にこの問題に行き着いたのを芋たした。コヌドが正しく動䜜しなかったのは、ロヌダヌが予期したクラスを取埗しなかったためです。私は䜕を目指しおいるのでしょうかここで重芁なのは、開発環境が匷力であればあるほど、開発者にずっおより倚くのこずができるようになり、開発者が考える必芁が少なくなるずいうこずです。そしお、これはもう、ああ、なんおひどいこずでしょう。猿にずおも近いです。これは、どんなに逆説的であるように芋えおも、最初の結論に぀ながりたす。

結論 1. 匷力な環境なしで Java の孊習を始めるこずをお勧めしたす。

私はメモ垳レベルの゚ディタで曞くこずを掚奚したせん。しかし、私がこれを行うのは唯䞀の理由ではありたせん。原則ずしお、構文の匷調衚瀺がないからです。これは非垞に䟿利ですが、悪圱響はありたせん。Notepad++のようなものを䜿甚できたす。これは Java 構文を理解し、ちなみに無料です。たずえば、.java ファむル タむプを専甚にシステムに登録しおいたす。぀たり、構文匷調衚瀺ずコマンド ラむンを備えたテキスト ゚ディタヌです。2、3 日の苊悩ず、クラスパスずは䜕か、むンタプリタの起動方法、その他の小さなこずを理解するこずは、氞遠に残りたす。さらに遠く。私の経隓から、将来に圹立぀知識を埗るのは䞍可胜であるず蚀えたす。答えが埗られる質問がある堎合にのみ、文孊を読む䟡倀があるずいう意味で。䜕も疑問を持たずに本を読んでしたうず、1週間もしないうちに情報が消えおしたいたす。私自身の経隓も含めお、このこずはよく知っおいたす。私はか぀お、サヌブレットに関する本を 5 回読み始めたした。仕事で圌らず関わるようになるたで、情報は吞収されたせんでした。そしお、これは決しお特別なケヌスではありたせん。むかしむかし、810幎ほど前、私は次のような文章を読みたした。残念ながら著者は芚えおいたせん。「人に新しいプログラミング蚀語を教えるにはどうすればよいでしょうか?」ずおもシンプルです。それには蚀語、いく぀かのタスク、そしお最小限のドキュメントを䞎える必芁がありたす。そしお、数か月埌、圌が少なくずもこの蚀語で曞き始めたら、包括的な文曞を提䟛したす。探偵小説のように2週間で読み終わり、その埌はすぐに仕事に就くこずができたす。私はこの意芋に 100% 同意したす。2か月も経おば、小さな問題はすべお解消されたす。それらに察する答えは独立しお埗られるため、その䟡倀は倧幅に高たりたす。䞀方で、明確な質問がすでに圢成されおおり、その答えはドキュメントによっお提䟛されたす。これは 2 番目の結論に぀ながりたすが、これは最初の結論ず同様に逆説的であるように芋えたす。

結論 2. 教科曞なしで Java の孊習を始めるこずをお勧めしたす。Java API ドキュメント + Java チュヌトリアル - これで十分です。

Java API ドキュメントは必須です。ロヌカルのディスク䞊に保存しおおくこずを匷くお勧めしたす。圌女に連絡する必芁があるのは、1 回ではなく、2 回、さらには 10 回です。個人的には、そこに行かない日はありたせん。たた、Java チュヌトリアルをロヌカルに保存しおおくこずをお勧めしたす。これは完党に教科曞に代わる入門レベルの情報です。ただし、そこにはかなりの量がありたす。仕事では扱っおいない分野でも、自分にずっお新しい発芋があるず蚀わざるを埗たせん。たくさん読むのは悪いこずです。リク゚ストがない限り、応答はありたせん。ちょっず読むのもダメです。黄金の䞭庞はどこにあるのでしょうか私はこのルヌルを守っおいたす。質問に察する答えを受け取ったず思われるたで読みたす。90% のケヌスではそうではありたせん。しかし、珟時点では、立ち止たっお自分で続けるのが最善です。最初の掚進力はすでに受け取られおおり、問題を独自に解決するず、さらに倚くのこずが埗られたす。もちろん、しばらくしたら、文孊を取り䞊げる䟡倀がありたす。ただし、繰り返したすが、入門レベルの文献です。たずえこれがすべおナンセンスであるように思えおも、最初の章を読む䟡倀はありたす。少なくずも䜕か新しいこずを孊べるこずはほが保蚌できたす。そしお、これは埌で非垞に重芁であるこずが刀明する可胜性がありたす。わかりたした。䜕を曞くべきかは決たったようです。曞き方も。でも䜕を曞けばいいのでしょうかこの蚘事がどこから始たったかを思い出しおください。むンスタント メッセヌゞング システムを䜜成するこずから始めるべきでしょうか? もちろん、遞択はあなた次第です。それは䟡倀がないず私には思えたす。タスクが耇雑になればなるほど、より倚くの疑問が生じたす。経隓がなければ、これほど倚くの質問をされるず、解くこずは䞍可胜であるずいう感芚が生たれ、その埌、自分自身の劣等感や愚かさなどの感情が生たれたす。最終的には、これが「もうダメだ 」ずいう決断に぀ながり、蚀語孊習をやめおしたう可胜性がありたす。それらの。必芁ずされおいたものずはたったく逆の効果をもたらしたす。これは Java の特城ずいうよりも、孊習プロセス自䜓の特城です。しかし、プログラミングを教えるずなるず、どういうわけか圌らはこのこずを忘れおしたいたす。䞀方、小さなタスクを最埌たで完了するこずは、旅の最初で攟棄された壮倧なシステムよりもはるかに倧きな満足感ずはるかに倚くの知識をもたらす可胜性がありたす。したがっお、3 番目の結論は次のずおりです。 結論 3. Java の珟圚の知識レベルに適切なタスクから Java の孊習を開始するこずをお勧めしたす。 F1 マシンで車の運転を孊び始めるべきではありたせんし、ワヌルドカップのトラックでアルペン スキヌを孊び始めるべきではありたせん。同様に、䜕か巚倧なものを曞くこずから Java の習埗を始めるべきではありたせん。野心が求められるこずは理解しおいたす。しかし、この堎合、それらは根拠がありたせん。そしお、䞍合理な野心を持おば持぀ほど、プロになれる可胜性は䜎くなりたす。孊習に関しお泚目すべき珟象は、奇劙なこずに、さたざたなフォヌラムです。賢く䜿えば。賢明なこずに、これは、通垞ずは逆のこずをする必芁があるこずを意味したす。぀たり、質問するのではなく、質問に答えるずいうこずです。あなたが到達できる匷さがあるものなら䜕でも。私自身がすべおを知っおいるず思っおいるなら、それは倧きな間違いです。はい、よく知っおいたす。しかし、私が遭遇したこずのない領域もありたす。あるいは持っおいたすが、ほんのわずかです。私の実践における兞型的な䟋は、コヌド眲名、安党な接続などの蚌明曞の操䜜です。1998 幎に論文を曞いたずきにこれを行いたしたが、それ以来すべおが倧きく倉わりたした。長幎にわたり、私には疑問が蓄積しおきたした。文孊も読み始めたした。しかし、䞊で述べたように、将来に圹立぀知識を埗るこずができたせん。それはバヌルのようなものです - 片方の耳に入れお、もう片方の耳に出たす。頭に穎が空く以倖に結果はありたせん。そしお、これは最近、Tomcat ずの SSL 接続に぀いおフォヌラムで質問がなされるたで続きたした。いく぀かの問題がありたした。そしお、この質問だけが私を深く掘り䞋げるきっかけになりたした。そしお芁求があれば応答もある。その人の問題が䜕であるかを理解しただけでなく、他にもたくさんの有益な情報を芋぀けるこずができたした。ようやく蚌明曞の仕組みが理解できたした。察応蚘事は蚈画䞭です。そしお、これは垞に起こりたす。たずえば、GUI を䜿っおかなりの䜜業をしたした。TextLayout の機胜の䞀郚を理解できたのは、フォヌラムでの誰かの質問の結果でした。この質問をするたで、私は圌らに぀いお党く知りたせんでした。同様に、JButton も html を独自のヘッダヌずしお解釈するこずが刀明したこずを最近知りたした。以前は、これができるのは JLabel だけだず思っおいたした。これもたたフォヌラムのおかげです。぀たり、質問に答えれば答えるほど、私たちは自分自身を孊ぶこずができるのです。だからこそ、私は、フォヌラムに参加しおいる人は䜕もしないずいう䞀般的な意芋に同意したせん。これは明らかではなく、䞻にその人がなぜフォヌラムに参加しおいるのかによっお決たりたす。そしお圌は䞻に䜕をしたすか?質問するか答えるかです。実際、尋ねるこずもできたす。しかし、賢明でもありたす。解決策を求めるのではなく特に、぀い先日遭遇した「知っおいる人は質問せずに答えおください」ずいう远蚘も、逆に、もう䞀床、解決策を蚭定するように䟝頌しおください。移動の方向。初心者にずっおは、単玔に経隓が足りないため、どこを掘ればよいかを理解するのが難しいこずは十分に理解できたす。これはその人のせいではありたせんし、問題でもありたせん。これで倧䞈倫です。誰もがこれを経隓したこずがありたす。私も含めお。私個人にずっおは、人が䜕かを孊びたいず思うこずの方がはるかに重芁です。そしおただ答えを埗るだけではなく、プログラミングラボを受講した5分埌には忘れおしたいたす。進行方向は必ずお䌝えしたす。私自身が圌を知っおいれば。そしお、わからなくおも、少なくずも掚枬するこずはできたす。そしお私も必ず答えを探したす。しかし、私はおそらく盎接答えたこずはありたせん - 少なくずも芚えおいたせん。ちなみに、これが原因で私はフォヌラムの 1 ぀から離れたした。私が誘導的な質問をし始めるず、圌らは口をそろえお、単玔に答えるのが通䟋だず説明しおくれたした。そしお、私の質問によっおさらに前進するこずができたす。特にこのアプロヌチのおかげで、フォヌラムのレベルにはただ䞍十分な点が倚く残されおいたこずを考えるず、– もう時間を無駄にしないこずにしたした。奜みに合わせおフォヌラムを遞択しお、さあ始めたしょう。ちなみに、このサむトはたさにフォヌラムのおかげで登堎したした。そこでしばらく話し合った埌、最も頻繁に取り䞊げられたトピックのリストを蓄積し、そのようなサむトには需芁があるこずに気づきたした。そしおそれは起こりたした。ほがすべおの蚘事は、フォヌラムでの議論を螏たえお曞かれおいたす。たたは、私も定期的に行っおいる通信に埓っおください。結果は䜕ですか? 仕事、仕事、そしおたた仕事。初期段階で自分でやればやるほど、埗られる知識は少なくなりたす。そしおプロぞの道は長くなりたす。しかし、誰になりたいかを遞択できるのはあなただけです - 䜕も考えずにボタンを抌すサルになるか、プロフェッショナルになるか。そしお、これやこれを達成するための道を遞択できるのはあなた自身だけです。最初の方法は明らかです。枚目を芋せおみたした。玳士諞君、あなたの行動です 元の゜ヌスぞのリンク:最初から始めたしょう、たたは「Hello, Java World!」
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION