バックエンド
par イカダ チック
1. インターネット
1.1. インターネットはどのように機能しますか?
1.2. HTTPとは何ですか?
1.3. ブラウザとその仕組みは?
1.4. DNSとその仕組みは?
1.5. ドメイン名とは何ですか?
1.6. ホスティングとは何ですか?
2. フロントエンドの基本的な知識
2.1. HTML
2.2. CSS
2.3. JavaScript
3. OSと一般的な知識
3.1. ターミナルの使い方
3.2. OSの一般的な仕組み
3.3. プロセス管理
3.4. 並行処理、並列処理
3.5. 基本的なターミナルのコマンド
3.5.1. grep
3.5.2. awk
3.5.3. sed
3.5.4. lsof
3.5.5. curl
3.5.6. wget
3.5.7. tail
3.5.8. head
3.5.9. less
3.5.10. find
3.5.11. ssh
3.5.12. kill
3.6. メモリ管理
3.7. プロセス間通信
3.8. I/O管理
3.9. POSIXの基本
3.9.1. stdin
3.9.2. stdout
3.9.3. stderr
3.9.4. pipes
3.10. 基本的なネットワークの概念
4. 言語を学ぶ
4.1. 言語の癖を学ぶことを確認してください。 ランタイムに関するコア詳細(例:同時実行、メモリモデルなど
4.2. Java
4.3. C#
4.4. PHP
4.5. JavaScript
4.6. Python
4.7. Ruby
4.8. Rust
4.9. Go
5. バージョン管理システム
5.1. それらは何で、なぜ使うべきなのか
5.2. Gitの基本の使い方
5.3. リポジトリホスティングサービス
5.3.1. アカウントを作成し、GitHubの使い方を学ぶ
5.3.1.1. GitHub
5.3.1.2. GitLab
5.3.1.3. BitBucket
6. リレーショナルデータベース
6.1. PostgreSQL
6.2. MySQL
6.3. MariaDB
6.4. MS SQL
6.5. Oracle
7. データベースの詳細
7.1. オブジェクト関係マッピング (ORM: Object-relational mapping)
7.2. ACID
7.3. トランザクション処理
7.4. N+1問題
7.5. データベース正規化
7.6. インデックスとその機能
7.7. データレプリケーション
7.8. シャーディング
7.9. CAP定理
8. NoSQL
8.1. MongoDB
8.2. RethinkDB
8.3. CouchDB
8.4. DynamoDB
9. APIについて学ぶ
9.1. HATEOAS
9.2. OpenAPIとSwagger
9.3. Authentication
9.3.1. Cookie認証
9.3.2. OAuth
9.3.3. Basic認証
9.3.4. アクセストークン認証
9.3.5. JWT
9.3.6. OpenID
9.3.7. SAML
9.4. REST
9.4.1. Roy T. Fieldingの論文を読む
9.5. JSON API
9.6. SOAP
10. キャッシュ
10.1. CDN
10.2. サーバサイドキャッシュ
10.2.1. Redis
10.2.2. Memcached
10.3. クライアントキャッシュ
11. Webセキュリティの知識
11.1. ハッシュアルゴリズム
11.1.1. md5とそれを使用しない理由
11.1.2. SHA Family
11.1.3. scrypt
11.1.4. bcrypt
11.2. HTTPS
11.3. コンテンツセキュリティポリシー (CSP)
11.4. CORS
11.5. SSL / TLS
11.6. OWASPセキュリティ要件
12. テスト
12.1. 結合テスト(Integration testing)
12.2. 単体テスト(Unit testing)
12.3. 機能テスト(functional testing)
13. CI/CD(継続的インテグレーション/継続的デリバリー)
14. 設計と開発の原則(デザインパターン)
14.1. GoF
14.2. ドメイン駆動設計
14.3. テスト駆動設計
14.4. SOLID
14.5. KISS
14.6. YAGNI
14.7. DRY
15. アーキテクチャーパターン
15.1. モノリシック アプリケーション
15.2. マイクロサービス
15.3. SOA
15.4. CQRSとEvent Sourcing
15.5. サーバーレス
16. 検索エンジン
16.1. Elasticsearch
16.2. Solr
17. メッセージブローカー
17.1. RabbitMQ
17.2. Kafka
18. コンテナ化 vs 仮想化
18.1. Docker
18.2. rkt
18.3. LXC
19. GraphQL
19.1. Apollo
19.2. Relay Modern
20. グラフデータベース
20.1. Neo4j
21. WebSocket
22. Webサーバー
22.1. Nginx
22.2. Apache
22.3. Coddy
22.4. MS IIS
23. スケーリング
23.1. 製品の持続可能性について学び、注意すべき一般的なトピック。
23.2. Mitigation Strategies
23.2.1. Graceful degradation (グレースフルデグラデーション)
23.2.2. スロットリング
23.2.3. バックプレッシャー
23.2.4. Loadshifting
23.2.5. サーキットブレーカー
23.3. 違いを理解する
23.3.1. Instrumentation
23.3.2. Monitoring
23.3.3. Telemetry
23.4. マイグレーション
23.5. 水平スケーリングと垂直スケーリング
23.6. 観測可能性を考慮した構築
23.6.1. メトリックログと、問題が発生したときに問題をデバッグして解決するのに役立つその他の観察可能な項目