【実体験をもとに】30歳未経験から独学4ヶ月でバックエンドエンジニアとしてWeb系自社開発企業へ転職するまでのロードマップ


こんにちは。

2020年２月現在、スタートアップ期のWeb系自社開発企業から内定をいただきました。
今回はこれからプログラマーとしてWeb企業へ転職される方を応援するため、私が知識ゼロの状態から学習をスタートし転職するまでの過程を踏まえたロードマップを共有します。
一つの例として参考にしていただければ幸いです。

内容を解説した動画をYoutubeに投稿しました
[知識ゼロから独学４ヶ月でWeb系自社開発企業へ転職するまでのロードマップ](https://youtu.be/eWA5u4Yz458)
<img width="206" alt="スクリーンショット 2020-08-11 0.49.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521937/ec94a19d-fd83-d757-1fb2-f43bd0ef83ab.png">

[【使用技術編】未経験からWeb系自社開発企業に転職するためにどのようなポートフォリオを作ったか。](https://qiita.com/WATARU_GP01/items/4d784073d77a6a9da0e3)
こちらも参考にしてみてください。

#前置き
本記事はプログラミング初心者を対象にしたものなので、理解しやすいように噛み砕いて文章を作成しています。
多少語弊のある内容もあるため現役プログラマーの方の閲覧時は生暖かい目で見てください（笑）

私の実体験をもとに作成していたため、実際にはもっと素晴らしいロードマップもあると思います。

#投稿者スペック
エンジニアキャリア１ヶ月目のできたてホヤホヤ新人
年齢：３0歳（既婚）
住所：埼玉県
前職：一般企業の拠点マネジメント系
学歴：大卒（文系）
・プログラミングの知識はゼロ（多少Excelを触れるくらい）
・わりとコミュ力はあるほう


#転職先での待遇
給料（年収）：400万ほど（前職と同程度）
社会保険などの福利厚生
リモートワーク可

#学習開始から転職までにかかった期間
■４ヶ月
うち３ヶ月は前職と並行して学習
うち１ヶ月は前職の有給を使用し就活に専念
前職の退職日１週間後に内定をいただきました。

#学習方法
eラーニング(Progade.CODEPREP)
MENTA
Qiita
その他IT技術に関するブログ
各技術の公式リファレンス（各技術公式の説明書）


#転職完了時のスキルセット
HTML
CSS
Ruby
Ruby on Rails
MySQL
Rspec
AWS
Docker
CircleCI
Git

#ロードマップ（1月スタートとする）
1月：基本学習(Progateを使用)
2月：ポートフォリオ作成
3月：ポートフォリオのブラッシュアップ
4月：就活

私は仕事をしながら通勤時や帰宅後、休日を利用して学習しました。
仕事の繁忙から半月の間全く勉強できない事も・・・。
平日は１〜３時間、休日は４〜７時間ほど勉強していました。
（もちろん３０分くらいしか勉強しなかった日も間々ありました）
もっと少なくても多分ダイジョーブ！

**先に記載しますが、Progateなどの学習サイトを周回する必要は無いと思っています**
実際に技術を使用して何か成果物を作るのが一番早い学習方法であり、学習サイトではそのための足がかりさえ得られれば良い。というのが私の個人的見解。（百聞は一見に如かずというやつですね）
たっぷりと時間があるならともかく、仕事をしながら勉強していた私にとって学習サイトを周回するのは時間的な費用対効果が低かったのです。



##1月　基本学習
<img width="200" alt="スクリーンショット 2020-02-10 21.06.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521937/8ca167f4-06d7-c54c-ef41-2f46954b8e85.png">

###第1週　HTML&CSSの学習
Progate (https://prog-8.com/) を利用しての学習。
難しいものではありません。サクッとクリアして、何か簡単なWebサイト1つを模写しました。
私は下記のようにデザイン例の載ったサイトから好みのものを一つ選んで同じようなレイアウトを１から作ってみました。
https://sankoudesign.com/
※「カーソルを合わせたらポップアップが出る〜」だとかそういった事はスルーして良いと思います。

###第2週　Rubyの学習
Progateを利用しての学習。
完全に理解する必要は無いと思います。この段階では感触さえつかめれば良。
基礎の基礎とはいえ、この段階で完全な理解をするのは難しく時間がかかります（＝挫折しやすくなる）。
あまり気構えせずにユルく馴染ませていきましょう。
※逆にこの段階では、**学んだことを何に使うのか分かっていない**状態のため、うまく定着しないでしょうしね(^^;)
※先述したように今後のことを考えるとさらに踏み込んだ学習は必須なので、後で改めて学習しましょう。


###第3週〜第4週　Ruby on Rails の学習
Progateを利用しての学習。
今までと違いしっかりと理解しながら学習すべきだと思いました。
**1つのセクションが終わるたび自分のPC上で同じように開発を行ってゆく**という方法で復習をしました。
Progateでは「指示された通りに穴埋めをしてゆく」というスタイルで課題を進めるため、ただの作業になってしまいがち。「今自分が何をしているのか」ということや「システムの全体像」がイメージしづらく、うまく定着しないと考えたからです。

##2月　ポートフォリオ作成 
<img width="200" alt="スクリーンショット 2020-02-10 21.09.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521937/805e9c3d-063e-fa22-33ef-b5e81904dda4.png">

プログラマー転職において必須とも言えるのが**ポートフォリオの作成**です。
これに最低限のクオリティを持たせなければ好条件での転職は望めないでしょう。
※どのようなポートフォリオを作成すべきかについてはまた別の機会に提案できればと思っています。

###第1週〜第2週　基本機能を備えた動画投稿サービスを作成　& MySQLの学習
Qiitaを参考にした記事投稿サービスを作成しました。
同時に否が応でもDBに関する学習をしなければなりません。MySQLあるいはPostgreSQLを選択するのが無難かなと。
着実に機能を実装してゆくのはとても楽しく苦にならないかと思いますが、これまでとは違い**予期せぬエラー**との戦いが始まります。
解決できないエラーに直面した時に相談できる相手がいると良いですね。
slackなどのプログラマーコミュニティーに入ったり、MENTAを利用することをお勧めします。
また、ここからGitHubの使用を始めました。(１時間もあれば使えるようになります)

###第3週〜第4週 作成したアプリをAWSへデプロイ
Herokuへのデプロイであればすぐに完了すると聞きますが、ここはより実践的にAWSへデプロイしました。
初学者にはかなりの難題でした。私は先輩エンジニアに教えてもらってなんとかなりましたが、知り合いがいない場合はMENTAの使用を強くお勧めします。

##3月　ポートフォリオのブラッシュアップ
<img width="200" alt="スクリーンショット 2020-02-10 21.06.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521937/7bcaaa6e-19d9-54ab-e226-93cb4ab1c960.png">

ここまでで作成したポートフォリオは**チュートリアルで学んだものに毛が生えた程度のもの**という評価になると考え、成果物に対してさらに+αのアピールポイントをつけていきました。
またこの時期は年末で私の仕事が大変忙しく、学習にかけられる時間は半分以下になっています。

###第1週〜第2週 Dockerによる開発環境構築
Dockerは初学者には大きなハードルとなりますが、現在の開発現場ではスタンダードになっているとの情報を得ましたので必ず手をつけることをお勧めします。
前職場の先輩がベテランプログラマーの知人に私のことを話した際「Dockerを使用してポートフォリオを開発しAWSへデプロイした」と伝えたところ**「それは就活成功するやつだね」**と言われたそうです。
そのくらい「Dockerを扱える」というのは初学者への評価をするにあたって一つの指標となるのかなと思いました。

参考にしたのはQiitaの記事https://qiita.com/nsy_13/items/9fbc929f173984c30b5d
Dockerは注目度が高い技術のため、参考文献が多いのが幸いですね！先人に感謝！！

###第3週〜第4週　CircleCIの導入　& Rspec導入
※私自身は仕事で忙しくこの時期は全くと言っていいほど学習に手をつけられていません。しかし、本来であればこのタイミングが良いと思い記載します。

CIツールとしてCircleCiを学習。これもまた注目度の高い技術なので参考文献がゴロゴロ転がっています。
CD機能についてまではできていなくても良いと思います。この段階では自動テストのために導入すれば十分かと。
CDまでできたらすごい。ぜひ教えてください。

####【補足】　ここでCircleCIでなく、何かしらのAPIをポートフォリオに導入する方が就活に活きると思いました。


##4月　就活
いよいよ就活です。
就活と同時並行で改めてRubyの学習を行うとなお良かったな〜と思います。
就活における注意点というか心構えのようなものは別の機会でお話しできればと思いますが、私が強く思ったことだけ。

- 焦らずゆとりを持って取り組む。
- ただし最初の１社はとにかく早い段階で選考を受ける。
- 何十社も受ける必要はない。
- Wantedlyプレミアム会員に登録する。

5月まで突入しても良いと思います。そうそううまくいくものではないので、納得いく会社から内定をもらえるまでじっくりと取り組んでください。
####【補足】3月の段階から就活をスタートする方が効率的かもしれません。
私は仕事が忙しく、とても無理でしたが・・・。


#終わり
以上が私がプログラミング学習を始めて〜内定に至るまでの過程です。
長文を読んでいただきありがとうございます。
最後に私のプログラマー転職を成功に導いてくれた要因を列挙します。

- コツコツと勉強を続けていく持続力
- 「プログラミング楽しい！」とまでは行かないまでも、特に苦にならないという相性。
- 初対面の人とも仲良くなれるコミュニケーション能力。
- 即行動・即実践する意識。
- アドバイスをしてくれるエンジニア仲間。
- ほどほどに休憩を取っていたこと。
- 無職状態になったとしても生活できるだけの貯金があったこと。
- くじけそうな時に支えてくれた家族。
 
ご質問などは[MENTA](https://menta.work/user/13215)のメッセージへお願いします。
Twitter:https://twitter.com/WATARU_GP01