Time is money

日常のこと、web関連、映画の感想について書いていきます

Ruby on Railsエンジニアを志す全ての人へ - 初めに手に取るべき最高の一冊

こんにちは。

気がついたら五月が終わろうとしています。

もうすぐ梅雨ですね。あの土の香りが結構好きです。

f:id:okutaku:20150523014438j:plain

 

さて、僕がエンジニアをしている「フットサルをもっと身近に。」をコンセプトにした個人参加型フットサル、ソーサルは全て"Ruby on Rails"というプログラミング言語"Ruby"で記述されたアプリケーションフレームワークで構築されています。

sosal.me

僕がRuby on Railsを始めるきっかけを与えてくれ、バイブルとしている参考書が2015/5/22に改訂されたので、ご紹介します。

これは僕の独断と偏見なので、むっとする方は聞き流してください。

 

初めに、その本とは黒田 努 著「改訂3版基礎 Ruby on Rails」です。

改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)

改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)

 

 この本がいかにRuby on Railsの教科書としてオススメかについて語りたいと思います。

 

1. Ruby on Railsとは

f:id:okutaku:20150523032211p:plain

Ruby on Railsは先ほども書いた通り、アプリを創るためのツールのようなものです。日本発のプログラミング言語Rubyで書かれていて、多くの企業がサーバーサイドで用いています。

Ruby on Railsについて詳しく知りたい方はここが詳しいです。

 

2. Ruby on Railsは最高に楽しい

f:id:okutaku:20150523032657j:plain

皆さんはプログラマ、エンジニアという職種についてどのような印象をお持ちでしょうか。暗い、地味、オタク、辛い…ネガティブなイメージを持たれやすい職種だと思います。

しかし、実際にプログラマの方、エンジニアの方と話してみるとそうでもありません。ネガティブなイメージは社会の闇が一人歩きしているだけだと思います。

エンジニアリングは頭の中のアイデアを具体化するプロセスであり、最高にクリエイティブです。

友人は「プログラミングは魔法だ」と表現していたのですが、本当にそうです。少なくとも、僕にとっては人生を変えるほどの魔法であったことは確かです。

 飽き性の僕が2年もプログラミングを続けてこれたのは、プログラミングが最高に楽しいからに他なりません。その楽しさは"Ruby on Rails"だから感じることだと思っています。これには否定的な意見をお持ちの方もいると思うのですが、「Ruby on Railsは書いていて楽しい」と良く言われます。実際に書いてみると、わかりやすいアーキテクチャで、話言葉に近い文法、決まりきった型があるからこそ簡単にアプリが作れるなどが分ります。自分で書いたプログラムがすぐに動きだし、ブラウザで見ることができ、創る喜びを瞬時に実感できるからだと思います。

 

3. Ruby on Railsは最速かつ最小でアイデアを形にする

f:id:okutaku:20150523033219j:plain

僕はRuby on Rails

「エンジニアの生産性を最大化させるソルーション」

だと思っています。簡単なアプリケーションであれば、ちゃんと訓練することで瞬時に構築でき、自分が書くコードもそんなに多くはありません。

自分の頭の中にあるアイデアを最速で形にし、世に出すことをRuby on Railsは可能にしてくれます。

