30ruby記

30歳からはじめたRubyプログラミングと教育Startupの記録。

一ヶ月、Rubyを本気で独学した結果(文系向け)

 まともな文章にしたいのだけど、そうする余力がないので、記録のために箇条書きでメモ書きを残します。独学でRuby (on Rails)を学ぶために、まず初学者向けのまともな情報が少ないし、僕以上の事例はそういないと調べて思ったのと(自分で言ってすみません)、これから学ぶ人が増えるだろうから、その参考になればとも。

2015年5月20日 追記 → ※採用できたため募集終了。ありがとうございました。

開発メンバーを募集しています。意欲と能力を兼ね備えた若者を歓迎します。スキルは、この記事を書いた当時の僕くらいあればokです。

30ruby.hatenablog.com

 

2017年11月23日 追記

フロントエンジニアを募集します!やる気があって、実務経験あって、EdTechの本命として教育を根本から変えていくというミッションに共感していっしょに走ってくれる方を探してます!

www.wantedly.com

 

 

とりあえず一ヶ月で作って動かしたやつ。

 

  • Rubyを一ヶ月間やりました。感想を言います。「テクノロジー」はすごい。世界も変えるし、個人の人生も変えます。世界を変えたいなら「テクノロジー」を学ぶべきだ。そして、何をやったらいいのか見定まっていなくて、そういう世界に興味があるなぁと思う日本人なら、特別な理由がない限り「Ruby」で間違いない。だから、いま世界を変えたい日本人は「Ruby」を学べ。

 

というのは乱暴すぎる言い方かな? そうかもしれないけど、でも、あながち間違ってないと思うんだ。だから、もっと突っ込んで言ってみます。

 

  • ジョブズは理系と文系の間に立つと言った。こういう言葉に惹かれる人間は、おそらく、理系よりも文系に多いんじゃなかろうか。社会を変えるとか、世界を変えるとか、そういう言葉に文系の人は惹かれやすいと思う(僕はおもいきり惹かれました)。でも、僕を含めて多くの場合、そういう人は「文系」的な発想で社会を変えようとする。それは日本の教育とか受験システムの弊害でもあるんだろうなぁ。。。つまり、社会を変えようとする人に限って「理系」が、すなわち「テクノロジー」が欠如している。いや、偉そうに言いたいわけじゃなくて、自分のことです。

  • 文系の人間は、「人間」は分かっていても、「社会」に興味はあっても、「テクノロジー」がすっぽり欠けている。だから、結局のところ、想いばかり空回りして、何もできない。できるのは、昔ながらのやり方だけ。たとえば、政治に踏み込んでみたり、小説を書いてみたり、塾をやってみたり、本を出してみたり、メディアに出てみたり、、、(ぜんぶ僕です)。それはそれで大事なことだと今も思いますけど、でも、それが変革の主体になりえたのは数十年前の話で、明らかに、現在の変革の主体は「テクノロジー」なわけです。「テクノロジー」との本質的な関わりを抜きに何かをしようとしても、なかなかうまく行かない。なんか「ぱっとしない」感じがつきまとってしまう。結局、想いだけが空回りして、諦めざるをえない。あるいは、想いを見失ってしまって、平凡な感じになってしまったり、邪悪な淵に落ちてしまったりする。そういうこと、なんとなく身近でも感じませんか。

  • 逆に、理系の人は「人間」や「社会」にあまり関心を持たない。だから「社会を変革する」みたいな想いは文系の人ほど強烈なことは少ない。むしろ何かの技術の面白さにのみ熱中する。それが時にノーベル賞になるわけだけど、一方で、「理系」って技術オタクに偏ったイメージがあるじゃないですか。人間とか社会とかをあまり考えない「技術オタク」な感じの人。それ自体は悪いわけではないけれど、そればかりになってしまうのは、問題も孕んでいると思う。そうした「文系」「理系」の隔たりは、もともとの人間的性向にも由来するだろうけれども、この国の教育も大きな要因だと思う。たとえば、文系と理系がおもいっきり分かれてるでしょう。東大のシステムからしてそうじゃないですか。文Ⅰとか理Ⅲって何なんだ?と思いませんか。百歩譲って、そういう分類がシステム上必要だとしても、その壁があまりに離れすぎてやいませんか。東大の受験システムの話じゃなくて、僕らの意識の話ですよ。

  • 文系は文系、理系は理系。そういう壁があることによって、僕らはものすごく大きな損をしている。おそらく、まっとうに社会に対して何かをするためには、その両者が必要なんだ。文系の人は理系を学ぶべきだし、理系の人は文系を学ぶべきだ。ここでは文系と理系と言ったけれども、要するに「人間」と「テクノロジー」のことです。社会を変えたいのなら、その主たる構成要素である両者を学ぶ必要がある。どちらか一方では、明らかに社会に対する歪みを抱える。

  • そういうのって、もったいないと思うんだ。報われずに死んだ想いは簡単に成仏しない。諦めや憎しみという形で誰かや何かに仕返しをする。でも、そんなのもったいない。熱い想いがあるのなら、それをきちんとぶつけようぜ。どこに?「テクノロジー」に。すくなくとも、文系の人間にとっては、とりわけ例えば僕の母校である早稲田の文系学部みたいに理系から遠く隔たって文系のことしか見えない人間で、熱い想いを抱えていて、その想いを無駄なものにしたくないのなら、文系の青年よ、Rubyを学べ、というのが現時点での僕の考えです(テクノロジーというのは大雑把すぎる言葉で、いろんなものがあるし、Rubyなんてそのごくごく部分的な存在であり、人の固有性や方向によって何を学ぶべきかは異なるのは当然けれども、そうした前提を踏まえた上でも、文系の個人が社会や大きな組織と立ち向かい、変革するための武器として学ぶ価値のあるものとして、今日時点で、これ以上のものは僕には思い浮かばない)

  • 思うんだけど、これは僕の母校ではとりわけ大きな問題だ。それなりに理系的素養を持っている人間は、文系にもいると思います。でも、いつしか文系的人間の中で埋もれてしまう。そういう素質を持つ人が理系的方向に踏み出すことは、文系と理系の壁を突き崩す起点になると思う。逆に、理系なのに文系的才能を持っている人はごまんといるだろうし、そういう人が伸び伸びと両方の才能を伸ばした時に、バランスの取れた姿を見せるのではないかなぁ。。。

  • もちろん合ってるか分かりませんけど、僕はそう信じてやっていきます。間違ってたら、あとで間違ってたと言うよ。懺悔はしないけど、その時は、きちんと申し開きはします。たぶんあってると思いますが。とにかく、僕はテクノロジーに出会えてよかった。Rubyがあってよかった。村上春樹が29歳の終わりに天から小説を書くというプレゼントを受け取ったように、僕は30歳でRubyを受け取りましたよ。Matz本当にありがとうと僕は毎日つぶやきながら眠りに落ちてます。

 

