近年、フリーランスになる人の数が徐々に増えてきました。
フリーランスになることのできる職種というのはある程度限られていて、そのうちの1つがエンジニアという職業です。
ちなみにここで言うエンジニアとは、実際に自分でプログラムを書くことのできる人のことをさします。
日本でエンジニアと言うとSE(システムエンジニア)をさすことがありますが、SEでフリーランスになることは基本的に難しいと言えます。
エンジニアでフリーランスを目指すには、基本的にはWebエンジニアなどが最も向いています。
Webエンジニアって何か分からないという人のために説明すると、Webエンジニアは簡単に言えば「Webサービスをつくることのできるエンジニア」を指します。
Webサービスとは、代表的なもので言えばツイッターやFacebookなどです。
そこまで大きな規模でないにしろ、そのようなWebサービスを作ることのできるエンジニアをWebエンジニアと言います。
Webエンジニアにも色々な種類がありますが、フリーランスになろうと思ったら学ぶ言語というのはちゃんと考える必要があります。
Webサービスを作るためによく用いられる言語としては、PHP、Python、Ruby、Javaなどがあります。
プログラミングをほとんどかじったことのない人からすると、もしかしたらJavaというのが一番聞いたことのある言語かもしれません。
Javaは多くのプロジェクトで使われており、特に金融系のシステムではJavaが使われることが多いです。
ですが、何も考えずにJavaの勉強を始めるのは危険です。
特に将来的にフリーランスを目指すのであれば、Javaという言語は向いていません。
その理由は、Javaという言語が使われている案件の性質が特殊だからです。
先ほども述べましたが、Javaという言語は金融機関等で使われることが多いです。
しかし、それらのプロジェクトでは、いわゆる皆んなが憧れるようなフリーランスというのは参画しません。
派遣のような形でフリーのエンジニアが参画することはありますが、それはいわゆるちゃんとしたフリーランスとは違います。
完全に会社に所属せずに、自由に生きるフリーランスはそもそも「派遣」されるものではありません。
では本物のフリーランスエンジニアはどのようなプロジェクトに参画しているのでしょうか。
基本的には、スタートアップの企業や、近年成長中のIT会社などのプロジェクトに参画しています。
そして、それらの企業では基本的にJavaという言語が使われている可能性は高くありません。
(もちろんゼロではありませんが。)
それらの企業では、RubyやPHPなどが使われています。
スタートアップでは特にRubyを使っている企業が多いです。
それらのことを考えると、もしフリーランスエンジニアを目指すのであれば、RubyやPHPを学ぶべきと言えます。
また、海外でフリーランスをしたいというのであれば、Pythonも選択肢に入っています。
いずれにせよ、RubyとPHPとPythonは比較的似ており、どれか1つをマスターすれば他の言語もマスターしやすいです。
また、Javaに比べれば比較的学びやすい言語でもあります。
これらのことを考えると、もしフリーランスのエンジニアとして将来働きたいという思いが少しでもあるのなら、Javaを学ぶべきではありません。
まずはRubyやPHPやPythonを学ぶのが本当におすすめです。
エンジニアになるだけであればJavaでも問題ないかと思いますが、目的の1つにフリーランスになりたいというのがあるなら、そこは間違えないように気をつけましょう。
ここまで色々話してきましたが、ここまでの話は「サーバーサイド」の話です。
Webサービスを作るには、「サーバーサイドエンジニア」だけでなく、「フロントエンドエンジニアも必要です。
「フロントエンドエンジニア」とは、簡単に言えばユーザーの目に見える部分を担当するエンジニアです。
(サーバーサイドエンジニアは裏の仕組み等を作るエンジニアです。)
サーバーサイドエンジニアがフロント部分も担当することもあるので、一概に完全に分けられるものではありませんが、一般的にはフロントエンドエンジニアは見た目の部分を担当します。
そして、フロントエンドエンジニアでも、フリーランスになることができます。
フロントエンドエンジニアが学ぶべきは、Javascriptという言語です。
(ちなみにHTMLとCSSはできて当たり前の世界です。)
JavascriptはもちろんJavaとは全く違う言語です。笑
Javascriptには色々なフレームワークがありますが、最近だとVue.jsやReact.jsが人気です。
以前はJQueryの一強だったのですが、時代は変わりつつあります。
もしあなたがフロントエンドエンジニアとしてフリーランスになりたければ、Vue.jsやReact.jsを学びましょう。
途中からフロントエンドの話に脱線してしまいましたが、
まとめると、「フリーランスエンジニアを目指すのであればJavaという選択肢はあまり現実的ではない」です。
また、フロントエンドとサーバーサイドでは学ぶ言語も違うので気をつけましょう!