完全未経験から半年でRailsエンジニアとして内定を頂いた話(学習編)

はじめに

こんにちは山口聖也と申します。
2020年2月3日をもちまして晴れてエンジニアとして内定をいただく事ができました。
ここまでの道のりは正直過酷なものでした。「不安」「焦り」色々なものが襲ってきた半年間になりました。
そこで、どのような手順で内定まで行き着けたのか書いてみました。
疑問点、追加でもっと詳しく聞きたい方は僕のtwitterにDMをいただければ対応できますのでお気軽にお願いします。
twitter.com

対象者

僕と同じく未経験からWebエンジニアになりたい方、もしくは既に動き出している方に参考になると思います。
人それぞれ状況、ペースは違いますので一個人の意見として参考にしてもらえると幸いです。

前置き

僕自身プログラミングスクール(ポテパンキャンプ)に3ヶ月間通いました。しかし今回は、取り組んだ内容をまとめる為詳しくは触れません。
気になった方は是非調べてみてください。
camp.potepan.com
以下に僕の学習の流れを記載します。(後から詳しく説明していきます)

7月 ~ Progate & Rails Tutorial ~

一番はじめに手をつけたものは「Progate」です。
「解説スライド」とコードを打ち込む「演習」がセットになっている為、初心者にとってはプログラミングに触れるという点では非常に良いと思います。
僕が取り組んだ項目は以下になります。(Rubyの場合)

最低でもこの項目は一通り取り組むと良いかと思います。(後から役に立つ)
このProgateを取り組むにあたり重要なことは
やりすぎないこと」です。
やればやるほどわかった気になれます。ゲーム内レベルも上がります。しかし、やっていることはドラクエでいう永遠にスライムを倒してるだけにすぎないのでこんな感じでやるんだなと分かればそれで十分です。

次に取り組んだのは「Rails Tutorial」です。
スライムだけを倒していたあの頃と比べると比になりません。
そうです。なんでこんな難しいのって感じになります。
しかし安心してください。みんなそうですし、みんなクリアします。
ここで重要なことは
絶対に2週以上はする」「学習の間を空けない」ことです。
理由は1回じゃ流石に覚えられないし長いから早い事やらんと忘れる。(人間だもの)
ですので

  • 1週目
    • とにかく完走することを目指す(動画解説でも言ってる)。(理解度40%)
    • こんな感じで開発をしていくんだなと掴む
    • 分からん箇所は常に記録しておく(2週目で役立つ)
  • 2週目
    • 完走より理解することにフォーカスする(理解度80%)
    • 1週目で分からん箇所を潰していく
    • 開発者の気分でやる(気分だけでも)

この流れでやればやり切った後に、理解、達成感、さらなる向上心が獲得できます。
ちなみに、動画解説は高いけど本当におすすめです。挫折するよりまし。内定もらえないよりまし。なんでもいいので自分に理由つけて買いましょう。本当に買いましょう。
railstutorial.jp

さて、ここで一息ついてる時間はありません。
休んでる間にまた1人、未経験から内定を貰ってるかもしれない。先に進みましょう。

時間でまとめると
Progate(約2週間) + Rails Tutorial(約2週間) = 約4週間
となります。

8月 ~ インスタグラムクローン ~

次に取り組んだのは「インスタグラム」のクローン作成です。
目的は、Rails Tutorialで身につけた知識の実戦だと思ってください。
これがまあできないできないいざやってみると。。
まあ、最初はそんなもんだな。と自分に思い込ませましょう(気楽に気楽に)
見直しながら、苦戦しながら取り組むことでスピードも上がっていき
だんだんスラスラ書けるようになってきます。
ここで重要なことが
プラスの機能を追加する」ことです。
例えば、

  • Facebookログイン機能
  • パスワード更新機能

などなど。Rails Tutorialには無かった機能を自力で追加していく事で「ググる力」「自走する力」が付いてきます。

作成時間は2週間ほどです。

次はいよいよ自作アプリ(ポートフォリオ)作成です。
今まで得た知識を存分に発揮できるよう頑張りましょう。

8月後半~10月初旬 ~ ポートフォリオ作成 ~

