技術はあとからついてくる。

技術はあとからついてくる。

就活開始の半年前にエンジニアに目覚めた人

独学系Webエンジニア1年目の個人的勉強ロードマップ

f:id:ricken0203:20181202173445p:plain

学びたいことと、学ぶべきことの優先順位が不明瞭になってきたので 1年目に学ぶべきだと思ってること、読むべきだと思ってる本、もうすでに学んだことも含めて残しておきます。 知識の溝がすごいと思うので、これもやったら的な意見や批判が欲しいです。お待ちしてます!(更新: 2018.11.29)

1. コンピュータサイエンスを学ぶ

キーワード

データ構造

  • リストと配列
  • スタックとキュー
  • 連想配列とハッシュ法
  • ツリーの種類と違い
  • バイナリーツリー、バイナリーサーチツリー、バランスドツリー
  • ヒープ

アルゴリズムと計算量

計算

本、記事

2. Webの技術を学ぶ

キーワード

  • HTTP
  • REST
  • キャッシュ
  • セッション
  • クッキー
  • Webサーバ
  • 脆弱性とその対策

チェックポイント

  • HTTPは実際にはどのようなデータとして送られているか?見るためにはどうする?
  • POSTメソッドとGETメソッドは、実際にhttpの通信の中身だとどう違うか?
  • レスポンスヘッダって何のためにある?2系と3系と4系と5系の使い分けは?
  • リダイレクトはどんな風に起きている?
  • キャッシュって何が起きている?キャッシュのコントロールは、配信側でどのように行なっているか?
  • RESTとは何か?
  • セッションは何か?cookieとsessionはどのように連動しているか?
  • nginxの設定ファイルかける?
  • 脆弱性攻撃(SQLインジェクションXSSCSRF) と基本対策が分かるか

3. プログラミング言語を体系的に学ぶ

3-1. プログラミングパラダイムを理解する

キーワード

記事

個人的ロードマップ

1年目: 動的型付/インタープリタ型のPHP(+Laravel)とJavaScript中心 2年目: 静的型付/コンパイラ型のGo

3-2. リーダブルコードの書き方やプログラミングの原則を知る (※必須)

キーワード

  • KISS, DRY, YAGNI, PIE, OCP
  • Naming is important

コード書く時に気にしながら書けるか コードレビューする時に意識して見れるか

3-3. フレームワーク (Laravel) の知識をつける (※必須)

4. DBの仕組みやSQLの基本を理解する

RDBMS (※必須)

NoSQL

  • Cassandra
  • Redis
  • mongoDB

RDBよりは優先度低め。 概要は知ってるくらいにまではいきたい。

キーワード

DB

SQL

本、記事

5. その他(1年目でとりあえず概要語れるぐらいにはいきたい)

1~4より優先度は低いが、重要な分野