リンクを貼るだけの新人教育

# 概要

エンジニアとして最低限覚えなければいけないことはたくさんある。
必要な知識は必要になったときに覚えればいいけれど、基礎中の基礎と呼ばれるものはあって、しかも結構量が多い。

ただ未経験の人にとっては自走するにも何が基礎なのか、業務の開発をするのに何の知識がどれくらい必要なのかわからないかと。
なので新卒２年目の僕が思う、身につけておくといい基礎知識をリンクベースで提示します。

朝30分とか決めて、自分のペースで進めていくといいと思います。進めるときは、

- コマンドやショートカット系は普段から意識して使って、さっさと手に馴染ませる
- 知識系はがっちりと理論を覚えるのではなく大枠のイメージを掴む、概念を理解する
- わからないことはそのままにせずメモしておき、後で調べるなり先輩に聞くなりする

の３つを意識すること。

## 対象読者

- 未経験の新人エンジニア

## 1. Macの設定や各種基本操作

### Macのセットアップ

[僕がMacを買い換えてすぐにいれるツール&すぐにする初期設定【2016年9月版】 | dotstudio](https://dotstud.io/blog/setup-new-mac-app/)

上記記事のシステム環境設定のところだけでいい。

### ショートカット

[Chromeショートカットキーまとめ - Qiita](https://qiita.com/shotarin/items/154923c5622220362b58)

[Mac のキーボードショートカット - Apple サポート](https://support.apple.com/ja-jp/HT201236)

普段からいかに速くPCを操作できるか意識するといい。

### エディタ

[【今日から携わる】はじめてのVisual Studio Code入門（オススメの設定・プラグイン・使い方） - Qiita](https://qiita.com/abeno/items/6366bfe1ea8e5f6ee07c)

エディタは色々あるが、僕は開発用はSublime, 各種メモ用にAtomを使用している。
最初は何使っても変わらないので、今人気のVSCodeを使っておけばいい。

ちなみにviというターミナル上で使える標準搭載のエディタは、ある程度使えた方がいい。
サーバーで作業するとき、viしか使えないという状況があるため。

[知識0から始めるVim講座 - Qiita](https://qiita.com/JpnLavender/items/fabcc79b4ab0d52e1f6d)

最初はとっつきづらいので、基本的な操作（ファイル編集して、検索できて、保存できる）ができるようになっておけばOK。
ちなみにviを強化したのがvimで、vimを使いこなす人をvimmerと呼ぶ。

エンジニア界ではメモはマークダウンという形式で取られることが多いので、これは使えるようになっておくといい。

[Markdown記法 サンプル集 - Qiita](https://qiita.com/tbpgr/items/989c6badefff69377da7)

## 2. ターミナルの設定、操作

### iterm2

[MacのターミナルアプリはiTerm2で決まり!!自分の設定と基本機能 | Webrandum](https://webrandum.net/iterm2/)

mac標準のターミナルではなく、強化版のこのアプリを使いましょう。

### シェル

シェルってなに？

[シェル (shell)とは｜「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典](https://wa3.i-3-i.info/word11219.html)

CPUに命令を伝えるためのものと認識しておけばいい（ざっくり）
macは標準でbashを使用しているが、zshをオススメする。

[初心者向け：Zshの導入 - Qiita](https://qiita.com/iwaseasahi/items/a2b00b65ebd06785b443)

zshの設定はzshrcに書いてあるので、いい感じにカスタマイズしてる先輩がいたらzshrcを共有してもらうといい。

### コマンド操作

[Macのターミナルコマンド一覧（基本編） - Qiita](https://qiita.com/ryouzi/items/f9dee1540a04a0bfb9a3)

[Linuxターミナルコマンド一覧（中級編） - Qiita](https://qiita.com/ryouzi/items/73f63f09573b7b4e246c)

上に書いてあるコマンドはすぐに使えるように何回も打つべし。

## 3. Webの仕組み

ざっくりとWebサイトがどういう風に表示されてるかの仕組みを知っておく。

[Webサービスの仕組みを図解。Webサービスの裏側はこうなっている！ | Torteo Magazine](https://torteo.jp/media/atcl-2646/)

[HTML5 & CSS3入門第1回〜Webサイトの仕組み〜 - Qiita](https://qiita.com/io_fleming/items/95e7b066720720b2869e)

この本がオススメ。

[Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) | 山本 陽平 |本 | 通販 | Amazon](https://www.amazon.co.jp/dp/4774142042/)

#### 余談

現在はSPA(Single Page Application)というJavaScriptを用いて表示を高速化するような技術がメジャーになりつつある。

[ゼロから学ぶ！　Single Page Applicationの特徴と主なフレームワーク5選 (1/2)：モダンなフロントエンド開発者になるためのSPA超入門（1） - ＠IT](https://www.atmarkit.co.jp/ait/articles/1702/22/news012.html)

## 4. Webアプリケーションの構成要素

### HTML, CSS

これらは静的なWebページを構成する基本要素。
Mozilla様がすごく良質なドキュメントを用意してくれてる。

[HTML: HyperText Markup Language | MDN](https://developer.mozilla.org/ja/docs/Web/HTML)

[CSS: カスケーディングスタイルシート | MDN](https://developer.mozilla.org/ja/docs/Web/CSS)

情報量が多いので、とりあえず初心者向けのところを読んで大枠理解したら触ってみる。
ネット上で綺麗なサイトを見つけたら右クリックをして　`検証(or Inspect)`でソースコードが見れるので、
真似をしたり色々いじってみると面白い。

### JavaScript

HTMLで作られたWebページに動きをつけるために使われたり、Webサーバとして使われたり、色々用途がある。
使えると役立つことが多い言語。

[JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript)

高度なトピックをやったり、要素やメソッドを覚えたりしなくてもよくて、

- どういうものか知っておく
- 実際に使うときに調べればすぐ使える状態にしておく

って感じでおk。

[CodePen: Online Code Editor and Front End Web Developer Community](https://codepen.io/)

このサイトで遊んでみるといい。

### Ruby, Ruby on Rails

所謂動的なWebアプリケーションを作成するために必要。様々あるが、2019年現在もよく使われており、比較的初心者も理解しやすいこれらをチョイス。
Rubyはプログラミング言語、Ruby on RailsはRubyを使ったフレームワーク。実際に使ってみるのが一番わかりやすい。

[Ruby on Rails チュートリアル：実例を使って Rails を学ぼう](https://railstutorial.jp/)

長くて挫折しやすいけれど、無料のチュートリアルとしては良質なのでぜひ頑張って欲しい。
ちなみにRubyそのものもフォローしてくれる。

サクッと全体像を理解したい人は [Progate](https://prog-8.com/) がオススメ(有料)

- Rubyのドキュメント
[オブジェクト指向スクリプト言語 Ruby](https://www.ruby-lang.org/ja/)

- Railsのドキュメント
[Railsドキュメント](http://railsdoc.com/)

RailsGuideは役立つ知識が多いので読み物として読んでもいい。

[Ruby on Rails ガイド：体系的に Rails を学ぼう](https://railsguides.jp/)

ある程度理解できたらチュートリアルを何周もするんじゃなくて、自分ですごく小さいアプリ作ってみるか業務をゴリゴリやった方が理解が深まると個人的には思います。

#### DB, SQL

[SQLの基本を覚える【初心者向け】 - Qiita](https://qiita.com/chida09/items/d4b33a28b918958f267f)

概念と基礎さえ押さえておけばおk。

[【新人教育 資料】SQLへの道 〜DB編〜 - Qiita](https://qiita.com/devopsCoordinator/items/9b70e506150888e190be)

我らがCTOの中野さんが作ってくれた記事。一読するといい。

## 5. Git, GitHub

[サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】](https://backlog.com/ja/git-tutorial/)

個人開発でもチーム開発でもバージョン管理は大切。
最低でも、変更をpush~最新版をpullすることはできるようにしておきましょう。
大枠が理解できたら、細かいコマンドは都度しらべればいいのでサクッと。

[Gitコマンド早見表 - Qiita](https://qiita.com/kohga/items/dccf135b0af395f69144)

## 6. 情報収集

### 勉強会

[connpass - エンジニアをつなぐIT勉強会支援プラットフォーム](https://connpass.com/)

エンジニア向け勉強会のメジャーなサービス。
最初は勉強会出ても何言ってるかわからないことが多いと思うけど、エンジニアの知り合いを作るのは結構大事。

よちよち.rbとか、初心者向けもくもく会とか同じくらいのレベルのエンジニアが集まるコミュニティもある。
興味があるならば勇気をだして参加してみるが吉。

### エンジニア向け情報発信サイト

#### 毎日でもみて欲しい

- [Qiita](https://qiita.com/)
- [はてなブログ](https://hatenablog.com/)
- [Twitter](https://twitter.com/)

Twitterで有名なエンジニアフォローして眺めてるだけでも結構知ることがある。

#### Rubyをメインで使ってたり使ってなかったりする企業の技術ブログ

- [Mercari Engineering Blog](https://tech.mercari.com/)
- [クックパッド開発者ブログ](https://techlife.cookpad.com/)
- [クラスメソッド発「やってみた」系技術メディア | Developers.IO](https://dev.classmethod.jp/)
- [Engineers' Blog | マネーフォワード エンジニアブログ](https://moneyforward.com/engineers_blog/)

たまに見ると有益な記事があったりする。

### 技術書

[新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ](https://techlife.cookpad.com/entry/2015/03/31/093000)

良書ばかり載ってる。
ただ技術書ばっかり読んでもしょうがなくて、実際に自分で考えて手を動かすのが大事。
全く知らない概念とかを体系的に学ぶには技術書が手っ取り早いことが多い。

## おまけ

何度も言いますが全部をがっちりと覚える必要はないです。
概念さえ知っていればいくらでも応用がききます。
上記にあげたものが全てというわけではないですし。

気になったことはどんどん自分で調べて深掘りしましょう！
新人のみなさん頑張ってください♪(๑ᴖ◡ᴖ๑)♪