プログラミング学習を終えた先にある一人前のエンジニアになるためのロードマップ

### 参考

以下のDevOpsのロードマップをアレンジしたもの
https://github.com/kamranahmedse/developer-roadmap/blob/master/images/devops.png

### 対象

・　研修でプログラミング研修をやったけど、自分のPCでしか動かしたことがない。これって役に立つの？？
・　作ったサイト・サービスをどこからでもアクセスできるようオープンにしたい
・　レンタルサーバってやつをとりあえず借りてみたけど何すればいいのかよくわからない
・　とりあえずサーバを操作してみたい　　などなど

##  ロードマップ

![1-Page.png](https://qiita-image-store.s3.amazonaws.com/0/230829/1b506f1d-e8bd-b071-9a9a-cfc2fa812684.png)

## 学習について（随時更新予定）

### 2.OSの特性を学ぶ

□　おすすめ書籍
[Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識](https://www.amazon.co.jp/%E8%A9%A6%E3%81%97%E3%81%A6%E7%90%86%E8%A7%A3-Linux%E3%81%AE%E3%81%97%E3%81%8F%E3%81%BF-%E5%AE%9F%E9%A8%93%E3%81%A8%E5%9B%B3%E8%A7%A3%E3%81%A7%E5%AD%A6%E3%81%B6OS%E3%81%A8%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E6%AD%A6%E5%86%85-%E8%A6%9A/dp/477419607X/ref=sr_1_6?s=books&ie=UTF8&qid=1542193196&sr=1-6&keywords=OS) 

□　おすすめ学習サイト
ローカル開発環境の構築 
https://dotinstall.com/lessons/basic_localdev_win_v2

□　学ぶべきこと
Windowsしか触っていない人がLinuxを触ってみる。
WindowsとLinuxとの違いを理解する

### 3.OSの基本操作を学ぶ

□　おすすめ書籍
[Linuxコマンドポケットリファレンス](
https://www.amazon.co.jp/%EF%BC%BB%E6%94%B9%E8%A8%82%E7%AC%AC3%E7%89%88%EF%BC%BDLinux%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%9D%E3%82%B1%E3%83%83%E3%83%88%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9-%E6%B2%93%E5%90%8D%E4%BA%AE%E5%85%B8-ebook/dp/B00Z5OCH1G/ref=sr_1_1?s=books&ie=UTF8&qid=1542193472&sr=1-1&keywords=LPIC%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89)

□　おすすめ学習サイト
UNIXコマンド入門
https://dotinstall.com/lessons/basic_unix_v2

□　学ぶべきこと
Linuxでコマンドを打ってすらすらCUIで操作できるようにする
LPIC Level1程度

### 4.ネットワーク・セキュリティを学ぶ

□　おすすめ書籍
なし

□　おすすめ学習サイト
さくらVPS 接続時のセキュリティの設定
https://www.sakura-vps.net/ssh-firewall-security-settings-for-sakura-vps/

□　学ぶべきこと
ドメインの役割を理解する
SSH仕組みを理解する・設定する

### 5.セットアップをおこなう

□　おすすめ書籍
[nginx実践入門](https://www.amazon.co.jp/nginx%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-WEB-DB-PRESS-plus/dp/4774178667/ref=sr_1_1?s=books&ie=UTF8&qid=1542200977&sr=1-1&keywords=nginx)
[超速! Webページ速度改善ガイド](https://www.amazon.co.jp/Web%E3%83%9A%E3%83%BC%E3%82%B8%E9%80%9F%E5%BA%A6%E6%94%B9%E5%96%84%E3%82%AC%E3%82%A4%E3%83%89-%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%95%E3%81%AF%E3%80%8C%E9%80%9F%E3%81%95%E3%80%8D%E3%81%8B%E3%82%89%E5%A7%8B%E3%81%BE%E3%82%8B-WEB-PRESS-plus/dp/477419400X/ref=sr_1_7?s=books&ie=UTF8&qid=1542200977&sr=1-7&keywords=nginx)

□　おすすめ学習サイト
なし

□　学ぶべきこと
Webサーバのインストールから設定方法を学ぶ
大量アクセスに備えフォワードプロキシ、リバースプロキシ、キャッシュサーバー、ロードバランサー、ファイアーウォールの仕組み・設定方法を理解する

### 6.環境構築のコード化

□　おすすめ書籍
 [Docker/Kubernetes 実践コンテナ開発入門]
(https://www.amazon.co.jp/Docker-Kubernetes-%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E5%B1%B1%E7%94%B0-%E6%98%8E%E6%86%B2/dp/4297100339/ref=sr_1_1?s=books&ie=UTF8&qid=1542194071&sr=1-1&keywords=Docker)

□　おすすめ学習サイト
Docker入門
https://dotinstall.com/lessons/basic_docker
Ansible入門
https://dotinstall.com/lessons/basic_ansible

□　学ぶべきこと
今まで行ってきたソフトウェアのインストールから設定をコード化する技術を経験する
Dockerでコンテナを学ぶ、コンテナを動かす
Ansibleで自動的に環境構築を行う

### 7.CI/CDツール

□　おすすめ書籍
 [Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術](
https://www.amazon.co.jp/%E6%94%B9%E8%A8%82%E7%AC%AC3%E7%89%88-Jenkins%E5%AE%9F%E8%B7%B5%E5%85%A5%E9%96%80-%E2%80%95%E2%80%95%E3%83%93%E3%83%AB%E3%83%89%E3%83%BB%E3%83%86%E3%82%B9%E3%83%88%E3%83%BB%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%82%92%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%99%E3%82%8B%E6%8A%80%E8%A1%93-PRESS-plus/dp/4774189286/ref=sr_1_1?s=books&ie=UTF8&qid=1542194357&sr=1-1&keywords=Jenkins)

□　おすすめ学習サイト
なし

□　学ぶべきこと
バージョン管理（Githubなど）と連携して作ったプログラムが自動的にデプロイできるようにする

### 8.監視ツールを学ぶ

□　おすすめ書籍
なし

□　おすすめ学習サイト
なし

□　学ぶべきこと
監視ツールを使いサーバのCPUやメモリの容量が大きくなった場合アラートが飛ぶようにする
監視ツールのプル型・プッシュ型の違いを学ぶ

### 9.クラウドサービスを使ってみる

□　おすすめ書籍
なし

□　おすすめ学習サイト
各クラウドサービスの公式ページ

例）
・さくらVPS　入門
https://vps.sakura.ad.jp/guide/?a8=SG_fMGlctJ8FmQ_wJOAgrVa7B_QMyVIgqc6fuVIKh2aRpD_czJTSoVaJ.whDgn_ShG.BtDT0fVbLxs00000001717002

・AWS　WordPress ウェブサイトの起動
https://aws.amazon.com/jp/getting-started/tutorials/launch-a-wordpress-website/

□　学ぶべきこと
今まで学んでことをクラウドサービスを使ってお金をかけてサーバーを操作してみる