💻

30代ニートがバックエンドエンジニアになるための学習ロードマップ(予定)

2024/03/17に公開

はじめに

今年から本格的にIT業界への就職に向けた行動を起こしていこうと思ったので、決意表明も兼ねて学習予定を書いていきます。

自分の略歴

最初にざっくりと自分のスペックをまとめておきます。

時期 経歴 補足
2012.03 地方公立大学:文系情報学部入学 入学と同時に学生NPOに入会
2015.04 学科内で最も厳しいとされるゼミに入る NPOの副局長に就任
2015.07 ゼミとNPOの両立によるオーバーワークによりうつ症状発症
2016.03 NPOの活動を引退
2020.03 不登校を繰り返しながらどうにか大学を卒業
2020.03 Twitchにて配信活動開始 主にゲーム配信していました。
2024.01 配信での収益化には成功するも、このままでは自立できないので就職を決意
2024.03 就労移行支援事業所に通い始める ←いまここ

学習計画

参考にしたサイト・動画

まずは、このロードマップを立案するにあたって、参考にしたサイトと動画を示しておきます。

  • テクパロ・ブログ -【2024年】バックエンドエンジニアのロードマップ(未経験OK)

https://tech-parrot.com/engineer/backend-engineer-roadmap-and-skills/

  • だれでもエンジニア / 山浦清透 - ゼロから半年でWeb系エンジニアになろう【完全まとめ版】

https://youtu.be/O9D18lhLa2Y?si=zgRedRL3tZaU4-jx&t=2427
この他にも、いくつかのサイトやYouTubeも見て参考したこともありますが、大体似通ってる部分が多かったです。

1.Linuxコマンドを覚える:済

学生時代のゼミ活動からLinuxOSを使っていてLinuxコマンドには慣れ親しんでいるつもりです。

ただ忘れていたり不足していたりする可能性があるので、コマンドのおさらい用に以下の書籍を読みました。
https://www.amazon.co.jp/Linux-コマンド入門-——シェルとコマンドライン、基本の力-PRESS-plus/dp/4297120240/ref=sr_1_7?__mk_ja_JP=カタカナ&crid=EBSIG2K9B8N4&dib=eyJ2IjoiMSJ9.tesjS2QVNIyJCyOkSFAfTN9k8_k9ek9OzxcE3xWzkr2KNkHOddMEm-LW9WZ5CmvHU5-xATCQRgoYReyl-j3X8dYzsGCSFzX6uBe4tZdQRQK0NGoBpfrMIW0YuHhigDMYIRT1PGJ5RCiVxvU4xGCfm5UOMlzQJCkzHQ-x_e2LfFpzm-RgNnrNInTMLaM6v3doY862Y6YC7ttB_gNVQR-mkT56WiiwoKylpZTMCdssRekh6pQmU78Z0vP1eT8wMjrPLU0V9ISoyV3Kfq-1RKIvfnjz0qztuj8AegllAOmsxtw.lpkyDU18frKomg9bBnG21TQxbHisDkFwKRZSMDi8Aq8&dib_tag=se&keywords=linux+コマンド&qid=1710680558&sprefix=linux+コマンド%2Caps%2C175&sr=8-7

2.PHPの基礎を理解する:済【期間:約2週間】

「独習PHP」を用いてPHPの基礎を学びました。
https://www.amazon.co.jp/独習PHP-第4版-山田-祥寛/dp/4798168491/ref=sr_1_2_sspa?adgrpid=54350447678&dib=eyJ2IjoiMSJ9.yc5LzJPF7jwUhTu1lMTRI24vypeWrGqx6_m7P66OnEJfGYDf9rkk-zwT_8RuDGLaVReqp9XVSZDd3_2-ccpG8BqzpoBiJL2I3e7iheAGpLpRN8aPetUPWP-1O1Os1RTD5OalBxQCQl0M7xkhcLhHdArV2i3cz_8MceBXzRMXioglUwD-G1Xpt24O2HxX8riI9gAH1uqkBVuAX6YVWE5EmJQ5tggMXytYyIfKyLZFpMUPxDmZ_ml9nFwYw7B5H1omJRcs7n7QIcNBBEsvcT24lD_wUt4E19aHlmCvqcsrh00.Ap4cl-79y1x9CNpmUJHMMETCH479mWskf5Kr0R5-xjE&dib_tag=se&gclid=Cj0KCQjwhtWvBhD9ARIsAOP0Goh1w6Zkd93xelxUiMtYDJQe6TcfPe_oHJOpDd1SrrTyt2AdIMG1LjEaArUSEALw_wcB&hvadid=678980414862&hvdev=c&hvlocphy=1009648&hvnetw=g&hvqmt=e&hvrand=1787176135309636466&hvtargid=kwd-363148924524&hydadcr=15816_13711657&jp-ad-ap=0&keywords=独習php&qid=1710572409&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

3.Laravelの基礎を理解する:済【期間:約2週間】