ポートフォリオを作る上で重要だと感じた事は以下4点です。

  • Rails Tutorialの機能だけでなく+した機能を追加する
    • ぶっちゃけ誰でも作れてしまうし、この人やる気あるんかと思われがち
  • UX/UIを気に掛ける
    • 採用する側も人です。当然第一印象、使いやすさが大事
  • テストをできるだけ書く
    • やはり開発をする上で必要不可欠なこと
  • デプロイはAWS
    • herokuより「お??」と思ってもらえる。

以上4点を踏まえて一言で大切なことは
自走能力を証明」することです。
自分以外にもライバルがいる事常に頭の片隅においてください。挫折している暇はありません。(ちなみに100回ぐらいなりました。)

Rails Tutorialの機能だけでなく+した機能を追加する

Rails Tutorialに毛を生やした程度では、ガイドラインに沿ってコードを写経しているだけですので、自走能力を証明できません。
最低でも(投稿サイトの場合)

  • 記事一覧表示機能
  • 記事詳細表示機能
  • 記事投稿機能
  • 管理ユーザー登録機能
  • 管理ユーザーログイン機能
  • 画像投稿機能
  • DBテーブルのリレーション機能
  • DBトランザクションの制御機能
  • ページネーション機能
  • 単体テスト
  • 統合テスト

の機能+自分自身であったらいいなと思う機能を追加してみてください。
なんか知ったかぶり感が満載ですが、こちらの動画を参考にしております。
www.youtube.com

UX/UIを気に掛ける

採用側は、おそらく一人一人に割ける時間は多くはありません。
人の第一印象は0.3秒で決まる(確か)のと同じように、ポートフォリオにも「第一印象」があります。
そこで重要になるのがデザインと使いやすさです。
ぐちゃぐちゃな見た目は相手に一瞬でマイナス評価を与えますし、使いにくさも同様です。

  • みやすいデザイン
    • 各コンテンツの配置、色など
  • 操作性の良さ
    • ログイン機能もありつつゲストログイン機能も搭載など

意外に見落としがちなポイントですが、自分が採用側だったらどう思うか??
を意識することで解決に近づきます。

テストをできるだけ書く

開発をしていく上で大事なのはテストをかける事です。
完璧に書くのは未経験の時点では不可能です。自分もそうでしたし、きっと採用側もそう思っています。
大事なのは「こんなに頑張って書いたぞ!!」の誠意が見えるぐらいの質にしましょう。
Rails Tutorialではminitestを用いて記述しましたが、ポートフォリオRspecを用いましょう。
色々なサイトを参考にするのもいいですが僕がお勧めするのはこちらの電子書籍です。
leanpub.com
詳しく対象者がRails Tutorial修了者になっていますので、問題なく読めるかと思います。
こちらで学習を進めながら単体テスト、統合テストをできるだけ多く書くと良いと思います。

デプロイはAWS

herokuは大体の人が用います。
採用側からすると、herokuかとなる事もあります。(一部では)
そこで難易度は一気に上がりますが、AWSを用いてデプロイを行いましょう。
参考にしたサイトはこちらです。
qiita.com
デプロイまでの道のりは容易なものではありませんが大変わかりやすくまとめられています。
僕の場合ポートフォリオ制作で一番苦労した点がここでした。
一週間以上エラーで本番環境に画面が出力されませんでした。。
しかし、やればできます。やらなければできません。ただそれだけです。(今だからこそ言えてます。当時は絶望でした。)

参考まとめ

学習、ポートフォリオ制作にあたり参考、活用させていただいたコンテンツをいかにまとめておきます。

  • Progate

prog-8.com

railstutorial.jp

leanpub.com

  • AWSデプロイ

qiita.com

  • 参考YouTuber

www.youtube.com

  • オンラインサロン

kentakatsumata.net

最後に

今思い返せば、やってよかったなと思えますが、当時は本当になれるのか不安もあったし、挫折しそうにもなりました。
しかし、いつか絶対内定を勝ち取るんだという強い意志だけは持ち続けたことが大きな要因でした。
皆さんも、同じ状況、もしくは、これから始めるかただと思いますが、諦めず続けることができれば必ず達成できると思います。
思い返せば、いい思い出になります。頑張っていきましょう。