はじめに
私は実務ではJavaをメインで使用した業務システム開発を行なってますが、バックエンドエンジニアとして成長するために、まだまだ知識が足りないと感じることは多いです。
そこで本記事では、バックエンド開発において重要な概念100個というXのポストを見つけたため、今年中に学び切るための指針をまとめます。
学習方法は以下を軸に進めます:
- 書籍で体系理解
- Qiita / Zennでアウトプット・知識整理
- YouTubeで視覚的に理解
この記事自体も、自分の理解を深めるためのアウトプットとして継続的に更新していきます。
学習の進め方
100項目を闇雲にやると挫折します。以下のように段階的に進めます。
フェーズ1:基礎(1〜20)
まずは「Webの仕組み」と「バックエンドの土台」
- クライアント・サーバー
- HTTP/HTTPSプロトコル
- RESTful API / GraphQL
- CRUD操作
- 認証と認可
- データベース設計
- インデックス・トランザクション
- キャッシュ
- メッセージキュー
- モノリス vs マイクロサービス
- レート制限
- ロードバランサ / リバースプロキシ
- スケーリング
- デプロイ
- ログ / モニタリング
- エラーハンドリング
- セキュリティ基礎
- テスト
- 分散システム基礎
- 高可用性
→ ここまでで「バックエンドの全体像」が見える状態を目指す
フェーズ2:実務レベル(21〜50)
実際の開発・運用で必須になる知識
- APIバージョン管理
- WebSocket
- gRPC
- DBレプリケーション
- データ移行
- コネクションプーリング
- 正規化 / 非正規化
- ORM
- バックアップ / リストア
- APIドキュメント
- ミドルウェア
- CDN
- サーバーレス
- クラウド
- シークレット管理
- 環境変数
- CI/CD
- コンテナ
- IaC
- サービスディスカバリ
- API解析
- レート制限アルゴリズム
- シリアライゼーション
- ファイルストレージ
- 分散キャッシュ
- イベント駆動
- サーキットブレーカー
- APIゲートウェイ
- セッション管理
→ 「設計・運用ができるエンジニア」を目指すフェーズ
フェーズ3:設計・スケール(51〜80)
大規模システムを扱うための考え方
- シャーディング(水平 / 垂直分割)
- ハッシュアルゴリズム
- 暗号化(AES / RSA)
- ログ戦略
- オブザーバビリティ
- データ整合性
- Sagaパターン
- Blue/Greenデプロイ
- エッジコンピューティング
- パフォーマンスチューニング
- マルチテナント
- インデックス戦略
- ACID vs BASE
- リーダー選出
- コンセンサスアルゴリズム
- APIキャッシュ
- グラフDB
- 時系列DB
- イベントソーシング
- CQRS
- バッチ処理
- ストリーム処理
- 冪等性
- DLQ
- バックプレッシャー
- ページネーション
- 論理削除 / 物理削除
- Webhook
- コンテンツネゴシエーション
- スケーリング戦略
→「設計で差がつくエンジニア」へ
フェーズ4:上級・トレンド(81〜100)
モダンアーキテクチャと実務応用
- マルチリージョン
- データローカライゼーション
- APIオブザーバビリティ
- 分散トランザクション
- ゼロダウンタイムデプロイ
- バックアップ戦略
- セキュリティ監査
- パスワード管理
- シークレットローテーション
- APIセキュリティ標準
- RBAC / ABAC
- Policy as Code
- カオスエンジニアリング
- ハイブリッドクラウド
- APIモック
- SSR / BFF
- セッションとLB
- サービスメッシュ
- AI × バックエンド
- 量子耐性暗号
おすすめの調べ方
① 書籍
- 基礎を一気に理解する
- 体系的に学ぶ
② Qiita / Zenn
- 実務寄りの知識
- 日本語で理解しやすい
③ YouTube
- 図解・アニメーションで理解
- 特に分散システム系は有効
最後に
この100項目をすべて理解できれば、
バックエンドエンジニアとして成長できると思ってます。
ただし重要なのは:
「全部覚えること」ではなく
「必要なときに使える状態にすること」
そのために、
- インプット(本・動画・情報サイト)
- アウトプット(Qiita)
このサイクルを回していきます。
今後の予定
このシリーズでは、各テーマを1つか2つずつ深掘りしていこうかと思います。
次回:「クライアント・サーバーとは何か」