1. 実践に基づいた学習

実践に基づいた Java 学習

CodeGym を心から愛する人もいれば、心から憎む人もいます。しかし、CodeGym の最も悪質な批評家でさえ、CodeGym には驚くほど膨大な数のタスクがあることにすぐに同意するでしょう。これほど多くのトレーニングが存在する理由は、CodeGym のすべてのトレーニングが基礎として実践を備えているためです。

プログラミングはスキルです。「私はプログラミングの仕方を知っています」とは誰も言いません。すべてのプログラマーは「私はプログラミングができます」と言います。それは水泳やチェスのような実践的なスキルです。そして、そのスキルは継続的な練習によってのみ培うことができます。

そのため、CodeGym コース全体は、ますます困難なタスクの連続になります。非常に簡単で原始的なタスクから始めて、最も難しくて興味深いタスクで終わります。レベルが上がるごとに難易度は少しずつ上がります。これはまさに、プログラマーになるという目標につながる道です。


2. タスクの種類

CodeGym では、さまざまな種類のタスクがたくさんあなたを待っています。主なものを列挙してみましょう。

例に従ってコードを記述するタスク

これは最も簡単な練習です。これらのタスクの目的は、コードを書く能力を練習することです。このタスクを解決するには、サンプル コードにあるとおりにコードを記述する必要があります。これはとても便利ですが、すぐに飽きてしまいます。そのようなタスクはほとんど残っていません。CodeGym の学生にとってより興味深いタスクに置き換えました。

このようなタスクのカードには T という文字が付いています。

タスクの種類

プログラムを書くタスク

これらはコースの中で最も重要なタスクです。最も単純なタスクから、深く考えなければならないタスクまで、難易度はさまざまです。

これらのタスクの目標は、指定された条件と要件を満たすプログラムを作成することです。ほとんどのタスクはこのカテゴリに分類されます。CodeGym の学生の便宜を図るため、これらのタスクを難易度に応じてEASYMEDIUMHARDEPICとマークします。

EPIC タスクは多くの場合、まだロックを解除していないレッスンの今後の学習教材に基づいています。コースが簡単すぎると感じている CodeGym の学生に人気があります。他の人は、単にこれらのタスクをスキップし、関連する理論にすでに慣れてきたときに、後でそれらのタスクに戻ることができます。

プログラムを書くタスク

プロジェクト

通常のタスクの欠点は、タスクが小さいことです。彼らが言うように、終わって忘れられました。したがって、非常に興味深いものにすることはほとんどできません。しかし、大規模なプログラムはテストが困難です。プログラムを実装する方法が多すぎるためです。

それが CodeGym が導入したプロジェクト タスクです。大きなタスクは 10 ~ 30 の通常のサブタスクに分割されます。すべてのサブタスクを順番に実行すると、最終的には大きなプログラムが完成します。

マルチスレッドおよびコレクション クエストの各レベルの最後には、20 のサブタスクに分割された 1 つの大きなプロジェクト タスクがあります。他に 6 つのゲーム タスクがあり、これもプロジェクトです。コース全体には合計 27 のプロジェクト タスクがあります。

クイズ

長い間、CodeGym にはテストやクイズがありませんでした。CodeGym の作成者は、テストに合格すると人々に「知識の錯覚」が生じるという意見を持っています。人々はプログラミングの方法を実際には知りませんが、テストに合格したため、そうではないと完全に確信しています。そのような人は、「すでにすべてを知っている」ため、学ぶことをやめます。

その後、CodeGym の学生が学習のギャップを簡単に特定できるようにクイズが追加されました。プログラマーにとって、職業上日常的に扱うものの微妙な違いを知ることは役に立ちます。

クイズ Java

動画

最後に、最後のタイプのタスクはビデオの視聴です。CodeGym のレッスンには、IT 業界に関連した有益で興味深いビデオが多数含まれています。


3. タスクのステータス

CodeGym の各タスクには特別なステータスがあります。タスクを解決するとステータスが変化することがあります。

CodeGym の各タスクはレッスンに関連付けられています。最初はどのタスクにもアクセスできないため、タスクを解決することはできません。

