この記事を読んでいる方は、すでに何らかのスクリプト言語とフレームワークを既に理解しているはずです。
そして、次に何を学ぶべきか迷っているのではないでしょうか?
このような質問に唯一の正解はないのですが、私なりの回答をしたいと思います。
本記事の内容
自分の技術力を再確認しよう
あなたが、次に学ぶべきことを考えているのは素晴らしいことだと思います。
エンジニアには向上心が必須なので、あなたはその資質を備えていると言えます。
しかしながら、次に進む前にRailsをシッカリと理解しているかを確認しておきましょう。
今、使っている技術を正しく理解しないで、新しい技術にいってもあまり効果はありません。
Railsアプリケーションをイチから自分で作成できるか?
小さいアプリでもいいので、自分で何かをイチから作成してみましょう。
自分でデータベースを定義して、それを実装してHerokuにアップロードしましょう。
さらに可能であらば、AWSで環境を構築して、そこでRailsを動かせることが理想です。
その一連の過程で、以下の内容を確認できるはずです。
- データベースを正しく扱うことができるか?
- Gemを正しく理解できているか。
- Rails上でJavaScriptが動く仕組みを理解できいているか?
- ドメインとIPアドレスの関係
- ロードバランサ
- NginxとPuma
Webアプリケーションを作る上で、これらに対する理解は必須です。
普段、集団で開発して保守ばかりをやっていると、一部の技術への理解が抜け落ちていることもあります。
もし、「一部はまだ怪しいかも」と感じる人がいれば、まずは怪しいところを勉強することから始めましょう。
昔に比べれば、AWSがあるので簡単に勉強してリリースすることができます。
AWSには無料枠もあるので安心して使って下さい。
次に学ぶ言語は、Railsとは異なる需要がある言語にしよう
さて、ここからが本番です。
Railsで使われている技術を正しく理解してれば、次は何を勉強すべきでしょうか?
理想としては、Railsとは異なる分野で使われやすい言語を学ぶべきです。
Ruby on RailsはWebアプリケーションで使われる動的な言語です。
同様のものは選ばないようにしましょう。
動的な言語とは、コンパイルせずに使えて、型(int, string)のチェックも緩い言語です。
Web業界で主に使われている動的な言語と静的な言語の一覧を書き出してみます。
動的な言語
- PHP
- Ruby
- Python
- JavaScript
静的な言語
- Java
- Scala
- C
- C++
- C#
- Go
できれば、次に学ぶ言語は静的な言語から選びましょう。
今だと、Go言語が人気です。
Go言語は、Googleが作成した言語で、低レイヤーからAPI作成まで使われる汎用的な言語です。
今、人気のDockerはGo言語で作られています。
Go言語を覚えておいて損はないでしょう。
逆にPHPだけは選ぶべきではありません。
なぜならば、PHPはRails同様にWebアプリケーションで使われる動的な言語だからです。
似たような言語を学んでも、エンジニアとしての付加価値はあまり上がりません。
他の選択肢だと、Pythonという手もあります。
Pythonは動的な言語で、RailsやPHPと用途が被るところもあります。
でもPythonには、機械学習、統計、AIといった用途に使えるパッケージが多くあります。
そういった方面へ進みたいのならば、Pythonを学ぶのもいいかもしれません。
転職時のアドバイス
最後に転職時のアドバイスです。
あなたが、今、Railsエンジニアだとして、いきなりGoエンジニアになろうとしても難しいかもしれません。
そのため、まずは自分が持っているRailsの財産を活かしつつ、Go言語を学べる現場を探しましょう。
今はモノリシックなRailsサービスを運営しているけど、マイクロサービス化していきたいのでGo言語を使いたいという現場なんかが良いかもしれません。
いずれにせよ、RailsとGo言語の両方を使える現場が理想です。
そういった現場を探すのが吉だと思います。
Good luck for your engineer life!