Web系エンジニアになることを目標にした学習者に使えそうな学習教材

## 概要
Web系エンジニアになることを目標にした学習者にとって、身になりそうなサイトや教材をまとめました。
紹介する教材やサービスは、何れも無料もしくは数千円程度で購入、サブスクでできるものに限定しています。
また、バックエンドの言語は、私が使用しているRuby、Pythonに限定しております。

## 学習を始める前に
以下の記事は、個人的に、エンジニアにとって大切ではないかと感じる考え方が詰まっています。
一読してから、学習を進めることをおすすめします。

https://qiita.com/monsoonTropicalBird/items/375a686f9d10f0b05e55

また、以下の内容から必要なものを設定することをお勧めします。
Windowsユーザーの方はこちら。

https://blog.beachside.dev/entry/2020/09/21/130000

Macユーザーの方はこちら。

https://dropsl-blog-seo.tokyo/mac-first-setup/

## 学習サイト/教材
### コンピューターサイエンス
#### ⚫︎ HTTP
https://developers-book.com/2020/07/20/140/

### Linux
#### ⚫︎ 基礎
https://mid-works.com/columns/engineer/infrastructure/1138061

Linuxは「新しいLinuxの教科書」を一読するのが良いと思います。

https://www.sbcr.jp/product/4815624316/

#### ⚫︎ コマンドライン
基本的なコマンドを把握するのに、以下のProgateがお勧めです。
このコースは非常に短く、1周10分ぐらいで終わらせることが出来るので、何周か繰り返している内に、ここで使用されるコマンドが自然と打てるようになります。

https://prog-8.com/courses/commandline


### HTML/CSS
#### ⚫︎ 基本
HTML/CSSについて全く触れたことがないという人は、Progateを1周だけで良いので、やってみて、感覚を掴むのが良いかもしれません。
ある程度わかる方は、ここはスキップで良いと思います。

https://prog-8.com/courses/html

#### ⚫︎ アウトライン
HTMLの理解に非常にアウトラインは重要です。
以下にアウトラインについてまとめた私の記事を公開してます。

https://qiita.com/kimascript/items/b81feecebdbe89ae7349

#### ⚫︎ OGP
以下の記事でOGPの設定方法を学べます。

https://webdesign-trends.net/entry/12993#google_vignette

#### ⚫︎ Flexbox
Flexboxは以下のゲームを通して、感覚として叩き込むのがお勧めです。

https://flexboxfroggy.com/#ja

また、以下の記事も非常にわかりやすくまとめてくれています。

https://www.webcreatorbox.com/tech/css-flexbox-cheat-sheet

#### ⚫︎ 画像
画像の表示速度の最適化は以下の記事で知ることができます。

https://techblog.yahoo.co.jp/entry/2020090830016393/

#### ⚫︎ セレクタ
以下の記事はCSSセレクタのチートシートになります。視覚的にも確認しやすいサイトだと思います。

https://webliker.info/css-selector-cheat-sheet/

#### ⚫︎ リセットCSS
リセットCSSの種類について下記添付サイトで確認してみてください。

https://skillhub.jp/blogs/285

リセットCSSには`destyle.css`をおすすめします。

https://github.com/nicolas-cusan/destyle.css/tree/master

### JavaScript
#### ⚫︎ 基礎
Progateなら意外と、プログラミング言語で汎用的に使われる概念を学べると思います。

https://prog-8.com/courses/es6

「JavaScript Primer」というのもあったりします。

https://jsprimer.net/

#### ⚫︎ 配列

https://ics.media/entry/200825/

### TypeScript
#### ⚫︎ 基礎
個人的には、ブルーベリー本を手を動かしながら進めるのが良いと思います。

https://gihyo.jp/book/2022/978-4-297-12747-3

具体的な進め方としては、以下を参考に行うと良いかもしれません。

