@ledsun blog

無味の味は佳境に入らざればすなわち知れず

道具としてのプログラミング、目的としてのプログラミング

プログラミングの学習曲線

Ruby on Railsはプログラミングではない! | それでも人は夢を見るの話です。 Ruby on Railsの有料講習を受けたが、受講前にイメージしていたプログラミングと、受講後の自信の能力のギャップに驚いている方の話です。

これは学習曲線の問題な気がします。

自分がプログラミングの勉強を始めた頃の話です。 入門書を読みながら、Perlをぽちぽち入力して掲示板CGI動かしてみました。 ですが、その次にどうすれば、イメージしているプログラミングに近づけるのかわかりませんでした。(その時は)挫折しました。多分、元記事の方も同じような状態なのだと思います。

一つの課題をクリアしたものの、次に何をすれば理想のプログラマに近づけるのかわからず戸惑っているのではないでしょうか?

プログラミングで世界を変えるということ

その後、自分がどうやってこの壁を越え、プログラミングを道具と認識したのかを振り返ってみます。

大学の授業や新人研修でのプログラミングの勉強はしました。課題を解くことはできました。それでも、コンソールに表示するプログラミングと、世間に溢れている(当時は今ほど無いけど)WEBやGUIのプログラミングが遠すぎて、やはりプログラミングが何かよくわかりませんでした。 結局、仕事で3000行ぐらいのプログラム書いたときに、やっとプログラミングが何かわかった気がします。

何が本質的な課題なのでしょうか? あるいは量でしょう。基本的な文法に悩まなくなった時に、プログラミングで解決したい課題に悩むことができます。

おそらく、もっとも重要なことは

現実に存在する課題を解決するプログラミングを書くこと

でしょう。練習問題を解いても、世界は変わりません。現実の課題を解くと、世界をプログラミングでちょこっとだけ変えることができます。

世界を変えることは、小さな変更を繰り返すことです。

職業プログラマのすすめ

プログラマとして就職すると、絶えることなく「解決すべき現実の課題」を提供してもらえます。 しかも、プログラミングスキルに合った規模に分割して「ここだけ書いて」と教えてくれるので、ハードルがぐっと下がります。

ある若者は、自分で書いたプログラムを、実際に使って喜んでいる人を目の当たりにして、プログラミングに対する意欲がガラリと変わりました。これは「自分がプログラミングで世界を変えたこと」を実感したからではないでしょか?先輩技術者と一緒に、現実の課題を解決するのはおすすめです。

他人の課題を解決するのに飽きたら、自分で好きな課題を見つけて解決すればいいのです。それはもしかすると、世界を大きく変えるかもしれません。

Ruby on Railsの複雑度が問題?

Railsはプログラミングでは無いのか | サークルアラウンド株式会社ではRailsの抽象度の問題と解釈してSinatraをすすめています。

なるほどSinatraの方が少し簡単ですし、過去にSinatraの方が簡単なのにと愚痴ったこともあります。 Railsは覚えることが多いので「プログラミング初心者には大変だなぁ、Sinatraの方がまだ良いなぁ」とは思います*1

また、課題を取り組みながら仕組みを、わかりやすく説明してもらえれば、Ruby on Railsの使い方だけでなく、Webアプリケーションの仕組みやデータベースを使う意義などを理解できるかもしれません。

それでも、言われた通りにプログラミングするのと、現実の課題を解決する道具としてプログラミングするのはちょっと違うような気がします。

プログラミング研修の限界

研修課題には解決できない(かもしれない)問題は出せません。また、現実の課題をプログラミングで解決可能な形に解釈するには、独特のコツが要ります*2

現実の課題を解決する形でプログラミングを学んでいくコースを、2ヶ月18万円で提供するのはちょっと難しそうです。

一ヶ月90万を半年間払っていただければやります。人によっては60万円ぐらいでやってくれるかもしれません。 ただし、ゴールは対象者の資質によって大きく変わりそうです、保証できません。 こういう条件で申し込んでくる人はいなさそうですね。 そんなわけで、ビジネスとしては成り立ちません。

まとめ

プログラミングで世界を変える最短経路は

  1. 職業訓練と割り切ってRuby on Railsの勉強をする*3
  2. プログラマとして就職する
  3. お仕事としてプログラミングする
  4. インターネット世界の構成要素を知る
  5. 世界を変える

以上です。身も蓋もありません! プログラミングを楽しんでね!

*1:プログラミング初心者にとってはSinatraRailsのControllerはどっちも難しいかもしれません

*2:恐ろしいことに、このコツは日々変わります。そのお陰で職業プログラマは食いっぱぐれません

*3:別のプログラミング言語でも、別のフレームワークでもライブラリでも、就職に役に立ちそうであれば、なんでもいいと思います