「プロフェッショナルWebプログラミング Laravel〈最新Laravel 9対応〉」にてLaravelの基礎を学びました。
https://www.amazon.co.jp/プロフェッショナルWebプログラミング-Laravel〈最新Laravel-9対応〉-久保田-賢二朗/dp/4295202835/ref=sr_1_6?__mk_ja_JP=カタカナ&crid=WJ8T86NVBKKM&dib=eyJ2IjoiMSJ9.pBm55doKDUV4LE9GcAMJuusGIuSN13YJNGqb6VtGHbOHd21tu9tXrjboxqzAIlciyM__WsamwVUqtpPkQ3ykFULa5eTqncqCazHsAg5rXjgd5B_f9FI_WlZTfi7kGyRqkg7rCuwXFBEreLYo-QEU0RfRHzSHjE7y0KYwMH_0_4hwnfmDFRpqy9k739NXeAsb13k173dkLcLwxowLsHeHnm6T2dT4pM3TZC3rAiuZqvSeDbZB-vbCTAql_0-1Z__ae7yZyDBuigSQk5k5NBUPOX658VwzjyI2Jn6t9hrfX_E.5YV4NoVePci-FibXsRsihAbE9jjKkCRj_1O44FdMiiQ&dib_tag=se&keywords=laravel&qid=1710572520&sprefix=laravel%2Caps%2C188&sr=8-6

4.Laravelを使った簡単なWebアプリケーションを自作する【期間:1個当たり1週間以内】←いまここ

これまでの知識を生かして作れそうな簡単なWebアプリを作ってアウトプットする!

可能であればHerokuやAWSにデプロイすることが目標です!

CRUD処理の復習あたりから始めてみようかな。。。?

今のところ思いついているアプリケーション一覧

Todoアプリ
家計簿アプリ
ブログアプリ

5.不足していそうな知識の補充【期間:常にアップデート!】

前述の簡単なアプリを作りながらその都度不足していそうな知識を補充して行きたいと思っています。
もちろん就職活動中や就職後も常に知識をアップデートするつもりです!
ざっくり今のところ不足していそうな知識を上げていきます!

データベース設計や効率の良いSQL文の書き方

バックエンドなのでデーターベースとのやり取りは当然あります。

情報学科出身なので大学時代にデータベースに関する基礎知識は講義で学びました。

ただ、忘れているところなども当然あると思うので、今一度基本的なところから学びなおしたいと思います。
▼勉強予定の書籍:基礎振り返り編

▼勉強予定の書籍:余力あれば読みたいSQLとDB設計編

AWSへのデプロイ方法を理解する

実際にサービスをデプロイする方法を把握しある程度肌感覚で理解しておきたいと思います。
▼勉強予定の書籍

Dockerやコンテナオーケストレーションシステムへの理解

近年開発現場で使われている技術であるコンテナやDockerに関する知識を入れておこうと思っています。
下記の書籍はほぼ読了しました。追加でインプットが必要なったら随時

Webサービスを支えている技術への理解

こちらも大学の講義でネットーワーク周りの知識などは学びましたが、多分忘れているところがあると思います…(;^ω^)
▼勉強予定の書籍

フロントエンドに対する理解

バックエンドエンジニア志望なので、フロントエンドの勉強はあまり必要ないかなと思っていました。

しかし、YouTubeなどのSNSを調べると「今の時代バックエンドエンジニアでもフロント周りの知識を求められることも増えてきた」といった趣旨の内容が見られることを知りました。

なので、書籍のサンプルを動かせるレベルでもいいからフロントエンド周りの言語を触れておこうと思っています。
▼勉強予定の書籍やサイト

テスト技法やそれに付随する知識

就職後にまず任されそうな業務である、テストに関する知識を入れておきたいと思っています。

Gitの使い方

チーム開発で使われているというGit。

なるべく個人の開発でも積極的に使って慣らしておきたいと思います。

プルリクエストまでできればいいけど、個人開発だと見解があると思うのでせめて知識だけで入れておきたいです。
▼勉強予定の書籍やサイト

セキュリティとセキュリティに配慮した設計

アプリ実装につなげられるかわかりませんが、セキュリティに配慮した設計は心がけていきたいと思っています。

Laravelを勉強した感じ、ある程度まではLaravel側で実現してくれているようでした。

しかし、本当に過不足なくセキュリティに配慮された設計・実装になっているかを現状の自分では判断できないと感じました。

なので、セキュリティに関する知識やセキュリティに配慮された設計とは何なのかを勉強しておこうと思っています。
▼勉強予定の書籍

おそらく、まだまだ足りないところはありそうですが、知識不足を発見次第追記していきます!

6.本格的なWebアプリを開発してデプロイしてみる!【期間:1か月目標】

本格的!っといっても上述で開発予定のアプリより1回りくらい機能が充実したアプリをイメージして開発したいと思っています。

0ベースで作るのか、他の方のポートフォリオなどを見て同じようなものを作っていくのか、上述のアプリを拡張する形にするかは決めていませんが、

頑張ってデプロイまでもっていきたいと思います!!

おわりに

こうやって自身が把握している限りの必要な知識などを書き出してみましたが、把握しなければならない項目とその内容が多いなと思いました。

コンピュータができて1世紀・インターネットができて半世紀もたっていないのに、ここまでいろいろな知識が出てきていて、技術の進歩がいかに早いのかを実感します。

絵に描いた餅にならないように頑張るぞ!(* ̄0 ̄)/ オゥッ!!

Discussion