今ありとあらゆるところで、これからがプログラミングだとかエンジニアが熱いだの耳にします。ベンチャー界隈やディープラーニング(人工知能)の最先端の研究をしているIT企業でも、優秀なプログラマーはの喉から手が出るほど欲しいって言ってます。
僕は今大学3年なのですが、2年ほど前からWEBアプリ開発の勉強しはじめ、今はRuby on RailsというWEBアプリ開発のフレームワークを使いこなし、ある程度のものならなんでも作れるような状態になりました。
2018年2月現在で、この記事は1年ほど前に書いたものですが今でも十分価値のある記事だと思うので、加筆修正して後悔し続けることにします。
—-
Railsでコードを書き欲しい機能を実装させ、本番環境にデプロイ(アプリを公開すること)まで一通りできるようになったのでここで記事にして、習得までの険しく曲がりくねった道のりをまとめたいと思います。
この記事は、gitの使い方やプログラミング言語の詳しい説明は一切抜きにして、プログラミングのまったくの未経験者が、どのWEB開発ができるようにどのような道を辿ればいいかいわゆる道標的な存在として書いています。
これを読んでいる段階で、技術も知識もない人でも一通り全体像を掴み全体を俯瞰できるようになること。
どこまで勉強すれば自分自身のサービスを作れるかを分かっていることは、モチベーション維持に絶対に必要です。
使用する言語
僕はrubyという言語を用いたWEBアプリ開発によく用いられているフレームワーク、Ruby on RailsでWEB開発をしました。
まず初心者はどの言語を勉強すればいいかもわからないと思うんですが、WEB系の開発をしたいなら、Ruby on Railsを勉強して後悔は絶対にしないと言われています。ちなみにRubyはプログラミング言語、RailsはRubyを用いたWEBアプリ開発のフレームワークのことをさします。ちなみにRubyはかなり広範の領域で使える言語なので、将来人工知能の研究やエンジニアなどのキャリア設計をしている人にも絶対に役たちます。C言語やJavaよりも学習しやすいので、今までプログラミングでつまづいていた人にもRubyで再挑戦してみることを激押しします。
Ruby on Railsで作れるサイト
・Mery,Locariのようなキュレーションサイト。またよくある出会い系サービスなど
・来店市場など商品を売り買いできるオリジナルECサイト
・会員ログイン機能などがついたマッチングサイト
など。僕も全然イメージできていないのですが、アイディア次第ではほとんどのWEBサービスが作れると思います。
Railsの信用に値する参考書を一冊持つ
今ネットでググればば必要な情報は全部出てきたりするんですが、それでも僕は一冊信用に値する参考書を一冊持つことをお勧めします。
人間は忘却の生き物と言うように、繰り返し同じ情報をインプットしないと得た知識ってどんどんブラックホールに吸い込まれるがごとく消えてしまうんですよね。僕は最低限必要なインプットはすぐに終わらせて、開発早くしたいと思っていたので本を一冊買って、それをバイブルとして最低限の知識は全部頭に入れ込みました。
随時わからないところはググってくスタイルもいいんですが、僕みたいな不器用なシングルタスクの人間はわかりやすいレファレンスをもとに、一気に知識をインプットする方がストレスなくできるような気もします。
涙の数だけ笑顔があるように人間の数だけ勉強法があると思うので、全員に勧めるわけではないのですが、僕はパーフェクトRubu on Railsを一冊、これだけを買ってかなり正解だと思っています。Railsは覚えるべきメソッドや独特なルールがめちゃくそ多いので。(命名法などがいつまでたっても身に付かない人は、やっぱりバイブルとなる本を持っていない人が多い印象です)
ちなみに Railsならこの本一択です。何冊も本は買いたくないので、これ一冊でイケる!っていうのがミソです。
初心者がゼロから始める勉強サイクル
当たり前なんですけど、身近にプログラミングのことを教えてくれる人がいない場合、最初に何をすべきか教えてくれる人がいないので、立ち往生する人が多いです。
基本的にゼロから、RailsでWEB開発する場合、
【①Ruby,Railsの開発環境の構築】→【②言語の勉強&プログラムの作成】→【③本番環境にあげる】
の流れです。僕はプログラム開始して数ヶ月のひよっこなので、①の開発環境の構築は人に伝えられるだけの知識がないので、今回は軽く触れるだけにして②の部分を重点的に解説していこうと思います。
プログラミングの勉強のコツは、とにかく全体感を持つこと
Rubyに限らず、プログラミング言語の勉強の過程で苦しみを感じる人は死ぬほど多いです。僕も今までの人生幾度となく挫折してきて、その数足の指を使わないと数えられないほどです。
僕の場合、最終的にプログラミングをある程度マスターすることができたのは、下記に紹介するようなドットインストールやProgateといった最近のサービスが、将来的にプログラミングを勉強することでどんなサービスを作ることができるか見せてくれたから。
とにかく目の前のコードで頭がいっぱいになるとプログラミングはつまらなく思えてしまうので、頑張って将来自分が作りたいサービスを思い浮かべるのがポイントです。
①Ruby, Railsの開発環境の構築
それではまず最初。
プログラミング初心者が最初につまづくところが、一番最初の開発環境の構築。プログラミングって、HTMLとかCSSと違い普通のパソコンのブラウザじゃ起動してくれないので、自分のパソコンにプログラムを動かせる開発環境を構築する必要があります。
ドットインストール
ドットインストールではRailsを動かすために、どうに環境を構築すればいいか書かれています。
開発環境の構築編(Unixコマンド編,Vagrant編)
ローカル開発環境の構築 [MacOS X編] (全9回) – プログラミングならドットインストール
を見れば、最低限開発環境を整えることができるでしょう。
黒い画面(ターミナル)を恐れるな
Macユーザーの前提で話を進めると、プログラミングを学ぶ上でよくプログラマーが使っているあの黒い画面。映画なんかでハッカーが使ってそうなあの画面。
この画面は避けて通れないので我慢するしかないです。
僕自身最初は、この黒い画面が嫌でドットインストールを進めながらこの画面に吸い込まれていくようで、WEBアプリ開発を何度も諦めかけました。多分一人なら泣いていたと思います。
ドットインストールは、最近誕生したエンジニアは例外なくみんな学習しているという、エンジニア産出学校みたいなものなので、わりとエンジニア同士で話すときドットインストールの話題で盛り上がることが多々。そんくらいドットインストールの効能は半端ないです。
ドットインストールの動画に沿って勉強することで、イメージを膨らませながら勉強をすすめることができます。
なおVagrantとかCentosってそもそもなんだ?と思うかもしれないですが、最初は飛ばして結構です。Railsでコードをガリガリかけるようになってきて後に、紹介する

