2022年、バックエンドのWeb開発で学ぶべき言語は？

毎年更新されているすべてのロードマップ、

https://roadmap.sh/

- [How to Get Started As a Front-end Web Developer in 2022 (Complete Roadmap with Free Resources) | by Salvor Pirenne | Dec, 2021 | JavaScript in Plain English](https://javascript.plainenglish.io/front-end-web-developer-roadmap-97ee759c5a9d)
    - フロントエンドウェブデベロッパーに関して
- [Full Stack Web Developer Roadmap 2022 | by Imran Farooq | Jan, 2022 | JavaScript in Plain English](https://javascript.plainenglish.io/full-stack-web-developer-roadmap-2022-492add886b3d)
    - フルスタックウェブデベロッパーに関して

とあったので、一方のバックエンドのロードマップに関わるものの更新箇所を見てみたものです。

- [Backend Developer Roadmap: Learn to become a modern backend developer](https://roadmap.sh/backend)
- [Learn to become a modern Java developer](https://roadmap.sh/java)
- [DBA Roadmap: Learn to become a database administrator with PostgreSQL](https://roadmap.sh/postgresql-dba)
- [クラウドエンジニア(AWS)ロードマップ2021 - Qiita](https://qiita.com/KurokawaKouhei/items/4e9aa3b526f3f233bf85)
- [kamranahmedse/developer-roadmap: Roadmap to becoming a developer in 2022](https://github.com/kamranahmedse/developer-roadmap)


## たとえばこんな追記

https://github.com/kamranahmedse/developer-roadmap/pull/1039/files

https://github.com/kamranahmedse/developer-roadmap/pull/1006/files

https://github.com/kamranahmedse/developer-roadmap/pull/998/files

https://github.com/kamranahmedse/developer-roadmap/pull/997/files

https://github.com/kamranahmedse/developer-roadmap/pull/996/files



## Quoraでの議論

[Which language should I learn for back-end web development in 2022? - Quora](https://www.quora.com/Which-language-should-I-learn-for-back-end-web-development-in-2022/answer/Dave-Voorhis?ch=17&oid=329280895&share=74c5e00b&srid=nbTE&target_type=answer)
(以下DeepL翻訳使用してのサマリ)

- 有能なバックエンド開発者になるためには、主要なコアとなるバックエンドプログラミング言語、**Java**（とその主要なフレームワークである**Spring**と**Hibernate**）、**C#**（とその主要なフレームワークである**.NET Core**と**Entity Framework**）を少なくとも1つは知っておく必要がある。
- 新進気鋭の**Go**
- **SQL**
    - これがなければ、バックエンドの開発を始めることすらできない。
    - しかしNoSQLツールは、使う必要が出てくるまで、わざわざ学ぶ必要はない。
- 主要なクラウドプラットフォームである**AWS**と**Azure**
    - その他は、必要に応じて習得すればよいだろう。
- バックエンドのインフラは**Linux**で動いている。
- クラウドベースのサービスに移行していても、いずれはLinuxを使うことになる。
- **Python**と**bashスクリプト**の知識
- **Apache Web Server** の構成
- **Nginx**
- Javaを使用している場合は**Apache Tomcat**の動作もある程度。
- コンテナについて理解していること。**Docker**。
- **JavaScript**
- **HTML/CSS**
    - 書く必要はないかもしれないが、フロントエンドの開発者をサポートし、彼らと一緒に働き、彼らが何をするのかを理解する必要。
    - **Node.js**を使うのであれば（たくさん使う人もいれば、全く使わない人もいる）、JavaScriptや**TypeScript**を知り、理解する必要。
- まずは以上で十分だが、**上記よりももっと重要なのは、コンピュータサイエンスを学ぶこと**である。コンピュータサイエンスを学べば、プログラミング言語は基本的な原理の実装であり、変わることはないことがわかる。その基本原理を学べば、市場にどんな言語が出回っているかは問題ではなく、必要に応じてどの言語も手に入れ、生産的に使うことができるようになる。

### Quora上のご意見

(同じくDeepL翻訳使用してのピックアップ)

- Javaの観点からは、Hibernateには賛成できない。複雑なスキーマや大量のテーブルを持つデータベースでは、Hibernateは本当に息が詰まる。
- データベースを隠すような単純な作業を除いて、Hibernateは不快で、厄介で、遅い。
- 自身のWrapd - the SQL Amplifier for Javaをはるかに気に入っている。
    - https://wrapd.org/
- しかし、Hibernateは広く普及している。
    - Hibernateを好きになる必要はないが、HibernateやJPAの実装を使わなければならない。
- 意見にほとんど同意するが、CSの学位を取得しても、DockerやTomcat、Nginxを最低限使いこなせるようになるとは、本気で思えない。
    - CSの学位を取得することで、文脈を理解し、あるツールから別のツールに切り替えても、まったく新しいトレーニングではなく、ごくわずかなシンタックスの変更で済むようになる。
    - CSの学位がもたらすのは、特定の知識だけではなく、技術に対する全体的な視点とアプローチである。

## 感想

- [Javaのカレンダー | Advent Calendar 2021 - Qiita](https://qiita.com/advent-calendar/2021/java)
- [2021年、最近のJavaに浮いた話題がない (ポエム) - Qiita](https://qiita.com/e99h2121/items/c51d2b7b802a36a97c4f)
- しかし最近は [どちらを選ぶ？関数型プログラミングとオブジェクト指向プログラミング(OOP) | CircleCI](https://circleci.com/ja/blog/functional-vs-object-oriented-programming/)

に続き今年も 試しに `Java 2022 トレンド` で検索！トップは

- [【2022年最新】Javaのフレームワークとは ？選び方のポイント＆おすすめ6選 | プログラミングを学ぶならトレノキャンプ（TRAINOCAMP）](https://camp.trainocate.co.jp/magazine/java-framework/)

> Javaのフレームワークは多くの種類が存在します。
ここでは、それらのフレームワークの特徴を紹介していきます。

> ①Spring Framework
Spring Frameworkは、2022年時点では最も採用率の高いJavaフレームワークです。さまざまなライブラリから構成されています。
> (中略)

> ②Apache Struts
Apache StrutsはWebに特化したフレームワークです。

[去年と変わらない結果](https://qiita.com/e99h2121/items/c51d2b7b802a36a97c4f)、
しかし、「コンピューターサイエンスを」が云々言われているように、俄然バックエンド、フロントエンドなどという棲み分けにとらわれないで勉強しろということなのだろうと感じました。

メモ: [WebAPIとはこういうものだよ、をざっくり意識合わせするための材料 - Qiita](https://qiita.com/e99h2121/items/75cb438bcafc457a2fa1)
メモ2: [NginxとApacheって何が違うの？？ - Qiita](https://qiita.com/hiroaki-u/items/f2455d62f8a4017663cb)

以上です～。