はじめに
新卒で入社して、現在3年目です。
業務ではJavaランタイムに関する製品を扱っています。Javaについては一通り学習したものの、普段の業務でコードを書く機会は多くないため、しばらくすると学んだ内容を忘れてしまうことが悩みでした。
分からないことがあれば、その都度AIに質問することもできます。ただ、疑問に対する答えを個別に得るだけでは、知識同士のつながりが見えにくく、全体像を体系的に理解することにはなかなかつながりませんでした。
また、書籍を最初から読み進めるだけの学習では成果を実感しにくく、継続的に学習するモチベーションを保つことも難しいと感じていました。
特に、単なる文法だけでなく、
- 実際の開発現場では何を意識するべきか
- エラーが発生したときに、どこを確認するべきか
- テストや運用を考えると、どのように実装するべきか
といった実務に近い知識は、書籍を読むだけではなかなか身につきませんでした。
そこで、インプットした内容をすぐにアウトプットし、実際に手を動かしながら覚えられる学習アプリが欲しいと思い、AIを使って作ってみることにしました。
作ったもの
今回作ったのは、Javaを手を動かしながら学べるローカル学習アプリ「Java Café」です。
GitHubはこちらです。
ブラウザ上で解説やサンプルコードを確認し、そのままJavaコードを書いて実行できます。提出したコードは自動で採点されるため、コードを書くだけで終わらず、期待した動作になっているかまで確認できます。
基本的な学習の流れは、次のとおりです。
- 解説を読む
- サンプルコードを実行する
- 練習問題のコードを書く
- コードを提出して、自動採点を受ける
- 間違えた問題をあとから復習する
Javaの基本文法やオブジェクト指向だけでなく、JVM、データベース、Web、テスト、セキュリティ、運用、システム開発の工程なども学習できる構成にしています。
また、業務フレームワーク編として、Spring Boot、Open Liberty、Quarkusの3つを実際に触りながら学習する単元も入れています。
学習ホーム
学習ホームでは、各章の進捗や獲得した星の数、復習が必要な問題などを確認できます。
好きな章から始めることも、前回の続きから再開することもできます。
解説を読んですぐにコードを書く
レッスン画面では、解説とサンプルコードを確認したあと、同じ画面で練習問題に取り組めます。
解説を読んで終わるのではなく、インプットした内容を忘れないうちにコードとしてアウトプットできることを重視しました。
コードを提出するとテストが実行され、正しく実装できているかが自動で判定されます。
忘れた頃に解き直せる「復習モード」
一度クリアした問題は、学習ホームの「復習する」からもう一度解き直せます。
問題ごとに次の復習日が設定されており、忘却曲線を意識して、そろそろ忘れていそうな問題から順番に出題されます。正解するたびに次回までの間隔が長くなり、うまく解けなかった問題は苦手な問題として優先的に確認できます。
復習は4問ずつの短いセットになっているため、まとまった時間がなくても少しずつ取り組めます。復習期限が来た確認クイズがある場合は、コード問題のあとに続けて出題されます。
一度問題をクリアして終わりにするのではなく、忘れかけたタイミングで再び手を動かすことで、知識を少しずつ定着させることを狙っています。
おまけモード
継続して学習するモチベーションにつながるように、おまけモードとして「カフェモード」も入れています。
問題を解くとコインを獲得でき、そのコインを使ってカフェの設備やメニューなどを増やしていけます。Javaといえばコーヒー、ということでカフェにしました。
学習内容そのものに影響する機能ではありませんが、問題を解いた成果がカフェの成長として目に見える形で残ります。勉強だけになりすぎず、少し寄り道しながら続けられる要素として追加しました。
動かし方
JDK 21以降とWebブラウザがあれば起動できます。
git clone https://github.com/ktgrryt/java-learning.git
cd java-learning
./run.sh
起動すると、ブラウザで次のURLが開きます。
http://localhost:8123
教材の品質を継続的に改善しています
このアプリはAIを活用して作りましたが、最初から完璧なものができたわけではありません。
実際に自分で問題を解いてみると、
- 解説の表現が不自然
- 問題文だけでは意図が分かりにくい
- 答えをほとんど写すだけになっている
- 解説した内容と問題の内容がうまく対応していない
- 実際の開発で意識するポイントが不足している
といった部分が見つかりました。
そのため、自分でアプリを触りながら、少しずつ改善していく形で開発しています。
現在も自分で一章ずつ問題を解きながら、解説や問題文、採点内容などを確認し、教材の品質を継続的に改善しています。
一度作って終わりにするのではなく、実際に学習してみて分かりにくかった表現や、アウトプットとして物足りなかった問題を見直し、より学びやすい教材にしていく予定です。
GitHubに新しいバージョンが公開されると、アプリの起動時に更新通知が表示されるようにしています。
通知が表示された場合は、次のコマンドで最新版に更新できます。
git pull
自分自身がJavaの知識を忘れないために作り始めたアプリですが、同じように「Javaを勉強したけれど、使わないと忘れてしまう」と感じている方の役にも立てばうれしいです。
もし興味があれば、ぜひ触ってみてください。





