Javaのフリーランスプログラマーとして生きていく上で知っておくべきこと

フリーランスプログラマならJavaを学ぼう プログラマーとして就職してみた者の、

  • 給与面
  • 待遇面
  • スキルやキャリアについての不満
といったさまざまな不満や問題があり、フリーランスを志したい、と思う人も多いはずです。 そんなフリーランス志望の人たちに、Javaはおすすめの言語と言っていいでしょう。 「なぜ、Javaなのか?」そう疑問に思った方、説明していきましょう。

フリーランスがJavaの仕事を穫ってくる方法

自分が独立して、フリーランスになった姿を想像してみましょう。 そう考えてみて、フリーランスになった際に起きそうな一番の不安は、「仕事の穫り方が分からない」という事では? それもそのはず、多くのプログラマーは営業経験など皆無でしょうから、今までまったくやった事の無い未知の事に、足を突っ込んでいかねばならない事になります。 「コネも無いし、下手したら仕事が何ヶ月も無いなんて事になったら、不安で死にそうだ…。」と想像するかもしれませんね。しかし、安心してください。仕事なら、今はいくらでもネット上に案件が転がっているのです。 フリーランスのプログラマーにとって代表的な仕事紹介サイトは、
「レバテックフリーランス」 「プロシート」 「エボレストフリーランス」
あたりでしょうか。 「レバテックフリーランス」でいえば、2016年度のプログラマーのための仕事の案件数は全部で年間3、943件。 これだけあれば自分のスキルに見合った仕事がかならず見つかるはずでしょう。 だから、もしあなたが現在、会社の仕事や人間関係でとてもストレスを感じていて、メンタルをやられて疲弊していたりするのなら、ぜひとも一度これらのサイトを除いてみて、自分にあった仕事が無いか、探してみる事をおすすめします。

フリーランスでJavaの案件は多い

数あるフリーランスプログラマーのために用意されている仕事の中でも、Javaをあつかった案件は、他のプログラムの仕事に比べ群を抜いています。 2016年度におこなわれた調査では、すべてのプログラミング案件の中でJavaのスキルが必要とされるものは、全体のおよそ28%でダントツの一位となっています。ちなみに二位はPHPであり、こちらはおよそ全体の18%、三位はJava scriptでおよそ7%なので、世の企業がいかにJavaを使える人を欲しているのかがよく分かる調査となっています。

なぜ案件にJavaの仕事が多いのか

Javaは汎用性が高く、どんなシステムにも対応できるので、今ではさまざまな企業が使用しています。Javaがプログラムの主流である時代は当分の間続くと見られていて、今後数年間、仕事の案件が途切れるという事はまず無いと考えてよいでしょう。 Javaはそれまで標準とされてきた言語であるC、C++の流れから、その良い部分を受け継ぎ、C++のプログラマーも比較的すみやかにJavaに移行できるくらい似た部分を持ちつつ、他の言語と違い、プラットフォームに依存されないプログラムを組む事ができます。 つまりC++であれば、デバイスに合わせてプログラムを書き直す必要が出てきます。 しかしJavaの場合、ひとつプログラムを書いてしまえば、条件が揃えばWindowsにMacOS、androidにiOSとあらゆるデバイスでそのプログラムを走らせる事ができます。 この辺がJavaがプログラムの標準言語として大きく普及した理由です。 またオブジェクト指向としてもC++に比べて進化していて、大勢の人が関わる大規模なプログラムにおいても、他の言語よりも統一性が保ちやすいです。 なので、プロジェクトに外部の人間として関わる事になるフリーランスとしても、他の言語に比べて意思疎通が取りやすく、信頼性のあるプログラムが書ける、という事になります。 それにC++の発展系なので、今までJavaに触れた事の無い、他の言語を扱ってきたプログラマーでも、今まで使ってきた言語の応用としてJavaは飲み込みやすい、というのも大きな魅力でしょう。 しかしこういう風に書くとメリットだらけのように見えますが、やはり高度なプログラムである分、1から習得するにはそれなりの時間がかかってしまう、なんていう面も持ち合わせているので、まだプログラミング知識をまったく持ち合わせていない方は、その事を頭の片隅に置いて学んでいくといいでしょう。

Javaはandroidの仕事が多い