実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング
- 作者: 黒田努
- 出版社/メーカー: インプレス
- 発売日: 2014/06/27
- メディア: Kindle版
- この商品を含むブログを見る
この実践Ruby on Railsで勉強することで、仮想環境についての理解が深まるので最初はとにかく、全体感を掴むことを意識して勉強してください。
②Ruby言語の勉強、Ruby+Railsでサンプルプログラムの作成
いよいよ開発環境の構築が済んだら、コードを勉強していきます。といっても、今の時代プログラミングの勉強をするのに、参考書から入りません。ここでもドットインストールの出番です。
WEBアプリを作るのに、実はRuby on Rails以外にもphp,perl,phythonなどの言語があるのですが、ここでは迷わずRuby編とRails編を学習します。また余力があれば、Active Record編も学習すると良いでしょう。
プログラミングの上達の一番の近道は、インプットとアウトプットのサイクルをいかに高速で回すか。ドットインストールはあくまでもRuby,やRailsのインプットの場なので、それだけではWEBアプリを開発することはできません。
アウトプットの場としてのProgateを使う。
Progateは開発環境を構築しなくても、オンライン上でコードを書きかながら勉強をすすめることができるサービスです。
Ruby編、Rails編がそれぞれ初級・中級・上級編とあるので、それぞれ3周以上やります。
チュートリアル付きで比較的簡単に勉強することもあるんですが、ルーティングやRubyのクラスに関するところなど一部、難しくて手が止まることもあるのですが、その場合ドットインストールとを行きつ戻りつして、覚えきれていない知識を少しずつ固めていきます。
ただし、Ruby編、Rails編ともに中級コース以上は課金しないとレッスンができないため、無料でどうにか技術を身につけたいと思う人は、(このマインド実はかなり大事)海外サイトの『Code Academy』を利用することをおすすめします。
暗黙の了解ですが、前述のProgarteはスタートアップ業界では頭角をどんどん出してきていて界隈ではそれなりに注目を集めているサービスなのですが、そのコンテンツ自体は『Code Academy』の丸パクリ。。デザインのみならず機能面でも。
なので個人的な所感としては、英語が不自由なく使いこなせるなら『Code Academy』で学習するのでも問題ないと思います。Progateよりも部分的に内容が充実しているところもあります。
ただ実際僕が力をつけたのは『Progate』で、これを何度も反復して勉強したらかなりの力がついたので、できるなら『Progate』をおすすめします。実例として僕がいるという意味で。
ある程度力がついてきたら、次のステップへ行きましょう。
定番中の定番。Rails チュートリアルを勉強する。
Railsの勉強で定番中の定番ですね。サッカーでいうバルサみたいなもの。最近Railsを習得している人は絶対にこのサイトのお世話になっているはずです。
僕がいまシェアオフィスで働いていますが、Railsチュートリアルで勉強しているエンジニアの卵、本当によく見かけます。
チュートリアルは全部で13章あるのですが、Progateとドットインストールを何周もしている人ならば、ログインログアウトシステムの実装のところでつまづくくらいで、あとはスイスイ進められるはずです。
最低2周はしましょう。
さらに高度な参考書を見にこなせば、開発者として一人前になれます。
Rails 関係で最近発売された本で、かなり評判が良いのはこの本。

