はじめに
どうも皆さんこんにちは!Web系エンジニアのともと申します。
僕は2022年1月~プログラミングを本格的に勉強し、ついに先日、某Web系自社開発企業から内定をいただくことができました。
ただ、転職成功までの道のりは決して平易なものではありませんでした。
ということで、9ヶ月前の僕と同じように
- 本当に未経験からWeb系エンジニアになれるのかな?
- どういうふうに学習すればいいんだろう?
と悩んでいる方向けに、僕が取り組んだすべてを紹介したいと思います。
時期別に紹介
1月~4月中旬:AP対策
まず、CSの基礎を固めるために、応用情報技術者試験(AP)を受験することにしました。
使った参考書は以下の2冊です。
僕はちょっと背伸びをして、基情(FE)をすっ飛ばしていきなり応情(AP)を受験しましたが、基情でも応情でもCSの基礎の部分をさらうことはできるので、どちらでもOKです。
あとは過去問道場を活用しまくり、計150~200時間ほど対策したところ、午前が75%,午後が64%でなんとかギリギリ合格しました。
よく「CSの基礎は飛ばしていきなりプログラミングから入ってOK」という意見も目にしますが、個人的にはあまりオススメしません。
なぜなら、CSの基礎の基礎ぐらいは知っておかないと、「なんだか動くけど何をやっているかわからない状態」に陥ってしまい、プログラミングを楽しむことが難しくなるからです。
ただし、同時並行でやる分には問題ないと思いますし、むしろオススメしたいです。
僕はAPの試験対策と並行して、
この3つに取り組みました。(progateはHTML,CSS,JavaScript,Python,Git,SQLを一通りやった程度)
※ AtCoderはやってもやらなくてもどちらでも構いませんが、kaggleはデータサイエンティストにならない限りはほとんど意味がないので、やらなくてOKです。
4月中旬~5月上旬:paiza
APの試験が終わってから2,3週間は、paizaをめちゃくちゃやり込みました。
progateはかなり基礎よりのコンテンツであり応用力に欠けるため、個人的にはpaizaを使うことを強くオススメします。
paizaでは主に、以下の内容を学びました。
- flask
- django
- git
- linux
- javascript
- ruby
5月上旬~5月中旬:Railsチュートリアル
僕はこの時点まではPythonを学習してきたのですが、
- Djangoの良い教材がない…
- Djangoの求人数が少ない…
以上2つの理由から、教材が充実しており求人数の多いRailsに乗り換えました。
Railsチュートリアルは本当に良い教材ですので、絶対に学習することをオススメします。
ただ、これまでの教材に比べると遥かに難しいので、学習する前にRubyやGitの基礎はpaizaなどで固めておいてください。
僕は、Railsチュートリアルに挑戦する前に、Gitの基礎を固めるため、「Git: もう怖くないGit!チーム開発で必要なGitを完全マスター」という、Udemyで超絶評価の高い講座を学習しました。
5月下旬~6月上旬:Udemy+αで最終準備
いよいよポートフォリオ開発…といきたいところでしたが、AWSやDockerを最初から組み込みたいという強い意志があったので、ここでUdemyを使った学習に励みました。
取り組んだ教材は以下のとおりです。
- AWS:ゼロから実践するAmazon Web Services。手を動かしながらインフラの基礎を習得
- 米国AI開発者がゼロから教えるDocker講座
- Nuxt.js入門決定版!Vue.jsのフレームワークNuxt.jsの基本からFirebaseと連携したSPAの開発まで
- Everyday Rails - RSpecによるRailsテスト入門
- Nuxt.js + Ruby on Rails + AWS Fargate の開発・デプロイチュートリアル
他にもYouTubeなどで補助的に学習はしました。詳しくは「【SPA化】RailsアプリをCircleCIを使ってAWSにデプロイするまでのロードマップ【Fargate】」をご参考ください。
6月中旬~8月上旬:ポートフォリオ作成
約2ヶ月かけて、『早口言葉選手権』というWebアプリをリリースしました。
ポートフォリオについては別記事で詳しく解説していますので、そちらをご参考ください。
→【個人開発】楽しみながら滑舌を鍛えることができるWebアプリ『早口言葉選手権』をリリースしました⚾🏏
8月中旬~8月下旬:転職活動準備
ここまで完全独学で学習に取り組んできた僕ですが、転職活動だけはコミュニティの力を借りました。
それが「転職クエスト」というWeb系エンジニア転職に特化したコミュニティです。
ポートフォリオが優れていても、転職対策を怠れば書類通過率は著しく下がります。
逆に言えば、「ある程度質の高い」ぐらいのポートフォリオであっても、面接対策をガチることで、書類通過率が劇的に向上し、第一志望の内定率が飛躍的に向上します。
「早く転職したい…!」という気持ちはわかりますが、焦っても何もいいことはないので、急がば回れでしっかりと対策をすることをオススメします。
転職成功のためのアドバイス
さて、ある程度再現性の高いロードマップだと客観的にも思いますが、それでも完璧というわけではありません。
そこで、今だから思うことを3つアドバイスしたいと思います。
①言語は最初からRubyを選ぶべし
僕は数学科出身ということもあり、データ分析にも興味があったので、世界的に需要が高く機械学習に強いPythonから学習を始めました。
ですが、もし頑なにPythonで学習を続けていたら、
- Djangoのいい情報がない…
- ポートフォリオ開発で、同じように悩んでいる初心者の情報がほとんどない…
- Djangoの求人数が少ないから転職に苦労する…
というような未来が待ち受けていたと思います。
たしかにPythonは需要の高い言語であり、Rubyは世界のトレンド的に言えば人気は落ちてきていますが、「未経験からWeb系自社開発企業に転職を成功させる」という最大の目的を果たすためには、間違いなくRubyを選択すべきです。
初期の僕のように、変に意固地になったりせずに、皆さんは最初からRubyとRailsを学習してくださいね。笑
②GitHubのissueを活用すべし
今回僕が面接で高く評価されたのは、「GitHubのissueの使い方」でした。
僕は、後で見返してわかるように、思考や問題解決の流れをすべてGitHubのissueにまとめていました。
(リポジトリを公開しているので、よろしければご参考ください。少し恥ずかしいですが笑)
- GitHubのリポジトリ:https://github.com/tomo-kn/hayakuchi-championship
これらのissueを見ていただいたことによって、問題にぶち当たった時の解決力や検証力をアピールすることができ、結果第一志望のWeb系自社開発企業から内定をいただくことができました。
はっきり言って、未経験はスキルでは勝負できないので、面接官の方に「こいつは伸びるかもしれんぞ…!?」という期待感を持たせるしかありません。
そのためには
- 少し難しめの技術(SPAなど)を導入してみる
- ER図を複雑にしてみる
など様々な施策が考えられますが、今回僕がやった「GitHubのissueをフル活用する」が最も再現性が高く、かつ最もコスパが良いと思うので、皆さんも是非取り入れてみてください。
※ 当たり前ですが、issueに機密情報を書いて情報漏洩してしまう、みたいなことがないよう、くれぐれもご注意ください。
③様々な情報源を参考にすべし
エンジニアには検索力が必要不可欠です。
なので、未経験のうちから、なるべく色々な情報に触れるよう心がけましょう。
たとえば僕は、以下のようなことを行った結果、自分にとって価値の高い情報にたどり着くことができました。
- テック系インフルエンサーを10人以上フォローし、発信内容の共通点や相違点を洗い出す
- 複数のプログラミングスクールのカリキュラムや実績を調べ、どういうカリキュラムだと成果が出やすいかを分析する
自ら能動的に情報を取捨選択する習慣をつけておくのは、非常に大切なことだと思います。
おわりに
いかがだったでしょうか。
転職できるか不安だ…と感じている方にとって、この記事が少しでもお役に立てれば幸いです。
僕自身も、今後の成長に期待して採用していただいた段階に過ぎないので、これからも日々学習に励みたいと思います!
(今は早く実務にキャッチアップできるように、名著と呼ばれる本をヒーヒー言いながら読み漁っていますw)
お互い頑張りましょう!!
以上、最後まで読んでいただき、ありがとうございました!
▼ポートフォリオURL
https://hayakuchi-championship.com/
▼GitHub
https://github.com/tomo-kn/
▼Twitterアカウント
https://twitter.com/tomokn5