ロックされた

次のレッスンを開くと、レッスン内のすべてのタスクが解決できるようになります。つまり、タスクのステータスが「利用可能」に変わります。

利用可能

検証のためにタスクを少なくとも 1 回送信すると、そのステータスは「利用可能」から「進行中」に変わります。

進行中

最後に、すべての要件を正常に満たし、バリデーターが送信を受け入れると、タスクのステータスが「完了」に変わります。

完了しました

Premium Pro サブスクリプションを持つユーザーは、さらに 3 日間、タスクに対する他のソリューションの作成を試みることができます。この追加の時間が経過すると、タスクは「クローズ」ステータスに移行し、このステータスは変更されなくなります。閉まっている


4. ウェブIDE

タスクを簡単に解決できるように、特別なウィジェットWebIDEを作成しました。おおよそ次のようになります。

ウェブIDE

左側には、ソリューションが満たす必要があるタスクの条件と要件が表示されます。中央にはエディタがあり、コードを記述する必要があります。プログラムでテキストが表示されました。これは下部のペインに表示されます。

上部には次のボタンが表示されます。

  • 検証: テストのためにソリューションを送信します。
  • ヘルプ: CodeGym コミュニティでソリューションについて質問してください。
  • 話し合う: 他のユーザーとタスクについて話し合います。
  • リセット: ソリューションをリセットします。つまり、最初からやり直します。
  • 実行: 検証のためにプログラムを送信せずにプログラムを開始します (検証カウンタは増加しません)。
  • コード分​​析: ソリューションのコード スタイルに関する提案を取得します。

5. 要件

CodeGym の初期の頃は、各タスクを検証すると、「はい」か「いいえ」という単純な結果が得られました。プログラムはすべてのテストに合格したか、合格しませんでした。非常にシンプルですが、あまり役に立ちません。

人々が学習する際には、自分が間違っていることと、それを正しく始める方法を理解することが非常に重要です。したがって、サーバーがソリューションを受け入れない場合、 「何が問題なのか?」と尋ねるのは当然のことです。

この質問に対する答えを得るには、ソリューションを詳しく調べて分析し、何が問題なのかを教えてくれる人が必要です。これには長い時間がかかり、費用もかかります。タスクの即時検証の利点は、午前 2 時に座って勉強しても、他の時間と同じように作業できることです。

そのため、CodeGym 上のすべてのタスクを書き直しました。各タスクにはタスク条件だけでなく、条件を具体化する 5 ~ 10 個の要件のリストも含まれるようになりました。最も重要なのは、各要件が個別に検証されることです。

つまり、今日検証のためにタスクを送信すると、拡張応答が得られます。各タスク要件の横に、プログラムがこの要件を満たしているかどうかを示す特別なアイコンが表示されます。例:

要件

このアプローチにより、複数のクラスまたはメソッドを作成する必要があるタスクに取り組む作業が大幅に簡素化されます。どのメソッドやクラスが正しく記述できたのか、どのメソッドやクラスが正しく記述できなかったのかを常に確認できます。


6. 推奨事項

どうにかしてタスクをさらに改善することはできないでしょうか? 各チェックの後に、プログラムの正確な問題点が示され、それを修正する方法についてのヒントが得られたら素晴らしいと思いませんか? はい、それは素敵ですね!さて、どうでしょうか?CodeGym ではまさにそれを行っています 🙂

各タスクの要件を確認することで、よくある多数の間違いを発見します。プログラムにバリデーターが認識している間違いがある場合、バリデーターは推奨事項、つまり、すべての要件を満たすようにソリューションを修正する方法に関するヒントを作成します。

考えてみてください。現在、CodeGym には約 1200 のタスクがあり、合計約 10,000 の要件があります。そして、各要件に関連する推奨事項がいくつかあります。一部の要件には数十もの要件があります。CodeGym のバリデーターは、ユーザー ソリューションに対して 50,000 を超える推奨事項を作成する準備ができています。

さらに、これらすべてはソリューションの検証時に行われ、ほとんどの場合、1 秒もかかりません。そんなことは誰にもできません。これは本物の仮想メンターです。

推奨事項