見出し画像

おれのバックエンドエンジニアのロードマップ(2020版)

概要

バックエンドエンジニアのロードマップ(2020)の日本語翻訳してくださった、木之村さんのTweetを発見し、現時点の自分のスキルと差分とのまとめました🙋‍♂️


対象読者

・バックエンドエンジニアに必要なスキルを知りたい人
・何を勉強すればいいかわからない人
・筆者がどれだけ適当に勉強してたかを知りたい人


背景

業務で培ってきた技術や知識をロードマップと照らし合わせてみた結果、
結構スカスカな状態ということがわかりました😅

今の自分には何が足りないのかをあぶり出し、
何を重点的に学ぶかの足がかりにしたいと思い、まとめた次第です。


ロードマップ(これだけ読めばOK)

・青色で塗りつぶしているのが一応やったことある・知っているやつ
・紫チェックが、必須事項
・緑チェックは、紫の代わりになる。紫が埋まって入れば無理してやらない
・グレーチェック、後回しでOK

画像1


黄色のメイントピック

🔮インターネット

インターネットの基本的な仕組みからwebブラウザの仕組み、DNSの仕組みなど、どうやってインターネットの世界が構築されているのか



🔮基本的なフロントエンドの知識

HTML、CSS、JavaScriptの知識。ほとんどの駆け出しエンジニアはここからスタート。逆にほとんどの駆け出しエンジニアがここで挫折する。



🔮OSの基本的な知識

OSの基本的な仕組み、役割、メモリ管理、プロセス間通信、ネットワーク構成など、プログラミングとは違ったPC寄りの知識



プログラミング言語を学ぶ。言語の特徴を知る

Java、C#、PHP、Rust、Go、JavaScript、Rubyなどのプログラミング言語。HTML、CSSを学んだ後に学ぶことが多い



バージョン管理システム

Gitの基本的な使い方や知識。チーム開発では必須の知識。



ホスティングサービスGitHubアカウントを使って使い方を学ぶ

GithubやGitlab、Bitbucketのサービスを使って、ソースコードを管理する。



リレーショナルデータベース

PostgreSQL、MySQLなどのデータベースの知識



NoSQLデータベース

MongoDBなどのデータベースの知識


データベースをより詳しく

ORM、ACID特性、トランザクション、N+1問題、正規化、インデックスなど



APIについて学ぶ

REST、JSon APIs、SOAP、Authenticationなどの知識



キャッシュ

CDN、サーバサイド(Redis)、クライアントサイド


webのセキュリティ

MD5がなぜ使われていないか、HTTPS、CORS、SSL/TLSなど


テスト

ユニットテスト、結合テスト、機能テスト


🔮CI/CD

要確認



デザインと開発の原理

DRY、YAGNI、KISS、SOLIDの原則など


アーキテクチャパターン

モノシリックAPP、マイクロサービス、サービス思考アーキテクチャ、サーバレス



検索エンジン

Elasticsearch、Soler



メッセージブローカー(
一旦飛ばしていいかも

RabbitMQ


コンテナリゼーション vs 仮想化

Docker、rkt、LXC


GraphQL(一旦飛ばしていいかも

Apollo、Relay Modem



Graphデータベース
一旦飛ばしていいかも

Neo4j



webSoket(
一旦飛ばしていいかも

要確認


WEBサーバー

Nginx、Apache、Goddy


🔮プロダクトを拡大させる

ミティゲーション戦略、マイグレーション戦略、水平拡大 vs 垂直拡大、観測可能な開発


学び続ける

技術は日々進化し続ける。常に学び続けましょう!


筆者分析

・特にインターネット、OSの基礎知識が不足
・WEBセキュリティの全般的な知識が不足
・テストに関する知識が不足
・ロードマップの下の方は完全に不足

これらの丸っと知識が不足しているところは、
参考書などでしっかり補う必要がある。

ロードマップの下の方も同様だが、優先順位は落とす。


感想

これらを全部埋めないエンジニアはダメだ!ということはありません。

正直、全てを埋めなくても、バックエンドエンジニアとして働くことはできます😅(たくさん埋まってる人どれだけいるんだろう)

ただし、優秀なエンジニアは必ずこれらのロードマップをしっかり埋めてきてるはずです。

次にどんな勉強すればいいのかわからない方は、
参考にしていただければと思います!


参考文献

・Backend Developer:(https://roadmap.sh/backend)
・https://twitter.com/TetsuKinomura


この記事が気に入ったらサポートをしてみませんか?