Python
Go
Node.js
PHP7
Rails5

これからWeb開発のバックエンドを学ぶ in 2018

私は基本Javaプログラマーで、LAMP環境での開発経験は多くありません。

PHP5/CakePHPの開発経験はありますが、全く知らない状態で
雰囲気で他のソース真似して作ったらできたって感じなので、浅ーい感じ。
特有の奇妙な文法はなんとなく空気感でわかった。

数々の聞いた事も無いような言語やベンダー製品を駆使した開発も沢山やってきたので、
雰囲気で作るスキルは非常に高いですね!

そんな私が、これから今なりのバックエンド開発の技術を学ぶにあたって、
どれを学ぶべきか、ゆる〜く、フワっと考えてみました。

2018年のWeb開発者ロードマップをおさらい

2018年のWeb開発者ロードマップを確認

学習候補

候補1: Node.js

・何たって自分が実務で1年、MySQL/Express/Angular/Node.jsを用いた
MEANスタック環境での開発経験がある。
・C10K問題の解決。
・TypeSciptでの実装もできる。
・SPAのSSR(サーバサイドレンダリング)する際に利用する事になる。
・エラーハンドリングが面倒(ハンドリング漏れたら1バグでHTTPサーバごと落ちる)

候補2: PHP7

・何たって世間的な主流。このビックウェーブには誰も抗えない。
・どの求人を見てもPHP開発経験が必須である。
・開発実績が多いので、とにかくググらビリティが高い。
・もはや基本的な教養として、如何なる職場においてもPHPぐらい知ってて当然な空気。

候補3: Ruby,Rails5

・爆速で開発して早く家に帰られるのか、Rubyエンジニアは結婚出来るという噂だ。
・PHPと同じく圧倒的存在感・・・・・!
・PHPかRailsが出来ればいろんな会社で仕事できる。

候補4: Python

・何たって高単価。
・Pythonエンジニアはお金持ちになれるので、結婚できるかもしれない。
・AIの処理でよく使う印象。よく知らないが、もっと幅広いWeb開発にも適用できるらしい。

候補5: Go

・何たって自分が実務で1年、Go/Gin/gormを用いたRestAPIサーバ開発をやった事がある。
・速く動く。
・言語仕様が簡単なので学習コストが低い。
・ゴルーチンを使ったライトな並列処理ができる。
・フレームワーク類は少ない。その代わり、フレームワーク独自の作法を学ぶ必要も無いので学習コストが低い。
・テストフレームワークが無い、と言うより、そもそもが不要というシンプル思想。
 go testとt.Errorf()さえ知ってれば、テストコード書ける。つまり学習コストがほぼゼロ。
・マルチプラットフォームでのクロスコンパイルが簡単。
・ゴーファーくんがキモかわいい。

候補6: Scala

・関数型言語で保守性が高いらしい。モチロン保守したことが無いので実際のとこは知らない。
・Javaプログラマーなので、同じJVM上で動く言語だから馴染みやすいかもしれない。
・JavaScriptでLodash使った実装は実務でやった事があるので、関数型言語の概要ぐらいはきっとわかってる。

結論

正直、Node.jsかGoをやりたいが、転職市場において、圧倒的存在感のPHP7には勝てないので
現実的には、PHP7を学ぶ事になるでしょう。

どなたかに、オススメをお教えて頂きたいところです。