https://zenn.dev/shava2c/articles/6fd5ed3e31fb82#%E5%9F%BA%E7%A4%8E%E3%81%AB%E3%81%AA%E3%82%8B-javascript-%E3%81%B8%E3%81%AE%E7%90%86%E8%A7%A3%E3%81%8C%E6%B7%B1%E3%81%BE%E3%81%A3%E3%81%9F

また、TypeScriptの基本がわからなくなった際は、「サバイバルTypeScript」を見に行って確認したりしております。

https://typescriptbook.jp/

### React
#### ⚫︎ Reactをはじめる前に
現時点でなぜフロントエンドにReactがよく使われているのか以下の記事がわかりやすいと思いますので、一読することをお勧めします。

https://qiita.com/st_12/items/3e9bd64d74f72e8bbe34

#### ⚫︎ 基礎

https://speakerdeck.com/recruitengineers/react-2023

#### ⚫︎ Hooks

https://www.youtube.com/watch?v=uuAdVs7sbAs

#### ⚫︎ react-router-dom

https://zenn.dev/monstera/articles/8b78152f1aa23c

#### ⚫︎ React 19

https://zenn.dev/uhyo/books/react-19-new

### Ruby
#### ⚫︎ 環境構築
Progateが公開している環境構築のサイトは非常に初学者にとってもわかりやすいので、ここで悩んでいる方には是非活用して頂きたいです。

https://prog-8.com/docs/ruby-env

#### ⚫︎ 基礎
こちらも基本文法はProgateで浚うのがいいと思います。

https://prog-8.com/languages/ruby

### Ruby on Rails
#### ⚫︎ Ruby on Railsをはじめる前に
個人的にはRailsは学習に必要な時間も非常に長くどの様に進めていけばいいか理解する為に、以下の記事はRailsを始める前に目を通して頂きたいです。

https://qiita.com/saboyutaka/items/1a8c40e105e93ac6856a

https://qiita.com/jnchito/items/063e332cbe3023f52f93

#### ⚫︎ 環境構築
こちらにもProgateの公開している環境構築のやり方のサイトを掲載させて頂きます。

https://prog-8.com/docs/rails-env

#### ⚫︎ 基礎
まず始めにRailsを触ってみるのに、以下のチュートリアルは個人的にわかりやすいと思います。ただRubyの基礎の成熟度をある程度高めてからの学習をお勧めします。

https://www.youtube.com/watch?v=IyEcu9e1YgM

また専門知識を学ぶのには不向きかもしれませんが全体を大雑把に把握するのはやはりProgateを活用するので良いと思います。

https://prog-8.com/courses/rails5

Ruby on Railsの学習には「Ruby on Railsチュートリアル」が良いと思います。大学や社員研修でも採用されているそうで、Webサービス開発が学べる世界的に有名なオンライン学習サービスだと言えます。チュートリアルでは、TwitterのようなWebアプリ開発を通して、基礎知識から応用知識までを体系的に学んでいく教材になっています。

https://railstutorial.jp/

Railsチュートリアルを終わらせた後は以下を参照するのをお勧めします。

https://railstutorial.jp/reading_guide

### Python
#### ⚫︎ 環境構築
こちらにもProgateの公開している環境構築のやり方のサイトを掲載させて頂きます。

https://prog-8.com/docs/python-env

#### ⚫︎ 基礎
ここでも超基礎はProgateで復習うのをお勧めします。

https://prog-8.com/courses/python

#### ⚫︎ 言語特性
Python其の物の言語特性についてこちらの記事でまとめてあります。

https://qiita.com/kimascript/items/6dcb0bc4fc427e8f3833

#### ⚫︎ エラー
これは私が書いた記事ですが基本的なエラーを忘れてしまう初学者にとって見やすく理解しやすい記事になっていると思います。

https://qiita.com/kimascri/items/de7a8d33d609fbc15a51

#### ⚫︎ Python3エンジニア認定基礎試験
Pythonの基本文法を理解するのに、Python3エンジニア認定基礎試験はうってつけだと思います。
まず以下の記事を読んでどこに注力すべきか理解します。

