どうも、フリーランスエンジニアのまっきー(@nobita_x009)です。
最近は、Webエンジニアになるべく、独学で勉強をされている人をよく見るようになりました。
プログラミング勉強する際に、必ずつまずくポイントとなっているのが「開発環境構築」。
プログラミング勉強しようと思って、とりあえず書籍やサイトを見ていると出て来る魔のワード。


開発したいんだから環境作るのは、当たり前と言えば当たり前なんですが、一行もプログラミング言語を書かないまま、結構な人数がここで脱落するのも事実。
(そうです、かつての僕です。何度、挫折したことか・・・)
でも最近はProgateなど、開発環境構築なしでプログラミングの基礎が学べるサービスが出てきて、プログラミング学習のハードルはグッと下がりました。
あとは、AWS cloud9など、簡単にブラウザベースの開発環境を構築できるサービスもあるので、それを利用して勉強している人もいるかと思います。
(RubyのRailsチュートリアルは環境構築はCloud9を推奨してます。)
こういったサービスは素晴らしすぎるのでバンバン使ったらいいと思うのですが、僕はどこかのタイミングで、ローカル開発環境を作るのをおすすめします。
ローカル開発環境を構築をおすすめする理由
僕がローカル開発環境構築をおすすめする理由は2つ。
- 現状、クラウド環境上で開発する現場がほとんどない
- どうやってサービスが動いているかの理解になる
現状、クラウド環境上で開発する現場がほとんどない
現状、と書いたのはCloud9がAmazonWebService傘下となったので、もしかしたら今後実務でもスタンダードの一つとなって行くかもしれませんので、現状と書きました。
まぁでも僕が関わっている現場や、知り合いのエンジニアに聞いても、クラウド環境上で開発をメインでやっているって現場は今のところないです。
となると、もうどうやってもローカル開発環境構築は避けて通れないのです。
どうやってWebサービスが動いているのかの理解になる
ProgateやAWS Cloud9を使ってプログラミングできる環境を作っていると、とりあえずプログラム書いて動かせちゃうので、どうやってサービスが動いているのか、分からないまま進めちゃう場合も多いのかなって思います。
でも実務レベルではそういうわけには行かなくって、必ず実際のサービスが動いてる環境の理解が必要になります。
- サーバーは何で
- サーバ内で何が動いていて
- どこにソースを配置して
- etc…
覚えることは色々あるんですが(僕もまだまだ勉強中。。)ただその第一ステップとして、ローカル開発環境を作ることで環境の理解が深まるのかなって考えです。
どのような環境を作るべきか?
で、こっからが本題なんですが、
「じゃあどのような環境を構築するのがおすすめなのか?」です。
いろいろ方法はあるんですが、僕がおすすめするのは「Vagrant+VirtualBoxで仮想サーバーを構築して動かす」です。
おすすめする理由は、以下。
- 参考情報が多い
- WindowsでもMacでもOK
- 現場でも実際にローカル環境で利用してる現場がある
- Web初心者の僕でもあっさり構築できた(これ大事w)
参考情報が多い、かつMacでもWindowsでもOK
初心者は何かとつまずくので、参考情報が多いに越したことはないです。
ドットインストールにもレッスンがあるので、これを参考にしたらまずは失敗しないはず!
躓いても、Qiitaに大量の情報があるので、困ったときも安心感があります。
現場で実際に導入されている
Qiitaの記事とか見てると分かるんですが、実際に現場で使用されています。
ということは、実際に現場に携わる場面でもそのままその知識が生きてくるということです。
なので、勉強してて損はないですよね。
実際に構築してみた
そして僕が実際に構築したローカル開発環境はこんなイメージです。
細かいところは省いてざっくり書いてます。

簡単に説明してみます。
- Vagrant:仮想マシンをめっちゃ簡単に構築したり操作したりできるやつ。こいつ自体が仮想マシンってわけではない。あくまで命令。
- virtualBox:仮想マシンを実際に構築するやつ。
この2つを組み合わせることで、超簡単に仮想のサーバーが構築できます。
で、自分だけが見れるサーバーが出来上がるので、あとはそこにプログラムしたファイルを置いて実行すればOK、ローカル開発環境の出来上がりです。
細かい説明はドットインストールを見てもらったほうが圧倒的にわかりやすいので省略しますw
僕は技術バリバリではないので、間違っている部分もあるかもしれません。
その場合はTwitter等で指摘してもらえるとうれしいです。
他にいれてるもの
他にもとりあえずこれ入れとけば。ってものだけ書いて終わろうと思います。
基本的には好みです。
- RubyMine:Ruby書くときに超便利なエディタ(というかIDE)。有償だけど、学生は無料かつ、30日試用もOK。
- SublimeText:こちらもエディタ、RubyMineがそこそこ重いのでちょっとした編集に。
- SourceTree:Gitとつなぐときに使ってます。コマンド操作じゃないので初心者でも見やすい。
- WinSCP:ファイル転送ツール。プログラムしたファイルを仮想サーバにアップするときに使ってます。
- RLogin:ターミナルソフト。Macは不要なんですが、Windowsのときはサーバーにコマンド投げるためにつかってます。
とりあえずこれだけやっとけばローカルで開発するのは問題ないんじゃないかなって思います。
参考になれば幸いです。
それではまた。