2020 Web開発者ロードマップの超要約をメモっておく


サイト

Developer Roadmaps
再配布が許可されていないようなので概要レベルで要約して日本語参照するメモとします。
2019との比較は割愛しています。

The 2020 Web Developer Roadmap
英語ですが、はじめてロードマップを見る方や
実際にロードマップにそって学習したい方は一読をおすすめします。
(学習サイト等もたくさんリンクしてくれています。)

Web開発者に求められる前提知識

  • 基本的なターミナルコマンドの使い方
  • Git/GitHubによるバージョン管理
  • ライセンス・セマンティックバージョニング
  • SSH、HTTP/HTTPSプロトコルとAPI
  • デザインパターン
  • 文字エンコーディング

以下が具体的に何を指しているかはよくわからない
- Data Structure & Algorithms (データの構造・アルゴリズム)

要約すると

  • ソース管理とライブラリ管理はわかっといてね
  • HTML/CSSで文字エンコーディングわかっといてね
  • デザインパターンの話をしてキョトンとしないようにね

といったところでしょうか

フロントエンド開発

「Web開発者に求められる前提知識」との重複内容は割愛

  • HTML/CSS/JavaScript
  • パッケージマネージャ(npm/yarn)
  • ビルドツール(Task Runners・Module Bundlers)
  • Framework(React.js Redux)
  • CSS in JS(Styled Components/CSS Modules)
  • CSS Frameworks(Reactstrap)
  • Testing(Jest/react-testing-library/Cypress/Enzyme)
  • Type Checkers(TypeScript)
  • Server Side Rendering(Next.js)
  • GraphQL(Apollo)
  • Static Site Generators
  • Mobile Applications(React Native)
  • Desktop Applications(Electron)

要約すると

  • HTML/CSS/JavaScriptがメインだよ
  • npm/yarn使ってね
  • TypeScript/React.js/Next.js/Apollo使ってね

バックエンド開発

「Web開発者に求められる前提知識」との重複内容は割愛

  • Internetの基礎知識
  • フロントエンドの基礎知識(HTML/CSS/JavaScript)
  • OSと情報処理知識
  • 言語学習(JavaScript)
  • Relational Databases(PostgresSQL)
  • More about Databases(ORMs/ACID/Transactions/N+1 Problem)
  • NoSQL Databases(MongoDB)
  • API学習(REST/JSON APIs)
  • 認証(OAuth/Basic Authentication/Token Authentication/JWT)
  • キャッシング(CDN/Redis/Client Side)
  • Web Securityの知識(Hashing Algorithms, HTTPS/SSL/TLS)
  • テスト(Integration Testing/Unit testing/Functional Testing)
  • CI/CD
  • 設計・開発原理(SOLID/KISS/YAGNI/DRY)
  • 構築パターン(Monolithic Apps/Microservices/SOA/Serverless)
  • メッセージブローカー(RabbitMQ)
  • コンテナ化と仮想化(Docker)
  • GraphQL(Apollo)
  • Web Server(Nginx)
  • 規模拡大(マイグレーション・スケーリング)

要約すると

  • InternetとOS基礎知識は備えておいてね
  • フロントエンドが必要な知識は把握しといてね
  • DevOpsが必要な知識は把握しといてね
  • DB・認証よろしく
  • ソフトはCI/CDしといて
  • 設計・開発でキーマンなれるようにしといて
  • 環境構築も手伝ってね

ってかなり意訳ぎみに・・・

DevOps

「Web開発者に求められる前提知識」との重複内容は割愛

  • プログラム言語の基礎知識(Python/Ruby/Node.js/Go/Rust/C/C++)
  • OSコンセプトの違いに対する理解
  • サーバ管理
  • ネットワークとセキュリティ
  • 何をどのようにセットアップするか(Proxy/Caching/Load Balancer/Firewall)
  • コードによるInfrastructure
    • Containers(Docker)
    • Configuration Management(Ansible)
    • Container Orchestration(Kubernetes)
    • Infrastructure Provisioning(Terraform)
  • CI/CDツール(Jenkins/TeamCity/CircleCI)
  • ソフトウェアとInfrastructureの監視方法(インフラ監視、アプリ監視、ログ管理)
  • クラウドプロバイダ(AWS)

要約すると

  • プログラムは読めたらいいよ
  • 構築メインだからコード化はできるようにね
  • じゃ、サーバ資源・ネットワーク・セキュリティの管理よろしく

最後に

はじめはHTML/CSS/JavaScriptのみをしっかり学習し、
Git/GitHub使ってポートフォリオを用意してみましょう
と、読めました。

その次にTypeScriptとFrameworkを学習し、
デザインパターンに沿って実装できるようにしつつ

  • パッケージ管理(npm/yarn)
  • テスト(Jest/react-testing-library/Cypress/Enzyme)
  • GraphQL(Apollo)

を使えるようになればフルスタックに近いステータスになれそうですね。