この一ヶ月でやったことの記録

  • 平均で一日8時間くらい(月に240時間くらい)Rubyを学んだ。一日やれない日も時々あり、やる日はだいたい一日中15時間くらい。

    具体的に言うと、

  • Rubyの本を5冊読んだ。
    (目を通した文献やウェブサイトは数え切れないけど、Rubyの学習書として丁寧に読んだのは、読んだ順で以下の通り。たった2日でできるRuby(立ち読み)、HerokuではじめるRailsプログラミング入門(いろいろ考えてこれ選んだけど今ならRuby on Rails 4 アプリケーションプログラミングの方が良かったと思う。バージョンの古い情報は大変だった)、Ruby on Rails チュートリアル(テストすっ飛ばし!)、たのしいRuby 第4版(いい本だけど、楽しくなくて眠くなった!)、パーフェクト Ruby on Rails(ぎゅっと詰まってるぶん理解が大変!)、の5冊。現時点で、チュートリアル以降は一読してまだ未消化なので、次の一ヶ月できっちり身につけます)

  • ドットインストールのプログラミング学習者向け動画を観た。
    (観た動画: Ruby on Rails 4入門 (全28回)、Ruby入門 (全23回)、Bootstrap 3.0入門 (全18回)、Heroku入門 (全12回)、ActiveRecord入門 (全14回) 。これ作った人、神かと思った。日本人のプログラミング独学者の救いです。英語のサイトならたくさんあって、英語の勉強ついでにできないかなーと思ったけど、ニュースやドラマや映画ならともかく、正確な理解が必要なプログラミング学習では僕には無理だった。)

  • あとはひたすらプログラミング!
    (これがいちばん大変!エラーばかり出て(僕の検索能力でも)なかなか解決しない。あまりに大変なので、ノリノリで行くために、作業用BGMにGroovesharkでEurodanceを聴きまくってたらダンスミュージックが好きになってきた)

    だいたいプログラミングに関してはそんな感じで、ほかには、、、

  • 一緒にはじめる仲間とごにょごにょと打ち合わせをたくさんした(濃密な時間で、激しく前進した)。これはまた別に書きたい。

  • ベネッセがやっているEdTech Lab(β)に行ってきた。勉強になったなぁ。

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

 
  • プロトタイプを作った後、使ってもらって、僕が指導もして、お金をいただいた
    (数万の話だけど、startupの最初の売上は大事なんです。それが一ヶ月でできるこの時代! プロトタイプは
    こちらから見れます(こっそり)。※後でリセットするので、いじってもらっても大丈夫ですが、まだバグだらけでエラー多いです。最低限、「生徒情報」と「先生情報」を登録してからいじってください。できれば、いじったら元に戻してもらえるとありがたいです)

  • プロトタイプ後、何人かに声をかけて話を聞いてもらったりアドバイスをもらったりした(どうもありがとう!また話そう!)

  • 近くでやっていたRuby勉強会「Yokohama.rb」に参加した。
    (それまで僕は完全な独学&ほぼRailsだけの勉強だったので、ここで本当のプログラマーとは何なのかを教えてもらうとともに、プログラミングの凄まじさに直に触れることができた。これは貴重な経験だった。たくさんの人と話せて、プログラミングの世界のことを一気に学ぶこともできた。その上、ここで出会った@kayamaさんが「先日電車の帰りに相談をされて困っていそうだったので何かあれば気軽に話かけてください。」と言ってくれなければ、とても困った問題を抱えたままだったと思う。皆さんに感謝です。)


  • 平田オリザの新作『変身』をチケットを頂いて見に行ったのと、三重の松阪まで本居宣長の墓参に行ってきた。(これだけ事業と無関係っぽいけど「人間とは何か」「私塾とは何か」「学び・学問とはなにか」ってところで僕の中ではstartupとつながってます。墓参は、EdTechのstartupを始めるにあたって、日本の学問の神様にご挨拶するようなつもりで)

    奥墓

    遺言書

    宣長作の自画像

    鈴屋