スマートフォンの爆発的な普及が、Javaをさらに絶大な地位に押し上げたのもあります。androidアプリの開発言語は、Javaであるからです。androidの旺盛が続く限りは、Javaの仕事はなかなか無くなったりはしないと考えていいでしょう。 といっても、前述したようにJavaは高度なプログラムであるために、androidアプリを作るにしてもそれ相応の時間がかかります。 言わば小回りが利かないんですね。自然と関わる案件も数人で黙々と作る、というよりは、多くの人が関わる大きめのプロジェクトの一員として作業をおこなう事になります。 なので、Javaだけが万能であり、絶対的立場に立っているという訳ではなく、小回りの効くJavascriptやRubyなどの他の言語の需要も依然としてあります。 そして大人数のプロジェクトのため、自分一人の圧倒的な能力で、高単価を狙いたい、という人にはやや不向きかもしれません。

フリーランスになるメリット、デメリット

会社を辞めてフリーランスになる最大のメリットはやはり「融通が利く」事ではないでしょうか。 サラリーマンと違い、基本自分が受けたくない案件は断る事ができますし、あまり仕事を入れたくない時は、自分のペースに合わせて仕事量を調整する事も可能です。 そして、仕事にたいして意欲を感じている方は、会社員時代のように与えられた仕事をこなすだけでなく、もっと自分のスキルをレベルアップさせたり、高い給与のもらえる仕事をどんどん狙いにいく事も可能です。 特に会社では下流行程しか経験させてもらえなかった、なんて不満を持つ方は、フリーランスでも上流行程に関われるチャンスは沢山あるので、よりレベルアップできるというのは非常に魅力的かと思います。 しかし、その反面でもちろんデメリットも存在しています。たとえば仕事で分からない事があったりした場合、会社だと先輩に訊く事ができますが、個人で仕事をする場合、仕事先の相手も先輩ではないので分からない場合も多いです。 なので分からない事が出てきた場合、基本自分で解決する行動力が求められると思っておいた方がいいでしょう。 そして、もちろん正社員ではないので、仕事先はあなたを守ってくれるとは限りません。仕事ができなければ次から切られてしまいますし、仕事ができたとしても会社の都合次第でいつでも切られる可能性があると思った方がいいでしょう。そういう契約で仕事する関係なのですから、そこに文句を言ってもしょうがありません。

Javaプログラマーは在宅仕事ができる?

これはプロジェクトの規模の大きさに左右される、と考えてよいでしょう。比較的少人数のプロジェクトの場合なら、許可されるケースも結構あると思います。 しかし、プロジェクトに関わる人数が多くなればなるほど、それに比例するように在宅仕事ができる可能性は少なくなります。 あなたが仕事先からよほど信頼されているのなら話は別かもしれませんが、基本会社はよく知らない人相手に在宅仕事を許可するのは、セキュリティ面での心配や機密の漏洩といった観点からみて、あまりにもリスクが高すぎます。 なので、フリーランスといえども基本的には案件先の企業に常駐して仕事をするのが、まだまだ一般的だと言えるでしょう。

フリーランスのJavaプログラマーに求められる事

フリーランスのJavaプログラマーとして、使い物になるレベルになるには、実務経験が数年以上必要と言われています。 当然フリーランスに仕事を頼む企業は、会社員のようにゆっくりと育ててなんかしてくれたりはしません。一日でも速く頼んだ仕事をこなして、提出して欲しいと思っています。 と言っても、数年でJavaに関する幅広い知識、スキルを網羅している人はごくごく一部でしょう。大半の人は自分が業務で関わってきた、幅広いJavaの中の一部のスキルだけを習得しています。 なのでJavaならなんでもできる、みたいなエキスパートを目指す事無く、「この分野はまかしておけ」という自分の得意分野を作ると良いでしょう。 「では、どういう事を得意分野にしていけばいいの?」と思うかもしれませんね。自分の好みにあったものが一番だと思いますが、特にない場合は、案件の数が単純に多い、という事でandroidアプリに関する経験を積むのがやはり今後に繋いでいけると思います。 また現在ではフレームワークを使うのが前提なため、様々なフレームワークを使ったプロジェクトに慣れている人の方が、即座に仕事に対応できて重宝されるでしょう。 またjavaだけにとどまらず、OSやデータベース、ネットワーク関連の周辺知識についても習熟していると、非常に重宝されやすいでしょう。そしてスマートフォンのアプリに関わるのならば、ゲームプログラミング、つまりは2Dと3Dのモデリングやユーザーインターフェースについての経験があると、他のプログラマーよりも抜きん出たスキルとして扱われるかと思います。

まとめ

プログラムとしての標準言語として、絶対の地位についているjava。 今後も仕事が無くなる事は10年先を見ても無さそうなので、常に仕事を探すフリーランスにとっては、これ以上無い強力なスキルと言えるでしょう。 会社員であるよりもより良い暮らし、生活をしたい方、Javaを学んでみてはいかがでしょうか?]]>