バックエンド

【2020年】バックエンドエンジニアになるためのロードマップ

Lancez-Vous. C'est gratuit
ou s'inscrire avec votre adresse e-mail
バックエンド par Mind Map: バックエンド

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. メトリックログと、問題が発生したときに問題をデバッグして解決するのに役立つその他の観察可能な項目

24. 学び続けよう