・・・みたいなもんでしょうか。ほんとうにひたすらプログラミング&starupの一ヶ月でした。「30ruby記」たるタイトルに恥じない生活だと思いますが、あまり記録している余裕はない、、、ので、ここで時々まとめて書くのと、FacebookTwitterで時々つぶやくようにします。絡んでくれると喜びます。

 

最後に、ここまでいろいろ書いたので、本当にRubyやろうかなと思った人へのアドバイスというか、忠告も残しておきます。

 

  • まず、独学は非常に難しいということ。たまにでも相談できる人がいれば、困難さはさほど変わらないにせよ、心理的にだいぶ違う。じゃないと、エラーメッセージ出た時のつまり方が半端ないです。エラーメッセージの日本語回答はほぼゼロなので、そういう時はだいたい英語サイトを読むわけです。でも、なかなかうまくいかない→いろいろ調べながら試行錯誤→2,3時間があっという間に経つ→繰り返す→何も進展がないまま一日が終わる、なんてことがザラにあります。だからアドバイスをしてくれる人はとても貴重。僕は、上記のkayamaさんに数度相談した以外は完全に独学なので(そして今も独学なので)、大変といえば相変わらず大変です。

  • Rubyって「楽しい」とか、Railsってscaffoldとかあるから「簡単」とかって最初は思ってたんだけど、これは全然違います。確かに、Rubyはプログラミングの「楽しさ」を目指して作られて。それは分かる。すばらしい言語なんだろうと思う。Railsによって、開発をするための高速な「レール」が敷かれたのも実感しました。じゃないと、僕みたいな素人が一ヶ月で兎にも角にもサービスのプロトタイプを作って試してみる、ということはできなかったでしょう。それでも、強調したいのは、Rubyを本気で学び、身につけるのは大変だということ。HTMLをちょっとかじるのとは根本的に違う(それくらいは僕もやってました)。

  • 僕くらいのスタートの人は、ひと通りのことがわかり、自分でできるようになるために、おそらく、大学受験の英語をゼロからひと通り身につけるくらいの時間が要ります。つまり、僕流に言えば(DUOを3日で終わらせ、早稲田に半年で受かるという指導をしてきた僕流ということですが)、2〜3ヶ月の集中を必要とする、ということ。仕事で誰か先輩が教えてくれるような理想的な状況を除いて(僕にはそんなものはない)、それが最低条件だと思います。普通に仕事してたり、学校通ってたりだと、かなり難しいと思う。でも、逆にいえば、本気で学ぶ覚悟や情熱があれば、3ヶ月後にはプログラミングの世界に踏み入れられているということです。たぶん。そう信じて、あと2ヶ月やりまくります。そうやって3ヶ月走った後に、もう3ヶ月やれば(つまり3月末まで)、それなりの腕前になれるんじゃなかろうかというのが今の見込みです。また、報告します。

  • ちなみに、本気でやるなら「学び方」が大事です。ここは僕の専門領域なので、簡潔に言うと、作りたいものを明確に描き(出会うしかないわけだけど)、やり抜こうと、決意すること。ビジョンを描き、わくわくすること。その上で、学び方を調べて、考えながら実践すること。完成だけにこだわらずに、その過程を愛し、楽しむこと。なんだかんだいって、問題が解決でき、前進できた時の喜びは半端ないです。自分で何かを作り出すことができるというのも快楽に近い。それ以上のことはまだ言えないけれど、根源的には『学欲』に書いたことと変わらないと思います。