こんにちは,学生エンジニアの迫佑樹(@yuki_99_s)です.
先日,『Webサービスをリリースしたいけど,何をどういう手順で学んでいけばいいかがわからない』といった質問をいただきました.
とりあえず,以下の4つを学んでWebアプリを公開してみると良いかと!
・HTML/CSS
・Ruby基礎
・Ruby on Rails
・AWS
他にもWeb系スキルはたくさんありますが,とりあえず. #peing #質問箱 https://t.co/rcOmg034gR pic.twitter.com/eSSgxUh9A8— 迫 佑樹@春休み突入! (@yuki_99_s) 2018年2月5日
それに対して僕は,とりあえず「Webサービスを開発してリリースする」という手順を一通り体験するなら,以下の4つをまず学んでみることをオススメしました.
- 『HTML/CSS』フロントエンドの基礎学習
- 『Ruby』プログラミング言語に関して学ぶ
- 『Ruby on Rails』サーバサイドのプログラミングを学ぶ
- 『AWS』インフラを学び,アプリ公開
今回は,『Webサービスリリースにあたって,できる限りお金をかけずに必要なプログラミングスキルをつける手順』ということで,上記について学ぶ際に参考になる学習サイト等を含めてご紹介できればなと思います.
目次
なぜRailsを初心者にオススメするの?
先ほど示した手順をみてもらえばわかるように,今回私はRuby及びRuby on Railsを用いることをオススメしています.
もちろん,他にもWebサービス開発のための言語・フレームワークはたくさんあります.
しかし,初心者がまずプログラミングを学ぶにあたって,『学習ツールが充実していること』,『ググって得られる情報が多いこと』などを考慮してRailsを用いた開発を学んでみることを勧めました
また,多くのプログラミングスクールでRuby on Railsを用いたWebサービス開発のカリキュラムが用意されているので,独学で挫折した際もその知識をそのまま活かすことができます.
Ruby on Railsは初めはとっつきにくいところもありますが,慣れれば爆速でサービス開発ができるので.『個人でサービスを開発したい』という方にも最適かなと.
今回は,できるだけお金をかけずに学ぶことを重視
プログラミングスクールに関する記事は多く書いているので,今回はスクールに通わずに独学するにはどうすれば良いかを解説します.
もちろん,プログラミングスクールにお世話になれば疑問点を即解消できるので時間効率はめちゃめちゃいいです.
ただ,プログラミングスクールは結構高額なので,今回はできるだけお金をかけずに最低限の技術をつける方法をお伝えできればなと思います.
本記事で紹介しているものでかかる費用といえば,Progateの有料会員費用980円くらい.
Progate(https://prog-8.com)は月額980円で基礎をがっつり学べるので,それくらいは自己投資しましょう!
手順1 HTML/CSSを学ぶ
Webサービスを開発するなら,避けて通れないのが『Webページを作り,それをデザインするスキル』であるHTML及びCSSを学ぶこと.
HTML/CSSを初心者が学ぶためのサイトとしては,以下がオススメ.
ゲーム感覚でプログラミングを学べるProgateと3分の動画でサクサク学べるドットインストールを併用することで,HTML/CSSの基礎はマスターできるはず.
以下のような手順で進めてみてください.
- Progateの『HTML/CSS初級編』で基礎的なタグ,デザインの付け方を学ぶ
- Progateの『HTML/CSS中級編』で実際のWebページ作成の流れを学ぶ(有料)
- ドットインストール『HTML入門』でタグの復習,自分で1からファイルを作ってHTMLを書く
- ドットインストール『CSS入門』でCSSセレクタ,プロパティ等を詳しく学ぶ
- Progateの『HTML/CSS上級編』でレスポンシブデザインについて学ぶ(有料)
- ドットインストール『実践!ウェブサイトを作ろう』で実際にサイトを作ってみる
必要に応じて,Progateの実践編や道場編で理解度チェックを行なってください.
手順2 Rubyの基礎を学ぶ
HTML/CSSを一通り学べたら,いよいよプログラミング言語であるRubyの基礎を学ぶ段階.
こちらも,同様にProgate及びドットインストールを使って学んでいけばOKかと思います.
- Progateの「Ruby編」
- Progateの「Command Line」
- ドットインストールの「ローカル開発環境」Mac編,Windows編
- ドットインストールの「Ruby入門」
プログラミングを学ぶ際は,環境構築やコマンドラインに関する知識も必要になって来るので,ここで一緒に学びましょう.
- Progateの『RubyI,II』で基礎文法を学ぶ
- Progateの『RubyIII,IV』でオブジェクト指向に関して学ぶ
- Progateの『Command Line 基礎編』でコマンド類を学習
- ドットインストールの『ローカル開発環境構築』で自分のPCに環境構築
- ドットインストールの『Ruby入門』で自分のPC上でRubyを復習
条件分岐や繰り返し,メソッドやハッシュなどのRubyの基礎がわかるようになってればここはクリア.
手順3 RailsでWebアプリを作る
ここからは,WebアプリケーションフレームワークであるRuby on Railsについて学びます.
Ruby on Railsに関しては,正直ドットインストールの説明は丁寧とは言えません
なので,Progateで基礎を確認,ドットインストールで復習,Railsチュートリアルで実装力をつける以下の流れが良いかと思います.
- Progateの『Ruby on Rails5 Ⅰ〜Ⅺ』で基礎を確認(2,3周やることを推奨)
- ドットインストール『Ruby on Rails 5入門』で復習しながら簡単なブログアプリを開発
- ドットインストール『Active Record入門』でDB周りの知識を深める
- Railsチュートリアルを一通りやって,アプリ開発が可能なレベルまで持っていく
- オリジナルサービスを一個作ってみる(重要)
正直,Railsチュートリアルはプログラミング初心者には少しハードルは高めです.
ただ,Progateとドットインストールをやって基礎がわかった後であればRailsチュートリアルは程よいレベルなはず.
Railsチュートリアルでは,ログイン機能やユーザ管理,データの投稿や編集,削除機能がついたWebサービスを実際に開発するので実践的なスキルをつけることができます.
ここまでやれば,十分オリジナルサービスを作るだけのスキルはついているはずなので,手を動かしてオリジナルサービスを一個作ってみましょう.それが一番勉強になるはず
手順4 AWSを学び,サービスを公開する
AWSとは,アマゾンウェブサービスの略で,アマゾンが提供しているクラウドサービスです.
AWSでできることは膨大すぎて全てを学ぶのは大変ですが,『Webサービスを公開すること』を目的としてまずは必要なところを学んでいけばいいと思います
AWSに関しては,ここまでとは違ってProgateにカリキュラムは存在していないので,ドットインストールで一通り学んだあとは自分で調べたりAWSの公式ドキュメントを読んでいく必要があります
- ドットインストールの『Amazon Web Services入門』で仮想サーバを立ててみる
- EC2をいじって静的なWebサイトを公開してみる
- EIP,RouteS3を設定し独自ドメインを設定してみる
- AMIでイメージを作成する練習をしてみる
- RDSを学び,データベースを構築する
- オリジナルサービスをAWSを使って公開してみる
「Railsアプリ AWS」などで検索すれば多くの記事が出てくるので,それにしたがってデプロイ(公開)の作業を行いながら,わからない単語を都度ググって進めていくのが一番効率がいいと思います.
ここから先の学び
ここまでやれれば,ある程度のプログラミングスキルは付いているはず.
そして,この段階まで行ければ『ここから先,自分が作りたいものはどんな技術を習得すれば実現可能か』が自分でわかるようになってると思います
ここで紹介したものは必要最低限で,JavaScriptやGit,各種APIの使い方など学ぶことは無限にあります.ただまぁ必要に応じて必要な時に技術をつけていけば良いでしょう.
まとめ
このように,基本的にはProgateとドットインストール,Railsチュートリアルの3つを使い倒すことでほとんどお金をかけずにWebサービスリリースレベルなら独学で到達が可能です.
必要に応じて,書籍等も準備すると良いですが,基本は手を動かしながら・ものを作りながらスキルを上げて行くことを意識してください
また,何か困ったことがあったらGoogleに頼ったり,プログラミング初学者のための質問サービスteratailやQiita,Stack overflowあたりを使い倒して,自力で解決していけばかなり力がつくはず.
今回紹介したように完全独学でも力はつけられますが,やっぱり周りに聞ける人がいるのはかなり大きいので,プログラミング学習に数万円の投資ができる方は,プログラミングスクールへ行くことも検討してみると良いと思います
学ぶツール,情報サイトは揃っています.あとはやるかやらないか.自分のアイデアを形にする『プログラミング』というスキル,つけておいて損はないはず.