その例として、僕がエンジニアを務めるソーサル( https://sosal.me )は開発着手から2か月余りで公開されました。最小の機能だけですが。

また、その根拠として、自分たちのアイデアをすぐに形にして世に出し検証する必要があるスタートアップの方々はよくRuby on Railsを選択します。ここまで多くのサービスがRuby on Railsを採用するのは、それがただ単に注目されているテクノロジーだからだけではないと思われます。

 

4. なぜ「改訂3版基礎 Ruby on Rails」 をオススメするのか

さて、ここからが本題です。

この「改訂3版基礎 Ruby on Rails」は2015/5/22に改訂され、最新のRubyRuby on Railsをサポートしているため、今から買うのであればこの改訂3版を手にしてください。

僕は、大学1年の終わりに、知人の勧めでアプリを開発しようとぼんやりと思い池袋のジュンク堂にいきました。webについて何も知らなかったため、どの本が初心者向けなのか、イスに腰掛け、何冊もイントロダクションを読んでいました。しかし、どの本を開いても「やっぱりプログラミングは難しい」という印象だけでした。その中で出会ったのが、今回オススメする本の前のバージョンでした。感じたのは、この本はすごく親切に書かれているなということで、初心者に優しそうな印象でした。あくまで印象です。このような参考書は単価が高く、そうほいほい買えるものではないため、どの一冊にしようと考えた時に、"なんとなく"この本にしようと感じたのです。

 

実際に一周やろうと思いました。この時は何も知識がありません。

最初の方で詰まりました。

これが独学の最大のデメリットです。詰まったらどうしようもない。答えの見つけ方もまだわからない。どうしようもない。さて…笑

僕は高いお金を出したので、どうしても許せませんでした。なぜ、本通りにやっているのに先に進めないんだ。これは著者に問題ありだろ。勝手に解釈しました。

僕は著者の黒田さんにメールをしたところ、すぐに解決策を教えてくれました。単純な僕はすごく感動しました。本通りにやっていると思っていたけれども、それはただ単に手順を間違えて勝手に詰まっているだけで、著者の方に非はないのに、ここまで親切に教えてくれるのかと。

こうして本の最後まで勉強してみると・・・

何もわからない。何がどうなって、このサイトができているのか。本当に何もわからない。

これが結末かと思いました。独学では限界がある。そうに思いました。

 

ただ、救いだったのは、この本には"実際に一つのサイトを自分の手で構築していく手段"が書かれていることです。ここが他の参考書と大きく違うポイントだと思います。実際に創ることを通してRuby on Railsが学べる。今だからこそ、そうに思うことができるのですが、その時の僕にはちんぷんかんぷんでした。

そこで僕は、二週目をやることにしました。二週目を終えるとなんとなくわかってきました。リンクの作り方、データの保存の仕方、本当になんとなくです。

次に僕は、三周目をただ単に復習するのではなく、自分のアイデアに置き換えました。その時に実際に創ったのが「大学講義情報収集サイト」です。アイデアは違えど、やっていることはこの本と同じことで、ユーザーがいて、ログインでき、自分の記事を講義情報として投稿できるだけ。この本に書かれている内容とまったく同じことです。

f:id:okutaku:20150523030020p:plain

f:id:okutaku:20150523030029p:plain

f:id:okutaku:20150523030037p:plain

 

しかし、このアプリをある程度作った段階で、自分の頭の中のアイデアが形になる楽しさや喜びを感じることができました。ただ単純に、「プログラミングすげー!!!」と思いました。

僕がこの感覚を持てたのは、この本がすぐに自分のアイデアをある程度現実化できるように、webアプリに必要と思われる最小限の機能について書いてあるからだと思います。自分のアイデアにすぐに置き換えることができるように設計されています。

 

長々と書いてしまいましたが、僕が「改訂3版基礎 Ruby on Rails」をオススメする理由を一言で言うと、

「実際に創ることを通してRuby on Railsが楽しく学べる」

からです。

勉強も部活もそうです。説明されているだけだと頭に入ってこないし、楽しくもなんともない。自分で体験することで、その面白さに気が付くんだと僕は思います。

 

オススメの学習法としては「改訂3版基礎 Ruby on Rails」を最低三周することです。最後の周は自分のアイデアにできる限り置き換えて勉強してみてください。本にないことはできるだけすぐに検索してみてください。きっと自分と同じ悩みを持った人がいて、すでに答えが導きだされています。

 

僕の今開発するソーサルもこの本のアプリ構築に必要な基本的な機能をトレースする形で作られています。実際にwebサービスを構築したい人は、一冊持っておいて損はないと思います。他の本やオンラインプログラミング学習サービスなどを使ったことがないため、比較することは避けますが、少なくとも僕はこの本を初めに手にとって正解だったと思っています。

もし、この記事を読んで少しでも興味を持っていただけた方は、是非本屋に足を運んだ際に手に取ってみてください。

 

改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)

改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)

 

 

長々とすみませんでした。

お読みいただいき、本当にありがとうございました。

 

ご連絡Twitterで!

twitter.com