Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
114
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@fukuda316

バックエンドエンジニアのロードマップ in2020

記事投稿の背景

rubyを独学で勉強している最中、とても参考になるエンジニアの学習ロードマップを発見しました(有名なものらしい)。知識整理のためアウトプットさせていただきます!
元ネタは下記リンクです。
https://github.com/kamranahmedse/developer-roadmap

フロントエンド、バックエンド問わず必要になる分野

roadmap1.png

  • Git
  • Linuxコマンドなどの基本的なターミナル操作
  • データ構造、アルゴリズム
  • GitHub
  • Semantic Versioning (バージョン番号のつけ方のルールのこと)
  • SSH
  • HTTP/HTTPS、API

等々。やはりGitHubを使ったバージョン管理は必須スキル、ということですね。そのほかだとデータ構造とアルゴリズム(スタック、キューとか)の勉強は必要になるよう。

バックエンドエンジニアの学習ロードマップ

roadmap2.png

  • まずは言語の選択
    • スクリプト言語なのかコンパイラ言語なのか、またその中のどの言語を学習するかを最初に決定。基本的にはどの言語を選択しても学習の流れに大きな違いはない。
  • コマンドベースで簡単なアプリケーション作成
    • 選択した言語の実行環境を整え、HelloWorldの表示程度の、簡単なプログラムを組んで慣れていく。
  • パッケージマネージャーについて学習
    • rubyであればgem。javascriptならNode.jsのように、言語毎にパッケージマネージャーが存在。その基本的な使用方法を学習する。
  • その言語におけるベストプラクティスは何かを調べる
    • 例えばPHPであればPHP-FIGとPSRsをnode.jsとともに使用するケースが多い。このように、学習している言語の一般的な使用方法を整理しておく。
  • いくつかアプリを作って公開する
    • 簡単なアプリケーションを作成、Githubなどで公開してみる。
  • テストの仕方(単体、結合)を学習
    • その言語における単体テスト、結合テストの実施方法を調べる。
  • テスト(単体、結合)を計画し、実施
    • 実際に、作成したアプリケーションに対して単体テスト、結合テストを実施する。
  • RDBについて学習する
    • RDB(リレーショナルデータベース)について学習。RDBを使用したアプリケーションを作成する。
  • 作成したアプリを運用してみる
    • 作成したアプリケーションを一般公開してみる。例えば、CRUD機能(ユーザー登録や、削除、ブログ等の投稿機能など)を持ったアプリケーションのようなもの。
  • フレームワークを学習する
    • その言語における、よく使われるフレームワークを学習。
  • これまでに作成したアプリを、フレームワークを用いて再度開発
    • 一度作成したアプリケーションを、フレームワークに沿って再度作成してみる
  • NoSQLを学習
    • NoSQLについても学習し、RDBとの違いを整理してみる。
  • キャッシュ(メモリキャッシュ、ブラウザキャッシュ両方)を意識した実装を学習
    • ワンランク上の実装を身に着けるため、キャッシュを意識した実装方法を学習。
  • REST APIを使用してアプリを作成
    • プログラムの中にAPI連携を含むようなアプリケーションを作成

さらに学習するなら

さらにweb関連の知識をつけるために、実装を進める中で疑問に思った点は都度調べていくことがよい。例えば下記のようなことは調べると吉。

  • 認証 ( Authentication )と承認 ( Authorization )の違いを学習
  • Message brokerについて学習
  • サーチエンジンについて学習
  • Dockerの使い方を学習
  • Webサーバーについて学習
  • Webソケットの使い方を学習
  • GraphQLを学習
  • GraphDBを調べる
114
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
114
Help us understand the problem. What is going on with this article?