実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング
- 作者: 黒田努
- 出版社/メーカー: インプレスジャパン
- 発売日: 2014/05/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
僕も愛用して3回くらいサンプルのアプリを作りましたが、(300ページ以上のボリュームで1つのWEBアプリケーションを作るので、実践といっても一人でサービスを作るくらいの実力は軽くつきます)
RubyとRailsをなんとなく分かってきた人が次のステップに行くためには
ある程度RubyやRailsができるようになった人向けに、脱初心者ができるオススメの記事を紹介します。
メタプログラミングRuby
Rubyは初心者にはかなり手をつけやすい言語ですが、実はかなり奥が深いんです。
メタプログラミングはRubyの特徴であり、「動的にメソッドやクラス、オブジェクト」が作成でいるRubyの言語仕様です。
これを身に付けることで、Railsで標準採用されているActiveRecordやActiveSupportの動きなどを理解できるようになります。
– instance_eval
– class_eval
– シングルとんメソッド、特異クラス
– proc, lamdaの違い
などの違いが自分の中で明確に理解できるようになります。
またRubyのメソッドがどのように呼ばれるか、みたいな勉強を始めたばかりの人だと普段あまり意識しないような本質的なコードの動きが終えるようになります。
Crafting Rails 4

Crafting Rails 4 Applications: Expert Practices for Everyday Rails Development (The Facets of Ruby)
- 作者: Jose Valim,Brian P. Hogan
- 出版社/メーカー: Pragmatic Bookshelf
- 発売日: 2013/11/24
- メディア: ペーパーバック
- この商品を含むブログを見る
英語の本ですが、Railsの仕組みを詳しく解説してくれています。
初学者だと当たり前に使っているgemを自分で作って見たり、controllerでよく用いられているrenderメソッドと同じような動きをするメソッドをRailsの起動シーケンス時にパッチを当てて実装するようなことを教えてくれます。
英語な上、内容もかなり高度になっていますが、Rails脱初心者向けにはかなりオススメの本です。
オブジェクト指向設計実践ガイド

オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
- 作者: Sandi Metz,?山泰基
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/02
- メディア: 大型本
- この商品を含むブログ (1件) を見る
オブジェクト指向はプログラミングを勉強する上で避けては通れないですが、この本はRubyのサンプルコードでオブジェクト志向を解説してくれるので理解が早くなるのでオススメです。
まとめ
開発環境の構築など、WEB開発をしていていわゆるハマるところなどは、Qiita – プログラマの技術情報共有サービスなどでググれば大抵出てくると思います。
言語って概念や文法が分かっていても、実際に使いこなせ自分の血肉レベルで運用するためには時間がかかります。エンジニアはコードをなんぼ書いたかが習得への最短の近道なんて言われているので、臆することなくコードを書きまくって失敗して成長していきましょう。
ドットインストールやチュートリアルでインプットし、Progateや実際の自分の環境でコードを書く。これをしまくることで、どんどん習得の速度は早まります。僕もまだまだRails習得過程ですので、一緒に頑張っていきましょう!