これからWebエンジニアになる人向け、これだけはやってほしい知識一覧

## はじめに

株式会社シンシアでは、実務未経験のエンジニアの方や学生エンジニアインターンを採用し一緒に働いています。

※ シンシアにおける働き方の様子はこちら 

https://www.wantedly.com/companies/xincere-inc/stories

この記事は

- プログラミングを学び出したばかりの人
- これからエンジニアとして働こうとしている人
- エンジニアになったけど、基礎的なことが身についていないのでは？と悩んでる人

という人向けに書いたものです。ぜひ読んで見ていただけると嬉しいです。

個人的に[dotinstall](https://dotinstall.com/)が好きなのでそれに沿って書きます。

なお、Webエンジニアの技術スタックといっても幅広いため、基本的にはRuby on Railsのフレームワーク**のみ**でポートフォリオを開発し、Webエンジニアとして就職していくことを想定しています。


## 最低限読んでほしい本

- [イラスト図解式 この一冊で全部わかるWeb技術の基本](https://amzn.to/3XAb09Z)
 
これからWebエンジニアになるので、最低限Webって何？って話は理解したほうがいいと思っています。なぜ、自分が開発しているサービスが動かなくなったとき、どこでエラーが起きているかなどを特定するときにとても大事な知識となります。

- [リーダブルコード](https://amzn.to/3Tz9bJe)

きれいな（保守性が高い）コードを書くことは、エンジニアとしてとても大事です。先週の自分を敵にしないようにしましょう。

- [パーフェクト Ruby on Rails](https://amzn.to/3Xz0S1p)

dotinstallでは足りない、Railsの知識をつけましょう。1冊くらいは本を読んでもいいかなと思います。

- [SQL 第2版 ゼロからはじめるデータベース操作](https://amzn.to/4eqjzvD)

Ruby on Railsだけやっていると、データベース周りの知識が付きません。一度、本を読んでまとめて読みましょう。

## 見てほしいdotinstallの動画

### フロントエンド

フロントエンドではHTML・CSSを理解し、最低限のJavascriptを身につける必要があります。
また、Chrome Developer Toolsを使うことで、フロントエンドのスタイル調整やデバッグをできるようになると良いでしょう。


- [HTML入門 基本タグ編](https://dotinstall.com/lessons/basic_html_tags_v3)
- [HTML入門 フォームタグ編](https://dotinstall.com/lessons/basic_html_form_v2)
- [CSS入門 基本スタイリング編](https://dotinstall.com/lessons/basic_css_styles_v3)
- [CSS入門 応用スタイリング編](https://dotinstall.com/lessons/basic_css_advanced)
- [CSS入門 セレクター編](https://dotinstall.com/lessons/basic_css_selectors_v2)
- [はじめてのJavaScript](https://dotinstall.com/lessons/basic_javascript_v6)
- 【超重要】[Chrome Developer Tools入門](https://dotinstall.com/lessons/basic_chrome_dev_v2)
- [Tailwind CSS入門](https://dotinstall.com/lessons/basic_tailwindcss)

### バックエンド

バックエンドはRubyをベースに、Ruby on Railsが一通り書けて、身についていれば初心者としては上出来です。

#### Ruby

- [Ruby入門 基礎文法編](https://dotinstall.com/lessons/basic_ruby_grammar)
- [Ruby入門 制御構造編](https://dotinstall.com/lessons/basic_ruby_controls)
- [Ruby入門 メソッド編](https://dotinstall.com/lessons/basic_ruby_methods)
- [Ruby入門 データ構造編](https://dotinstall.com/lessons/basic_ruby_data_structure)
- [Ruby入門 クラス編](https://dotinstall.com/lessons/basic_ruby_classes)

※ NAMINORI 参考講座

https://naminori.xincere.jp/courses/3

#### Ruby on Rails

- [Ruby on Rails入門 基本機能編](https://dotinstall.com/lessons/basic_rails_v4)
- [Ruby on Rails入門 データベース編](https://dotinstall.com/lessons/basic_rails_db)
- [Ruby on Rails入門 CRUD操作編](https://dotinstall.com/lessons/basic_rails_crud)
- [Ruby on Rails入門 アソシエーション編](https://dotinstall.com/lessons/basic_rails_associations)

### その他

"その他"、ではgit/githubや、unixのコマンドをはじめとした、実務で使うtipsをまとめました。
ぜひ、無駄だと思わずしっかり勉強してください。

- 【超重要】[UNIXコマンド入門](https://dotinstall.com/lessons/basic_unix_v3)
- [Git/GitHub入門 基本操作編](https://dotinstall.com/lessons/basic_gitgithub)
- [Git/GitHub入門 ブランチ編](https://dotinstall.com/lessons/basic_gitgithub_branches)
- [Git/GitHub入門 リモート編](https://dotinstall.com/lessons/basic_gitgithub_remotes)
- 【#03まででOK】[vim入門](https://dotinstall.com/lessons/basic_vim)
- [マークダウン記法入門](https://dotinstall.com/lessons/basic_markdown_v3)
- [エディタで学ぶ正規表現入門](https://dotinstall.com/lessons/basic_regexp_v2)
- [YAML入門](https://dotinstall.com/lessons/basic_yaml_v2)


※ NAMINORI 参考講座

https://naminori.xincere.jp/courses/1

https://naminori.xincere.jp/courses/2

## 読んで欲しい記事

ここでは、読んで知識として持っていないと実際の業務で困ることを列挙します。
あくまでも焦点は実務でしっかり業務をこなせることです。

ぜひ、一つずつ読んで知識として身につけて、使いこなしてください。

- [実務未経験者の人に読んでほしいGitHubの実務tips](https://qiita.com/yamadagenki/items/5e4ee79a7a680b1675e8)
- 静的解析について
    - [静的解析(コーディングスタンダード解析)とは](https://www.techmatrix.co.jp/t/quality/static-analysis.html)
    - [分かった気になる静的解析](https://qiita.com/s-tanoue/items/7eb485409765442fcb54)
- ブレークポイントデバッグについて
    - [デバックツール(pry-rails)について　binding.pryの使い方](https://qiita.com/STHEXA/items/1de2411cb3987066c9b9)
- [論理削除と物理削除とは](https://qiita.com/jonson29/items/4743409eda08fcdf5410)
- [ステージング環境とは？開発環境、検証環境との違いと役割](https://www-creators.com/archives/780)
- [CSSセレクタのチートシート｜37パターンを一覧で解説](https://webliker.info/css-selector-cheat-sheet/)

## その他

プログラミングコンテストの問題はよく意味がないと聞きますが、

- 問題を理解し、それを思考すること
- 思考したことをプログラムで表現すること

は、実際の業務となにも変わりません。

最低限AtCoderのA問題は解けるようになりましょう。

https://atcoder.jp/


## まとめ

個人的に、Webエンジニアとして働く上で理解しておいて欲しい内容を記載しました。逆にいうと、これだけしっかり勉強していればWebエンジニアとして必ず就職できると思います。

※ 少なくともちゃんと使いこなせていたら弊社では採用しています。

ぜひWebエンジニアなって、日本のエンジニア不足を一緒に解消しましょう。

## その他

上記の学習を終えて、転職活動用のポートフォリオを作るならこちらをよろしくお願いします。

https://portfolio.xincere.jp/