ござ先輩さんのアレを読んだ。
Javaで「はじめてのプログラミング」を教えるのはキツイと思った話
Javaに造詣が深い方だった気がするし、色々考えた上でそういう決断するのは確かになぁーと思った。
イマドキ、Servletさわんのかぁとか思いつつ、Servletそんなムズいんだっけと思いつつ。
で、脱線して僕ならJavaの研修課題どんなものを作るかなとか考えた。
クラスありきの言語設計
これは慣れれば良いんだけどたしかに、ド初心者でプログラミングを学ぶならおまじないとして覚えないといけない部分は多いのかなと思った。
Javaはコンパイルが必須
jshell使いましょう!
もしくはjdk9入れるのが面倒だと言うならこれをつかうかなぁ。
https://github.com/albertlatacz/java-repl
サーブレットが鬼門となる
Servletやめましょう!
Spring MVCかJAX-RSにして、URLのマッピングする部分だけ実装するとかが良いかなぁ。うーん。
ということで
僕がJava研修課題カリキュラムを作るなら、、というのがこのブログ記事の本題というか妄想だけど
- 環境変数がウンタラカンタラはなるべく障壁を無くす(予めパス通した端末用意するとか、このバッチ叩けばあら不思議系にしておく)
- 基本文法(型や変数宣言、if、forとかとか) はjshellでやる
- サーバーサイドの開発を始める前にIDEで遊んでもらう
- JUnitでも遊んでもらう
- IDEで遊び慣れてきたらJavaFXあたりでデスクトップアプリ作ってみる(ビルドツールとかは使わない)
- Javaのめんどくささを教えていく。classとかインスタンスとかなんたらかんたら
- 環境変数がどうとかjavacがどうとかという面倒臭さを改めて覚えてもらう
- JAX-RSベースのブランクプロジェクトでも渡す。Applicationとか入ってるやつ(おまじない的にビルドツールを使う)
- 実際にアプリ作ってもらう。足し算アプリとか
- 何か好きなものを1から作ってもらう(ビルドツールをある程度理解して使う、pom.xmlとかbuild.gradleも自分で書く)
こんな感じかなぁ。でもjshellだとワンライナーじゃないとキツイかなとかあったりもする。
真ん中にJavaFXを入れたのはデスクトップアプリのほうが作ったものが動いてる感覚があるから。サーバーサイドにしてもJShellでやるにしても仕組みをわかってないと動きがつかめなくて自分が書いたものが動作してる実感湧きにくいんじゃないかなという想像。たぶん。
環境変数がどうたらとかいうのをあえて真ん中に持ってきてみた。仕組みを知らないまま進むとどこかでハマる可能性あるし。でも学び初めのところではそこまでハマってると楽しくないだろうなとか思ったり。
楽しいとか言ってないで、ガッと乗り越える力というのも大事だとは思うんだけどな。そこ乗り越えたら楽しいというか。与えられた楽しさはつまらないというか。
ここまで課題をやっていけたらまぁまぁスタート出来るような気がする。
でも正直、Javaを覚えたての頃は僕はこれ全部出来なかったような気がするなぁ。
0 件のコメント:
コメントを投稿