は、朝から高専でJavaEEの講義(5時間)のあと、夕方は企業向けにRailsの講義(3時間)をやってます。
一日中しゃべりっぱなしで、正直しんどいw
これまた正直に言って、JavaEEとRailsの技術的な比較なんて、不毛なことこの上ない(以前かいちゃったけど・・)ですが、教える立場として両者を比較してみると、面白い傾向がわかってきました。今日はそのレポートです。
高専の生徒は、Java(言語)を勉強しながら、JavaEE(フレームワーク)とその背景(システム開発とは!みたいな)も勉強していく感じ。
若いからパソコン慣れしてるし、キー打つのも早い。
※「若い」→「パソコン世代」の意。
企業の開発チームは、Ruby(言語)は教えずに、Rails(フレームワーク)の使い方だけを教えています。妙な講釈(システム開発とは!みたいな)はタレずに、ひたすら自社サービス実現のために必要なことだけに集中する感じ。SI企業ではないので、ITに精通しているわけではないし、高専生ほどパソコン慣れもしていません。
両者とも、プログラミング力は同等。とりあえずマネをしてもらって、そのあと応用してもらう、という進め方です。
モチベーションを比較してみると、高専は「授業」、企業は「サービスの実現」。この違いは、貴殿が学生だった頃のことを思い出していただければ良ろしいかと・・。
DBアクセスして、HTML-データ間をPOST/GETできるようになるまでに要した時間。おそらく、同程度の複雑性を持つWebアプリケーションが、完成して動くまでに要した時間です。
高専-JavaEE: 5時間×5回
(前年度のUML講義も加味すると+3時間×17回)
企業-Rails : 3時間×1回
その差は歴然です。Nayさんの「改めてRubyを教えても元が取れる」との意見もうなずける。
さてさてではでは、
高専生にも、JavaEEではなく、Railsを教えるべきでしょうか?
逆に、この企業チームがJavaEEを採用するべきでしょうか?
両者は、学ぶ内容と勝負する土俵が違う。
高専でRails、自社サービスでJavaEE、の組み合わせは難しい。
(ありえない、とは言いません。)
サービスをいち早く実現したい人がRailsを勉強するのは正解。
ITプロを目指す人がJavaEEを勉強するのは正解。
企業が自社サービスを実現したいときに重要なのは、コスト、突貫工事、経験則です。Railsの命名規約やDRY原則は、経験則を培うためにはとても効果的。
がんがんトライ&エラーができますから、想定しているサービスに少しずつでも近づいていくことができます。
ウルサイことを言えば、危険ではあります。
現状の開発チームは、上のような内容をちゃんと分かってるわけではありません。でも厳密に理解できなくても、動くものは作れますよね。
高専生に対しては、「Userなのか・・・」のくだりは、厳密に教えなければなりません。社会にでて大金もらってヒトサマに納品するには、Railsを触って「できたできた!」だけではお話にならないからです。
企業チームに対しても、Rubyの厳密な理解を求めるべきでしょうか?難しい問題ですが、私はNOかも!と思います。思い描いてるサービスを実現できればいいし、問題があったら直せばいいわけですから(もちろん自己責任において)。
↑Rubyコミュの根本思想だと思いますが、この言葉は、プログラムを全うに(PerlなりCなりで)書ける人の言葉だと思っています。
※もちろん、「Rubyは楽しい」とは言ってるけど、「未経験者でも簡単に習得できる夢の言語だ」とは、誰も言ってません。
RubyないしRailsを、これから専門家を目指す学生に教えると、いろんなことが曖昧になってしまう予感がする。
Railsで楽しく作りはじめたとして、
↑なんでこれが動かないの?とツマづいたとき、どう答えるのが正解?
で済む場合と、そうでない場合がある。高専生には、もちろん、
となってしまう。結局は、楽しくない世界へ入らざるをえないですよ。
だったら、最初からボトムアップで教えるべきなんだろう、
と思うんです。楽しく教えたいのはやまやまなんですけどね。
なかなかそうも行かないです。