文系非エンジニアがRailsエンジニアになるまでの道のり

数年前までプログラミングなどしたこともなかったんですが、この時代に生まれたからにはITは必須だ!と考えるようになり?、Railsを学習し始めました!

Railsエンジニアになるまでの道のりを簡単に示します!

いま、勉強されている方、勉強しようと思われている方の参考になれば幸いです!

自己紹介

(たぶん、不要なのでこの項目を飛ばすことを推奨します。)

大学までサッカーをやっており、プロになることを目指していました。

今はJ1の長崎の練習に参加したりしていましたが、当時はJリーグ加盟の条件を満たしておらず選手は税金も払えないような状況でアルバイトをしながらサッカーをしていたことをよく覚えています。

結局突き詰めていくと生まれ持ったものが結構多くを占めるなという言い訳のもとプロのサッカー選手を諦め、就職活動をすることになりました。

そこで、企業研究とかしている時間がなかったので、適当に日経の人気ランキングとかみて上位のところがええんやろとか思って就職活動を開始して、運良く都市銀行の内定をもらいました。

そうです!体育会系が重宝される?営業です!

入ってみると、仕事内容に熱くなれるものがなく…VCに転職します。(適当)

その後、もっと事業側に立ちたいという経緯からエンジニアとなります。これが確か27歳ぐらいのときだったと思います。

何故Railsなのか?

かなり悩んだのですが、多く使われていて、日本語のドキュメント(ブログ?)が多いという理由からRailsにしました。

はじめから英語のドキュメント読むは結構辛い気がしました…

結果的には、かなり良かったと思っています。(他のフレームワーク使ったことないけど!)

Djangoに関しては勉強したことはありましたが。

基本的にどんなフレームワークにするにしてもエイヤで決めて深掘りしていくしかないと思います。

いまは、とにかくgemの恩恵を受けまくっているという感じです。

独学

まず、Railsのエンジニアというのは、Rubyだけできてもダメというのが結構辛いところで、HTMLとかCSSとかJavascriptとか結構知ってないといけないことが多いです。

ドットインストール

今はprogateがあるので?、下火になっているようですがドットインストールは非常に重宝していました。

基本的なHTMLやCSSやJavascript、Rubyの文法の学習と、Unixのコマンドラインの使い方は動画を見ながら手元で再現して学習したことを覚えています。

文章からのインプットだけだと、なかなか自分がコーディングしているイメージが湧いてこないのと、vimのショートカットってこうやって使うんだという学びもなかったと思っています。

本当に感謝しています。

期間的には1~2週間といったところだったと思います。

書籍

私は、山田 祥寛さんの、Ruby on Rails アプリケーションプログラミングというのを使っていました。

何冊も買う必要はないと考えており、何回も読むというのが大事かと思います。(たぶん3回ぐらいは通して読んだと思います。)

私のときは確かRails4系だった気がしますが、これからは5系なんですね!

こちらも1~2週間ぐらいで完結したかと3周読んだと思います!

前職(VC)でひたすら同じ本を何度も読めと言われていたので、その週間があったのかもしれません。

自作

ここまで来たら、自作で簡単なアプリケーションを作成します。

自作のときはとにかく上記書籍を横において作っていました。

私の場合は、ドットインストールのAdobe版を作ろうとしていましたが、コンテンツの方の作成が重すぎて途中で断念しました。

ただ、ログイン機能を作ったり、Javascriptで結構実装しなくてはいけなかったり、本番のサーバーへデプロイ(ソースコードの反映)したりするのが難しかったので、自作はしておいてよかったです!(特にnginxとunicorn周りははじめなんのこっちゃと思いましたw)

その他にも、vimeoに動画を上げて、APIをコードに埋め込むなど、初心者にしては結構ハードルの高いことをしていたのかもしれません。

参加するプロジェクトを探している時にもAPIは触ったことあるか?と質問されたことも会ったので、触っていてよかったのかもしれません。

はじめはAPIの意味すらわかりませんでしたが、APIを実装するプロジェクトなども経験できました。

自作アプリケーションの作成には、1ヶ月ぐらいかかったと思います。

なので、実際のところ、文系非エンジニアの人でも2ヶ月ぐらい時間がとれれば、エンジニアとして転職できると思っています!(独学で!)

学習するべき項目の全体像

フレームワーク
・Ruby on Rails
言語
・Ruby
・HTML
・CSS
・Javascript
サーバー周り
・AWS(EC2、S3、RDS)
・Nginx
・unicorn(gem)
よく利用するgem(Rubyのライブラリ群)
・capistrano
・devise
・factory girl
テスト
・rspec
バージョン管理
・git
・github

フレームワーク

これはRailsのことです!

言語

とにかく、Railsはフレームワークなので、その中で使う言語は複数あるので大変です。

Ruby、HTML、CSS、Javascriptが理解できれば問題ないでしょう。

私のケースではJavascriptを記述することが多々あります。

サーバー周り

私にとってはここが一番難しかったです。

ただ、サーバー周りは経験が結構ものをいうような気もしていますので、 まずはいっぱい触ってみることがいいでしょう!

たぶん、はじめは秘密鍵でssh接続するところで結構苦戦するはずです…w

また、プロジェクトによって準備しているサーバーが異なります。

基本的にはdevサーバー(ローカル環境のことです)、stagingサーバー(本番環境と同じ構成で動作確認などをします)、productionサーバー(実際にwebアプリケーションを動かしているサーバー)があります。

AWSも使えた方が良いですが、基本的にEC2とS3、RDS周りが使えることができれば、後は勉強しながら実装していけばいいと思います。

ネーミングがややこいのですが、EC2がサーバー、S3はファイルや画像などの保管場所、RDSはデータベースと覚えておきましょう!

この辺りも丁寧に解説してくれているブログなどがあるので、色々と検索してみるといいと思います!

よく利用するgem(Rubyのライブラリ群)

まずproductionサーバーやstagingサーバーにソースコードを反映させるためにcapistranoというのを多くのプロジェクトで使っているので、なんとなく理解しておいた方がいいでしょう!

また、多くのwebアプリケーションで会員登録の実装が必要になっています。

そんなときに役立つのが、deviseというgemになります。

本当によく利用するので、自作アプリケーションを作成するときも使ってみることをオススメします!

最後にテストをコーディングする時によく利用されるfactory girlです。

こちらも非常によく使われています。

使い方はそんなに難しくないので、簡単にみておくと良いと思います。

テスト

実際のところ、私が参加していたプロジェクトでテストを書くか書かないかは微妙なところでした。

というのも、あまり時間がないと書かないケースが多いようです。

基本的にwebアプリケーションは、発注する側も安く作って欲しいという要望があるため、テストはいらない!?というか、テストを書くプロジェクトももちろんあるのですが、テスターさんというアプリケーションを触ってテストしてくれる人が動作確認をするプロジェクトもありました。

が!書いた方がいいのと、あまりテストのコーディングに時間を使わない方がいい(たぶん、実装が進んでいないと思われる)ので、簡単なものはかけた方がいいでしょう!

よく使われているのが、rspecです!

バージョン管理

残念ながら、どんどんと学習すべき項目が増えていますが、バージョン管理は必須です。

gitの基本は抑え、githubに関しても使い方を理解しておきましょう!

これで間違ってしまうと他の人が実装したソースコードを消してしまう恐れがあるので、一番慎重になるところかもしれません。

その他

もし、Railsを勉強されている方で不明点などあれば聞いてください!お役に立てるかもしれません!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です