読者です 読者をやめる 読者になる 読者になる

かんがえちゅう!

出来寛祥です。多趣味に生きていこうと思って、楽器とかスポーツとかいろいろやってます。プログラミングも好き。

ウェブ未経験の僕が2ヶ月でウェブアプリを作るためにやった6ステップ

プログラミング プログラミング-講座

sponsor

一番楽そうだったのでRuby on Railsで作ることにしました。

f:id:hiroyoshi-deki:20151226235720j:plain

Ruby on Rails チュートリアルを3、4周した

現状でウェブアプリケーション作りに一番参入しやすい参考書というかページがここだと思います。

railstutorial.jp

このチュートリアルを周回して、とりあえず最低限のキーワードとかわかりやすい構造を覚えました。

何から手につけようと思った時に、プログラミング自体はある程度できるので、ウェブアプリに必要な機能とその実装方法がわかればいいなと思ったからです。

1周目はある程度丁寧に読んで、コードもコピペしながらエラーを治す日々。2周目以降は飛ばしながら細かい部分を拾っていきました。

これが終わった頃は、ほんとあやふやだけど、ウェブアプリケーションがどんなものなのかわかった状態です。プログラミングで実装する感覚が掴めた感じ。最初の1周にだいたい1週間かけて、2、3周目に半週かもうちょっとくらい使いました。合わせて1週間から2週間ほど。後述のドットインストールも後半は同時進行でした。

でも、まだググる力も付いていないのでチュートリアルの流れでしか作れない状態。

ちなみに、Rspecは全部すっ飛ばしました。ぼくの頭では別々のことを同時進行で学ぶのが無理でした。

ドットインストール Ruby on Rails4を一周した

dotinstall.com

別の流れでRailsに触れたかったので、いくつか探してドットインストールを選びました。というか、他にドットインストールかプロゲートくらいしかなかった。

プロゲートは勉強速度が遅い気がしているのでやめました。今回は2時間くらいで終われそうなドットインストールを選択。音で聴けるのもよかったと思う。

ドットインストールが終わったときには、Railsチュートリアルと同時進行してたので、まだ2週間くらい。

Rails Tutorial Githubのソースコードを読んだ

github.com

今までは、勉強のためにテキストを利用していましたが、実際に理解できるソースコードを読みながら頭の中にコードを実装するイメージを作りました。

ソースコードを読みながら理解できない部分や、中身がブラックボックスだった部分をググってより詳細な地図を頭の中に描けるようにしていきました。

これを1週間くらいやって、ここよくわからないという部分がほぼほぼなくなってきました。

ここで3週間ちょいなので、折り返しくらいです。

練習用プロジェクトを作りまくった

自分から機能を使っていく感覚をつけたかったので、rails newを何回もして、同じこと書きまくったり、次はこれやりたいなと思うことをどんどん書いていきました。このときは、すでにRuby on Rails チュートリアルは見ていませんでした。

自分でやりたいことに必要なGithubソースコードの該当部分がどこかわかったし、概念が掴めていてその記述方法がわからないだけだったことも多く、ググって解決していました。

これを2週間くらいやって、実際にアプリケーションを作るながれを体に染みつかせていきました。

このときに、自分でも気がつかなかったあやふやな部分がどんどん解消されていきました。自分であやふやだなと思ったのは

  • データベースから取得してきた値をクラス変数(@なんちゃら)に入れて、それがどうなっているのか
  • 変数の寿命
  • current_userが実は関数ということ
  • ruby自体が関数のカッコを省略できること

その他、思い出せないことがたくさんあったように思います。一つずつ実装しながら解消していきました。

終わった頃にはrailsの細かい部分がより明確になり、自分の足で歩いている感覚を持てました。後述のhas_secure_passwordも同時進行しました。

これを終えた頃の問題点は、ググる時間がコーディングの半分くらいを占めていたことです。だいぶ細かい部分を理解していても、記述方法がわからなかったり、より細かい裏側が気になったりしていました。

has_secure_passwordのソースコードを読んだ

githubにhas_secure_passwordのソースコードもあります。has_secure_passwordは関数ですが、多大な力を持っていて、だいぶ裏側で自動化されているように感じたので、実際に読んでみることにしました。

github.com

このソースコードを読んで、自分で理解できる実装がされていることを確認しました。

主な流れはパスワードと確認用パスワードを受け取って存在していれば、暗号化されたパスワードと、受け取ったパスワードを暗号化したものが一致するかどうか調べるだけです。

ここまでで、もう自分にはできないことがないんじゃないかと高揚感でいっぱいでした。もちろん、幻想なんですけど、その幻想でいろいろ乗り切りました。たのしかったです。時間としては1ヶ月と2週間半くらい。

Gemを探したり、Sublime Textをカスタマイズしたり

あとの1週間半は今までのながれを本当にさらっと繰り返したり、他のGemを探したりとチュートリアルでは説明されない部分を能動的に調べていきました。

いろいろと使いやすいGemが見つかって、今まで自分で実装していたのが馬鹿らしくなったり、楽しくなったり、井の中の蛙が井戸の壁から頭を出して、大きな海を眺め渡せるようになった気分でした。

逆に調べられることや、準備したいことが見えてきて、さらに時間が欲しくなりました。

まとめ!

現状、本当にわかりやすいテキストを探すのは難しいと思います。railsチュートリアルはなかでも扱いやすい方だと思います。がむしゃらに何周もして知識をつけたあと、練習用プロジェクトをいくつも作って、どんどん自分でコードを書けるようになるとあとは本当にRuby on Railsです。レイルの上を走っている気分でするべきことがどんどん見つかっていきます。

 

© 2015 かんがえちゅう!