https://www.wata-ridley.com/entry/certified-test-python3

この試験に纏わる基礎学習はDIVERと以下のYoutubeをおすすめします。DIVERはデジタル教材だけでなく、実践問題もついてますが、有料です。

https://diver.diveintocode.jp/

https://www.youtube.com/playlist?list=PLO-KH_xqEh8FHpIUXWHVJnJLXi6XO7BFE

その他の模擬試験を受けれるサイトには以下があります。

https://python-basic.com/

https://camp-lms.trainocate.co.jp/

https://study.prime-strategy.co.jp/

### RDB/SQL
#### ⚫︎ 基礎

https://prog-8.com/languages/sql

### Git/GitHub
#### ⚫︎ 環境構築

https://prog-8.com/docs/git-env

#### ⚫︎ 基礎
Gitを全く使用したことがない方は、Progateをお勧めします。
よく使うコマンドが出てくるので、何周かしても良いかもしれません。

https://prog-8.com/courses/git

Gitのコマンドを忘れたら以下の記事を早見表のように使ったりしています。

https://training.github.com/downloads/ja/github-git-cheat-sheet/

#### ⚫︎ git-flow
git-flowを理解するのに以下の動画は非常にわかりやすいと思います。

https://www.youtube.com/watch?v=cOTBf8bHsXo

個人開発でのgit-flowは、以下のサイトのやり方を使用することが多いです。

https://zenn.dev/no4_dev/articles/3360a6078d8e8c

#### ⚫︎ プルリク
これは私が書いた記事ですが、この記事で基本的なプルリクの流れが見えると思います。

https://qiita.com/kimascript/items/c2e232734b3dade6f099

#### ⚫︎ HEAD

https://qiita.com/ymzkjpx/items/00ff664da60c37458aaa

#### ⚫︎ エラー

https://qiita.com/gosairei1207/items/701b7ae494b96db0f9a1


#### ⚫︎ GitHub Pages/GitHub Actions

https://docs.github.com/ja/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site

### コマンドライン
#### ⚫︎ 基礎

https://prog-8.com/courses/commandline

### Docker

https://ysincjp.udemy.com/course/linux-docker-compose-dockerfile-kanzennyumon/

### VSCode
#### ⚫︎ Prettier

https://ics.media/entry/17030/

### デベロッパーツール
#### ⚫︎ デバッグ

https://ics.media/entry/190517/

https://www.shoeisha.co.jp/book/detail/9784798180670

## おまけ
### Google Extensions
#### ⚫︎ Wappalyzer
WappalzerはWebサイトの技術スタックを知りたい時に非常に重宝します。

https://chromewebstore.google.com/detail/wappalyzer-technology-pro/gppongmhjkpfnbhagpmjfkannfbllamg?hl=ja

### お役立ちサイト
#### ⚫︎ Fledge Hub
Fledge Hubはさまざまなプロダクトがまとめられており検索することができます。技術スタック、GitHubも掲載されているので非常に参考になると思います

https://fledge-hub.com/

#### ⚫︎ Techpit
Udemyの動画みながらサービス作成される方がいると思いますが、学習教材(テキスト)でサービスを作ってみたいという方はTechpitがお勧めです。

https://www.techpit.jp/

### 本
#### ⚫︎ フロントエンドの知識地図

https://direct.gihyo.jp/view/item/000000003217

筆者のこの本に対する解説です。

https://ics.media/entry/231120/

#### ⚫︎ なぜ、あなたの仕事は終わらないのか

https://bunkyosha.com/books/9784905073413

#### ⚫︎ プログラマー脳

https://www.shuwasystem.co.jp/book/9784798068534.html

## 参考
- [Web系エンジニアにジョブチェンジするための学習順序と教材一覧｜勝又健太@雑食系エンジニア](https://note.com/poly_soft/n/n5b1d72539ed2)
- [【爆速で成長できる】正しいプログラミング勉強法 - YouTube](https://youtu.be/A2Ca0crC9wM?feature=shared)