はじめに
佐藤です。こちらを拝見して、思うことを少し書いてみようと思います。
WEBサービス開発初学者が知るべき事とRailsの提供するモノの差
まず上記の記事を読んで「それはあなたがRailsについてよく知らないからだよ」と思ったとしたら、それはとてもプログラマー的な思考で記事を読まれたと思います。きっとこの件で大事なことはそういう事では無いと私は思います。
初学者さんには何タイプかいらっしゃると思うのですが、その一つに「仕組みについて理解して、それを行使したい」というタイプがあります。ブログの記事を書かれた方はきっとそういう方だと思います。
例えば以下のような事がWEBサービスを作成する上での基本的な内容だと思います。
- ロジックを書くということを知る
- 条件分岐/繰り返し/メソッド etc…
- そもそもWEBとはどんなものなのかを知る
- リクエスト/レスポンス、HTTPメソッド、ブラウザの役割etc…
- DBの基本的操作を知る
- いわゆるCRUDについて知る
さて、このようなことを知る目的において、Railsというフレームワークが有効だろうか、と考えると私は必ずしもそうではないと考えています。
RailsはMVCやRESTの概念、DBの操作等をひとまとまりに提供してくれている素晴らしいフレームワークです。その為にブラックボックス化しているとも言えると思います。本当に理解したければこれらの概念を知り、更に上記のようなWEBサービス開発の基礎的な概念をも吸収しなければなりません。
基礎的な部分がフレームワークの効果によりあまり意識せずに行われていることから、本来学ぶべき概念が初学者からは見えづらくなっていると感じます。
今回起こっていたと想像されること
恐らく受講されたスクールではRailsの操作について教えたけれども、先に挙げたようなWEBの基本的な内容について、受講者がハラオチするレベルで提供できていなかったのだろうと想像しています。
また、Railsにおいても「Scaffoldで作られたものについて、何をどう直せば自分の思ったように変更していけるか」という大事なところが伝わっていなかったと想像されます。
引用:
でもね、「物作りしてるなあ」という実感は、正直言ってありません。市販キットを組み立ててる感じ。「なぜ動いてるのかわからないシステムを、先生に言われるとおりに操作したらうまく動いた」っていうだけの話です。
なぜ動いてるのかわからないシステムを、先生に言われるとおりにというところからもこのイメージが伝わってきます。大事なことは、どうやるかを即答してあげることではなくて、その人が自分で考えて実現できるようにサポートする事だと私は思います。
二ヶ月という限られた期間の中で、様々な理解を促すのは難しいことです。私のところでも「Railsがちゃんと使えるようになる」というラインを考える際はもっと長い期間を必要とします。当然個人の素養で前後もします。
トレーナーとしての私が思うこと
弊社のトレーニングでは受講生の方全員と事前に面接をジックリ行いますが、「1ヶ月でプロに」などとは絶対に口にできません。一人一人違う性質を持った方を相手にして、これから初めてのことをやると言うのに、その目標を皆が達成できるかのように見せるのは私の組織の考え方ではできません。
2、3ヶ月で私がコミットできるのは
「あなたが目指すのがプロであれば『これを続けていけばプロになれる』と私が思う道筋を提案して、それを達成出来るだけの初期スキルを与えること」
程度です。この話を理解した上でトレーニングを受講していただきます。
初期のスキルを組み合わせるだけで自学で登って行けるのもプログラミングなのです。私たちはそれを短期間にする手伝いをするだけです(実際私は誰に教わることもなく自学だけでプロになり、今はプロを育てている自信があります)。
引用:
で、そんなこともあって、ぼくはいまRailsに対して熱が冷めてきてます。ぼくはもともと、理解できないものを使うことがあまり好きではないのです。
この部分に関してとても悲しい気持ちを持っています。元々やる気があったはずの人に、もっとやる気を伸ばしてあげられるチャンスがあったのに、それを潰してしまったのではないかと感じています。
救いなのは Railsに対する熱が冷めているだけであって、プログラミングそのものに対する熱はまだ残っていらっしゃるのではないかと感じられる事です。是非違う形でも良いのでトライして欲しいと願っています。
ではどうしたら良いのか、というところでSinatraのススメ
長々書いてきましたが、初期に大切なのは「WEBサービスを作成する上での基本的な内容」に対する理解を深めることだと思っています。
そういう事もあり「将来Railsでの開発を目指している初学者の方には、Sinatraを薦めると良い」と最近は考えています。SinatraはWEBの動作についてとても直感的に理解できるような仕様になっています。Herokuで公開もできます。
弊社ではこれをより確かめる目的もあって、今年の夏にWEBプログラミングに詳しくない女子大生をインターンにお願いして、12日間のトレーニングをさせていただきました。下記はその記録です。教本のように全てが書かれているわけではありませんが、学ぶ上での一助となると考えています。※余談ですが、記事の妹の方はWEB開発が楽しくなったらしく、しばらく弊社のインターンとして活動してくれることになりました。
ぽんこつ姉妹のRuby女子会 〜基礎からWebはじめました〜
Sinatraを使ってまずはWEBの仕組みがどんなものかの概念を持った上で、Railsにトライすると良いのでは無いでしょうか。
おしまいに
それでも次にSinatraからRailsに移行する際には多くの事を学ばなければならないのは前述した通りです。Railsにはまだ「すんなり辿り着ける入り口」が存在しないと感じています。この課題も弊社で解決したい問題の一つです。
もしも迷っていることやシックリこない何かを抱えている方がいらっしゃったら(コードの話でもいいですし、概念やはじめ方でも大丈夫です)、だいたい毎週末に弊社で開いているプログラミング相談所に是非お越しください。私やスタッフで悩み相談からレクチャまでさせていただきますよ。
という形で最後は商売な感じでまとめさせていただきました。ごめんなさい。そして長々お読みいただきありがとうございました。