目次
- 1 はじめに
- 2 ロードマップ
- 3 チェック時のルール
- 4 チェック開始
- 4.1 1.Learn a Programming Language
- 4.2 2.Understand different OS Concept
- 4.3 3.Learn about Managing Servers
- 4.4 4.Network and Security
- 4.5 5.What is and how to setup a ________
- 4.6 6.Learn Infrastructure as Code
- 4.7 7.Learn some CI/CD Tool
- 4.8 8.Learn how to monitor software and infrastructure
- 4.9 9.Cloud Providers
- 5 まとめ
はじめに
バックエンド編の続きです。
自分のスキルがどれだけ時代にキャッチアップ出来ているか確認して行きます。引き続き、Kamran Ahmedさんのスキルロードマップに従って追って行きます。
Thank you for making a gread roadmap, Mr. Kamran.
ロードマップ
青い実線に沿って進んでいき、破線から技術をチョイスする形式になっています。

チェック時のルール
- 青い実線に沿って進んでいき、破線の選択肢から経験済みのものに〇を付ける。
- 仕事で使ったことがなくても勉強してある程度理解しているものは〇してOK。
- 載っている技術要素だけを対象にする。
チェック開始
1.Learn a Programming Language
「プログラミング言語を学ぶ」
- 〇 Python
- 〇 Ruby
- 〇 Node.js
- 〇 Go
- Rust
- 〇 C / C++
私は今までRustを使う契機がありませんでしたが・・・昨日あたりに正式発表されたFacebookの仮想通貨「Libra」のブロックチェーンがRustで作られているそうです。デカイ実例を示されると勉強しようかなーって気になってきました。ミーハーです。
2.Understand different OS Concept
「異なるOSの概念を理解する」
- 〇 Process Management
- 〇 Threads and Concurrency
- 〇 Sockets
- 〇 I/O Management
- 〇 Virtualization
- 〇 Memory/Storage
- 〇 File System
どのレベルまでの理解なのか分からないので、ある程度学習経験が有ってコーディングや設定で意識するものはOKにしています。
3.Learn about Managing Servers
「管理サーバについて学ぶ」
Operation System
- 〇 Linux
- Unix
- 〇 Windows
もう正当なUnixと呼べるものは無い気がしています。
Learn to live in Terminal
- 〇 Learn Bash Scripting
- 〇 Vim/Nano/PowerShell/Emacs
- 〇 Compiling apps from source(gcc、make他関連するもの)
4.Network and Security
「ネットワークとセキュリティ」
- 〇 DNS
- 〇 OSI Model
- 〇 HTTP
- 〇 HTTPS
- 〇 FTP
- 〇 SSL / TLS
これもどのレベルまでか分からないですが、コーディングや設定では意識します。
5.What is and how to setup a ________
「セットアップ方法」
- 〇 Reverse Proxy
- 〇 Caching Server
- 〇 Forward Proxy
- 〇 Load Balancer
- 〇 Firewall
firewalld、LVSでの設定経験ありなのでOKにしてます。
Web Server
- IIS
- 〇 Apache
- 〇 Nginx
- 〇 Tomcat
- Caddy
6.Learn Infrastructure as Code
「Infrastructure as Codeを学ぶ」
Container
- 〇 Docker
- rkt
- 〇 LXC
rktはCoreOS社のコンテナです。触ったことがありません。
Configuration Management
- 〇 Ansible
- Salt
- Chef
- Puppet
CreateRepoでローカルリポジトリを作り、Ansible Playbookを書いてインフラ構築をしています。日本ではCookPadさんが作ったItamaeなんかもメジャーですね。
Container Orchestration
- 〇 Kubernetes
- Mesos
- Docker Swarm
- Nomad
この戦争も終結した感があります。
Infrastructure Provisioning
- Terraform
- Cloud Formation
クラウド設定自動化関連。使ったことがありません。
7.Learn some CI/CD Tool
「CI/CDツールを学ぶ」
- 〇 Jenkins
- Travis CI
- TeamCity
- Drone
- Circle CI
かれこれ10年近くJenkins一択派です。
8.Learn how to monitor software and infrastructure
「ソフトウェア、インフラの監視方法を学ぶ」
Infrastructure Monitoring
- Nagios
- Icinga
- Datadog
- 〇 Zabbix
- Monit
このロードマップを見るまでははDatadog、Monitを知りませんでした。
Application Monitoring
- AppDynamics
- New Relic
これ系だとmuninを使っています。後はFlight Recorder。
Logs Management
- ELK Stack
- Graylog
- Splunk
- Papertrail
これ系だとFluentdを使っています。
9.Cloud Providers
「クラウドプロバイダ」
- 〇 AWS
- 〇 Google Cloud
- Azure
- Digital Ocean
- 〇 Heroku
まとめ
Kamranさんが挙げてくれた技術要素以外でも自分で選んだもので代替出来ていれば良いかなと思います。
ぼんやり点として学習していたものがこのロードマップで線として繋がった気がします。弱いなーと思う分野も明確にすることが出来ました。
フルスタックを目指している方は自分のスキルを俯瞰してみて線になるかやってみては如何でしょうか。
Kamranさん素晴らしいロードマップ、ありがとうございました。
来年も余力が有れば期待しています。