独学やオンライン講座でプログラミングの勉強を 始める場合、「活動分野」を明確にして体系化することが非常に重要です。この記事では、そのような体系化 - 初心者向けの Java タスクを紹介し、JavaRushプログラミングを学習するためのオンライン コースと便利なリンクで特定のタイプがどの程度完全に提示されているかを示します。
パズルはどこで見つかりますか:
言語の構文の問題
基本、初心者向けの最初の Java プログラミング タスク - 「Hello World」からループや配列まで。JavaRush にはそれらがたくさんあります。特に、最初の 6 レベルのJava 構文クエストに集中しています。それらを同化するために追加のソースを探す必要はほとんどありません。ここには十分な量のソースがあります。さらに、より複雑な問題を解決する場合は、構文が自動的に繰り返されます。ただし、突然必要になった場合は、初心者向けの Java 問題集に同様の演習が含まれています。ただ、これらの問題集には JavaRush のような即時チェックはありません。収集タスク
コレクションは、初心者プログラマーが学習中に最初に遭遇する「深刻な」トピックです。コレクションに特化した初心者向けの Java の問題も、JavaRush のJava 構文クエストの7 番目と8 番目のレベルで広く取り上げられています。ここで学生は Java コレクション フレームワークについて初めて聞き、Set、List、Map インターフェイスとその実装の一部を操作します。ただし、この段階では、この便利なツールと単純な Java タスクについてのみ理解します。コレクションのより徹底的な研究は、クエスト「Java Collections」中に行われます。クエスト全体がこのオブジェクトにちなんで名付けられていることからも、このオブジェクトがいかに重要であるかがわかります。例外の問題
Java では特別なメカニズムが異常な状況に対処する役割を果たしており、プログラム内のエラーの「捕捉」が大幅に簡素化されます。ただし、これを完全に使用するには、Java で例外処理がどのように機能するかを理解する必要があります。JavaRush にはそのようなタスクがたくさんあり、最初の Java 構文クエストにも含まれています。型変換の問題
もちろん、このグループは基本的な構文タスクとして分類できます。しかし、私たちの謙虚な意見では、そのようなタスクは過小評価されることが多く、初心者はそれに苦労しています。したがって、テンプレートから離れましょう。「プリミティブ型の変換」というトピックについて、初心者向けの Java タスクを学習します。よくあることですが、最初にではなく、少し後、最初の Java 構文クエストの最後に学習します。次に、 Java Coreクエストで OOP を学習することで、非プリミティブ型 (オブジェクト) をキャストする方法を学びます。JavaRush にはそのようなタスクがたくさんあるので、追加で何かを探す必要はありません。OOP を理解するためのタスク
OOP は最も難しいトピックではありませんが、非常に重要です。さらに、面接官が将来の「後輩」を捕まえるために使いたがる微妙なニュアンスがたくさん含まれています。JavaRush コースには、オブジェクト指向のアプローチを理解するのに役立つ初心者向けの実践的なプログラミング問題が含まれています。ただし、OOP を真に理解するには、このトピックに関する文献を読むことをお勧めします (たとえば、Kay Horstmann、Gary Cornell の Professional's Library、McLaughlin のオブジェクト指向分析と設計、またはその他の書籍)。I/O スレッド上のタスク
私たちは I/O ストリームを理解するずっと前に I/O ストリームを使い始めます。これは Java です。System.out、さらには System.in を緑の初心者に説明するのは難しく、最初の段階では必要ありません。ただし、 Java Core のクエストでは、この少々ややこしいトピックを理解するのに十分な知識があれば、コンソールの入出力だけでなく、ファイル システムの操作についても話します。重要なことは、これらのタスク (JavaRush には非常に多くのタスクがあります) をスキップせず、一貫して理論を理解することです。パズル
「パズル」とは、多くの知識ではなく、それを非標準的な方法で適用する能力を必要とする、より複雑なタスクを意味します。これらは Java ジュニアの典型的なタスクです。面接では非常に人気がありますが、実際の仕事では、この意味でのパズルはあまり一般的ではありません。それが、JavaRush にはそれらが存在する理由ですが、それほど多くはありません (通常はキャプテン ボブロフのクラスにあります)。- http://acm.timus.ru/problemset.aspx?space=1&tag=tricky
- https://tproger.ru/category/problems/
- https://www.codechef.com/
- https://www.codewars.com/? language=java
アルゴリズムとデータ構造
アルゴリズムとデータ構造については、将来のプログラマーがどれだけそれらを必要とするかについて、絶えず議論されています。もう一度答えます:思考の発達のために、それらは仕事のために直接必要になることはめったにありません。なぜなら、Java や他の言語でも、既知のすべての並べ替え、検索、その他のアルゴリズムを実装したライブラリがすでに作成されているからです。ただし、アルゴリズムの独自の実装を作成することは、アルゴリズムの複雑さを理解する上で非常に役立ちます。特に学校で数学しか勉強しなかった人にとっては。原則として、これらのタスクにはパズルが散りばめられていますが、唯一の違いは、すべてオンラインで説明され、何度も解決されることです。検証のためのバリデーターも必要ありません。たとえば、プリンストン大学、カリフォルニア州またはステピックの同僚など、任意のコースを選択してください。ちなみに、JavaRush に翻訳を掲載したコース CS50では、いくつかの重要なアルゴリズムとデータ構造について説明します。レベル 2 ~ 5 のビデオを見て、Java でタスクを実装することを強くお勧めします。 グラフの問題: データ構造タスク:マルチスレッド化
「Hello World」を出力するプログラムは誰でも作成できます。有名なフレーズが追加のスレッドから出力されるように Java Thread API を使用してみてはいかがでしょうか。そして、5 つの異なるスレッドから「Hello world」を 5 回出力し、行が交互にならないようにするには?. マルチスレッドは、Java Core を学習する際の本当の「強度テスト」です。JavaRush のクエスト全体は、Java マルチスレッドと呼ばれるこの非常に難しいトピックに特化しており、学生が並列プロセスの「痛みと美しさ」を感じることができるように多数のタスクが含まれています。多くの場合、学生の最初の「実際の」プロジェクトには多かれ少なかれマルチスレッドが含まれます。たとえば、簡単なゲーム。
マルチスレッドの問題 5 人の沈黙の哲学者が円卓に座っています。それぞれの前にはスパゲッティの皿があります。テーブル上の各哲学者の左右 (哲学者の間) にフォークが置かれています。哲学者は食べることも考えることもできる。さらに、彼は2本のフォーク(1本を彼の右と左に持った)を持っている場合にのみ食べることができます。「フォークを拾う」と「フォークを置く」は別々のアクションであり、連続して実行されます。 |
ジェネリックに関するタスク
一般化は自動化、つまりプログラミングの本質そのものです。したがって、Java における一般化またはジェネリックスのトピックも無視すべきではありません。JavaRush には一般的なプログラミング タスクがあります (主にレベル 5 から始まる Java コレクション クエスト)。 ジェネリック医薬品に関する役立つ演習や資料が見つかる場所:- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- Joshua Bloch 著「Effective Java」という書籍
デザインパターンのタスク
ある段階 (JavaRush コースの約 2/3) で、初心者プログラマーはプログラミングにおけるマナーのルールを注意深く検討し始める必要があります。ここでは、正しいコードの書式設定 (これは簡単です) とデザイン パターン (これはより難しいです) について話しています。JavaRush にはそのようなタスクがあります。追加のものが必要です。それらは、たとえば、書籍 (パート 4)「Java」に記載されています。プログラミング手法» Blinov と Romanchik。あるいは、すでに解決済みの問題をテンプレートにどのように当てはめることができるかを考えてください。単体テスト
プログラマーにとって重要なスキルは、テスターだけが持つものであると誤解されがちですが、独自のコードの単体 (または単体) テストを作成することです。JavaRush にはいくつかの単体テスト タスクがありますが、わざわざ新しいタスクを探す必要はありません。テストの書き方を理解したら、(自分のプロジェクトや教育課題の) コードを単体テストでカバーする習慣を身につけてください。これは、学生プログラマーが悩まされがちなコンソール出力を使用してチェックを行うよりもはるかに便利です。さらに、企業が「後輩」に最初に任せることは、他人のコードの単体テストを書くことであることがよくあります。- ダミーのための単体テスト- Habr の役立つ記事。その後、単体テストが必要な理由が明らかになります。
- Junit - テスター向け Java - ビデオ チュートリアル (Yuri Tkach による)
正規表現の問題
これは、珍しくて怠惰なため、ほとんどの初心者が理解できない単純なトピックです。実際、数日かけてこのトピックを研究し、「常連」を理解し、それをしていない人よりも優位に立つことは価値があります。また、プログラミング言語からほぼ独立しているため、これは便利です。一度学習すれば、どこでも使用できます。JavaRush には正規表現に焦点を当てた問題はありませんが、正規表現を使用して解決できる問題もあります。このトピックを理解するための追加リソースをいくつか紹介します。- Java の正規表現- Jeff Friesen による記事の翻訳
- 正規表現のテスト- オンラインで正規表現をテストできるリソース
- Mike Fitzgerald Regular Expressions は短くて簡単なチュートリアルです。
GO TO FULL VERSION