フリーランスのJavaエンジニアの平均年収・必要なスキルとは


フリーランスにはJavaが人気?

レバテックフリーランスではJava案件数が最も多いという結果に

ITフリーランスのための求人案件募集サイト「レバテックフリーランス」を運営するレバレジーズが公表している「レバテックにおけるプログラミング言語・スキル別案件・求人の割合」によると、2016年度の総案件数3,943件の中でJava案件が占めた割合は28.1%となり、他の言語を抑えて堂々の1位に輝きました。

「レバテックにおけるプログラミング言語・スキル別案件・求人の割合」を引用すると下記の通りになります。

1位:Java(28.1%)
2位:PHP(17.9%)
3位:JavaScript(7.1%)
4位:C#/C#.NET(7.0%)
5位:C/C++(6.4%)
6位:Objective-C/Swift(6.0%)
7位:HTML(5.1%)
8位:Android(4.9%)
9位:Ruby(4.7%)
10位:Unity(3.2%)
11位:VBA/VB・VBScript(3.0%)
12位:VB.NET(1.9%)
13位:Python(1.6%)
14位:Perl(1.0%)
14位:COBOL(1.0%)
16位:Scala(0.9%)
17位:Go(0.3%)

JavaとPHPの上位2言語が占める割合は合わせて46.0%と高く、この傾向は近年変わっていません。特にJavaはどんなシステムにも対応できるという言語的特徴から、BtoB、BtoC問わず金融系および物流系をはじめとした様々な業界に数多く採用されていることが高いシェアを誇る理由となっています。

それ以外の言語についても簡単に触れると、PHPはWeb開発を簡便に行うことが出来るというメリットがあり、新規Webサービス開発案件を中心に高い支持を得ています。

JavaScriptも新規Webサービス開発案件が多いことと、HTML5やモダンブラウザの登場でフロントエンドの作業が増えたことが3位という結果をもたらす要因となりました。C#はJavaと同じ系列の万能型言語ですが、その用途がWindows系の製品に限られているため残念ながら大きなシェアにはなっていません。

さらに2016年の特徴としてはiOSアプリケーション開発の流れを受けてSwiftの案件数が増えたこと、サーバサイドでの開発にGoやRubyが使われるようになったことが挙げられます。

以上、レバテックでの案件・求人の割合を紹介しましたが、レバテックだけではなく別の求人サイトのデータも見てみましょう。

フリエンでの案件数No.1もJava

フリーランスITエンジニア専門の案件・求人サイト「フリエン」を運営しているアン・コンサルティングが公表している「フリエンにおける言語別の案件・求人数」によると、2016年度の総案件数2,691件の中でJava案件が占めた割合は27.0%となり、Javaはフリエンでも他の言語を抑えて1位になっています。

「フリエンにおける言語別の案件・求人数」の引用データが以下になります。

1位:Java(27.0%)
2位:PHP(11.7%)
3位:C#/C#.NET(8.0%)
4位:C/C++(6.4%)
5位:COBOL(6.1%)
6位:VBA/VB(5.9%)
7位:JavaScript(4.6%)
8位:Objective-C/Swift(4.2%)
9位:HTML(3.6%)
10位:SQL(2.9%)

フリエンでもレバテック同様、JavaとPHPが2トップになっていますが、フリエンの場合はJavaの1強と言った方がいいでしょう。Javaが強い理由はここでもその柔軟性から様々な案件でニーズがあることになります。

また、それ以外の言語を見ると、フリエンでは5位のCOBOLの案件数が多いという結果になっています。これはプログラム言語として長い歴史を持つCOBOLがベテランのエンジニアたちの引退により一部で技術者不足になっていることを表しています。

結果としてはレバテック、フリエンの両方でJavaの案件・求人数が最も多いということになりました。Javaの需要が高いわけですから、フリーランスにJavaが人気と言われるのも当然のことかもしれません。

フリーランスのJavaエンジニアの平均年収・報酬単価

レバテックフリーランスにおけるJavaエンジニアの平均年収は859万円

再びレバレジーズが公表しているデータに戻り、今度は「レバテックフリーランスにおけるプログラミング言語・スキル別平均年収」を見てみます。2016年度のJavaエンジニアの平均年収は859万円で、言語別ランキングにおいては10位となりました。レバテックフリーランスにおける2016年度の平均年収が845万円ですので、Javaエンジニアの859万円という数字はほぼ平均値と言うことができるでしょう。

「レバテックフリーランスにおけるプログラミング言語・スキル別平均年収」を上位10位までご紹介します。

1位:Python(980万円)
2位:C#/C#.NET(940万円)
2位:Unity(940万円)
4位:Ruby(938万円)
5位:Android(916万円)
6位:Objective-C/Swift(900万円)
7位:PHP(881万円)
8位:JavaScript(869万円)
9位:Perl(864万円)
10位:Java(859万円)

最近のPython人気の高まりを裏付けるようにPythonが1位となりましたが、この980万円という数字はPythonの総案件数が63件と決して多い数字ではなかったことも少なからず関係しています。レバテックフリーランスの案件・求人全体から見ればUnity、Ruby、Android、Objective-C/Swiftに高額の案件が集まっています。

レバテックフリーランスではJavaエンジニアの平均年収は859万円で、月に換算するとその報酬単価は71.5万円/月となりました。

では次に、ハイクラス向けの案件が多いと言われる「ハイパフォーマー」での平均年収も見てみましょう。

ハイパフォーマーにおけるJavaエンジニアの平均年収は868万円

フリーランスITエンジニアのための案件紹介サイト「ハイパフォーマー」によると、2016年度のJavaエンジニアの平均年収は868万円となっています。

ハイパフォーマーにおける2016年度の平均年収が1,172万円ですので、Javaエンジニアの868万円という数字は約300万円ほど少ないことになります。ただハイパフォーマーはITコンサルタントやプロジェクトマネジメントといった高額案件をメインに扱っている求人サイトですので、こればかりは致し方ありません。

以下、ハイパフォーマーにおける言語別平均年収ランキング上位10位になります。

1位:C#/C#.NET(960万円)
2位:Python(915万円)
3位:Ruby(893万円)
4位:Perl(870万円)
5位:Java(868万円)
6位:JavaScript(866万円)
7位:Unity(852万円)
8位:Objective-C/Swift(750万円)
8位:Android(750万円)
10位:VB.NET(735万円)

言語別に見ればJavaエンジニアの868万円という数字は高い部類に入っていると言えるでしょう。またプログラム言語別の案件数ではここでもJavaが1位で、総案件数に占める割合は37.8%と高いものになっています。

ハイパフォーマーでのJavaエンジニアの平均年収は868万円で、月に換算するとその報酬単価は72万円/月となりました。

結果としてはレバテックフリーランス、ハイパフォーマーともにほぼ同じような数字になっていますので、これらの数字がフリーランス向けの求人サイトにおけるJavaエンジニアの平均年収・報酬単価となるでしょう。

Javaという言語の特徴

JavaとはC、C++の良い部分を引き継ぎ、それらの欠点を補うように設計されたプログラミング言語のことです。端的に言うのであれば、C、C++の改良型言語となります。

ではその特徴を簡単にまとめてみましょう。

プラットフォームに依存しない

例えばC言語の場合、特定のOSで開発したソースコードは別のOSでは動きません。しかしJavaは特定のOSで作っても他のOSで動かすことが可能となっています。C言語もJavaもコンパイラ言語(プログラムをコンパイラと呼ばれるソフトウェアで変換して実行する言語)です。

C言語のコンパイラがOS上で直接動くように変換するのに対し、JavaのコンパイラはJVM(Java仮想マシン)という実行環境で動く中間言語に変換するという特徴があります。つまりどのようなOS・端末(プラットフォーム)でもJVMで動かすことができるということです。

オブジェクト指向の言語

オブジェクト指向というのは、一言でいうと効率よく開発するための1つの考え方のことです。開発が大規模になると内部のプログラムが複雑になり、どうしてもプログラムの追加や修正が難しくなってしまいます。

独立性が高く、再利用しやすく、かつ拡張性が高いという3カ条が良いプログラムの条件とされていますが、実際にそのようなプログラムを書くことはなかなか難しいものです。しかしJavaならばそれが比較的簡単に実現可能となります。クラス、メソッド、クラスの継承、オーバーライドなどを活用することで効率のよいプログラムに仕上げることができるのです。

ガベージコレクションが便利

ガベージコレクションとはプログラムが確保したメモリ領域の中で、不要になった部分を自動的に解放する機能のことです。プログラムが計算や関数を処理する時は、マシンがその値や状態をメモリに保持します。処理する情報量が多くなればメモリは飽和し、そのせいでマシンの処理スピードが遅くなったり止まったりします。C++ではメモリが飽和しないようにエンジニアがプログラムを書く必要がありました。

しかし、Javaにはガベージコレクション機能があり、これがメモリを自動的に管理して飽和しないようにしてくれるのです。これにより多くのエンジニアがメモリを気にすることなくプログラムを書けるようになったことは言うまでもありません。

難易度は高め

いくつかJavaの長所を見てきましたが、そうは言っても総合的にJavaは難易度が高い言語になります。これはC、C++も同様です。長所が多い分だけ、そのメカニズムも複雑になるということです。特にバグの解析や、拡張性を考慮した設計をすることが難しく、Javaを学び始めてから習熟するまでに時間がかかる要因となっています。

Javaのフリーランスエンジニアの現在と将来

Javaのフリーランスエンジニアの現状

現在Javaはシステム開発技術のスタンダードとして多くの企業に採用されています。前述した通り、プラットフォーム非依存やオブジェクト指向といった特徴があることがその主な理由です。そしてスマートフォンの普及により、Javaエンジニアのニーズが増加しているという現状もあります。Androidアプリの開発言語がJavaであるため、Androidアプリ開発案件が増えているのです。

ただJavaのフリーランスが個人でAndroidアプリを開発することにメリットはありません。JavaやC言語を用いて1人でAndroidアプリ開発を行うことは可能ですが、JavaやC言語で開発するととても時間がかかるので採算を考えると得策とは言えないのです。

また近年のシステム開発の手法として「リーンスタートアップ」という方法が多く採用されるようになっています。これはシステムを最初から完成させずに、稼働させながら修正や改善を行なっていくもので、そういった現場ではJavaScriptやRubyが重宝されています。

Javaのような時間のかかる言語はそういったクイックな開発現場には合わないからです。ベンチャー企業による新規Webシステム開発のような案件ではこれからもJavaの需要は低いままと考えられるため、Javaのフリーランスエンジニアは間違ってもそういった方向に進まないように気をつけてください。

Javaのフリーランスエンジニアの将来

現時点ではJavaが世界的に見ても最も求人数の多いプログラミング言語となっています。そして今のところその求人数が減少に向かうような兆候はありません。

今後はAndroidアプリ開発や、クラウドやアプリと連動した組み込みシステム開発などが増加することでニーズはさらに高まるものと考えられています。そしてさらには個人向けのAndroidアプリだけではなく、法人向けのBtoBシステムに関連したアプリも増加傾向にありますので、業務系アプリ開発の経験があるJavaエンジニアはAndroid OSでの法人向け業務アプリ開発案件を中心に仕事を受注していくといいでしょう。

Javaエンジニアがフリーランスとして働くために必要なスキル

これはJavaに限った話ではありませんが、フリーランスエンジニアに求められているのは「即戦力」であることです。即戦力とは、参画してすぐに成果を出すことが出来る人材のことを指し、実務経験が3年以上必要と言われています。そして多くの場合においては実務経験やスキルによって契約できる案件や単価が変わるのが一般的です。

ただ、だからと言って企業がハイスキルな人材ばかりを求めているわけではありません。企業が求めているのは不足している要素をワンポイントで埋めてくれる人材です。ですから広範囲にわたる高いJavaスキルがなくとも、自分が担当する仕事に関する領域のスキルさえ保持していれば、問題なく仕事は受けられます。以下、Javaエンジニアがフリーランスとして働くために必要なスキルをいくつかピックアップしてみます。

Androidアプリ開発スキル

フリーランス市場においてJavaエンジニアの需要が高くなっている1番の要因がAndroidアプリ開発の増加です。Androidアプリ開発市場は依然として拡大基調にあり、課金形態としてのコマースも成長していることから、今後もAndroidアプリ案件は減ることはないと考えられます。

Androidアプリ開発技術はそれ以外の業務用システム開発にも応用できますので、JavaのフリーランスならAndroidアプリ開発スキルを持っておくといいでしょう。

フレームワーク経験スキル

Androidアプリ開発案件と並んで増えているのが、フレームワークを使ったシステム開発案件です。そしてその現場で特に人気なのが、フレームワークを使って様々なプロジェクトを経験しているJavaエンジニアになります。

現在ではフレームワークを使わないプロジェクトはほぼ存在しませんし、さらにはプロジェクトごとに使用するフレームワークも変わります。ですから多くのフレームワークに触れたことのあるエンジニアほど有利にななります。

システム開発全体の設計スキル

フレームワークを使ったシステム開発案件が増えていると述べましたが、最近はフレームワークに加えてシステム開発全体の設計スキルも求められるようになっています。

フレームワークを使用することは少ない工程でのセミオーダーメイド開発を可能にしましたが、それと同時にクライアントからの要求増加ももたらしました。今後はさらにその流れが加速すると考えられ、開発の現場でクライアントの多種多様な要求に応えていくためにはフレームワークだけではなくシステム開発全体を見渡すことのできるスキルが必要となるでしょう。

プロジェクト管理スキル

JavaエンジニアはJavaが出来て当たり前です。何らかの言語さえできれば仕事にありつけていた時代もありましたが、残念ながら今はそういった時代ではありません。ですからこれからのエンジニアには基本的な能力に加えてプロジェクトを管理できるスキルが必須となるのです。

もちろんプロジェクト管理には決まった方法論などはありません。重要なことはプロジェクトを成功させるために行動して経験を積むことです。当然チャレンジすれば失敗の回数も増えますが、失敗の経験もプロジェクトマネジメントには必要不可欠の要素です。

近年においてはJavaによるシステム開発案件において特にプロジェクトマネジメントをすることができる人材が不足しています。プロジェクト管理スキルはそう簡単に身につけられるものではありませんが、ここまでできるようになればフリーランスとして大変有利になりますので、チャンスがあれば積極的にプロジェクト管理の経験を積むようにしましょう。

フリーランスエンジニアはJavaで在宅ワークできる?

Javaの在宅ワーク可能案件はゼロではありませんが、全体の案件数から見ると非常に少ないです。結論を先に言うのであれば、ほぼ「できない」となるでしょう。では何故できないのか簡単に説明します。

Javaを使用したシステム開発案件は大別すると2パターンに分かれます。仕様を固めて作り始めるウォーターフォール型開発と、作りながら仕様を固めるアジャイル型開発です。

ウォーターフォール型開発

ウォーターフォール型開発ではシステム案件を持っている事業会社がシステム開発会社に発注するケースが多くなっています。ですのでこの場合のエンジニアの働き方は2通りになります。

事業会社に常駐して開発する

エンジニアをわざわざ事業会社に常駐させるケースではセキュリティや契約を重視する傾向が強くなります。よってセキュリティに不安のある在宅ワークはまず認めらません。

システム開発会社のオフィスで開発する

これは仕事を受注した開発会社が自社オフィスを中心に開発を進めていくというものです。技術的な観点から見ればリモートなどを使っての在宅ワークは可能となります。ただ在宅ワークを許可するかどうかはシステム開発会社の一存では決められない問題です。

事業会社が許可すれば在宅ワークも可能になりますが、これもセキュリティや契約の観点からほとんど許可されることはありません。よってこの場合も在宅ワークはできないとなります。

アジャイル型開発

これはシステム開発の現場でディレクター、プロジェクトマネージャー、エンジニアたちが協働しながら自社案件の開発などを進めていくパターンです。在宅ワークが認められるとしたらこのパターンになります。

ただし、この場合においても多くの企業は在宅ワークを許可しないでしょう。それは信頼関係がないためです。ですので在宅ワークを許可してもらうにはある程度同じオフィスで働いて信頼関係を築くことが重要になります。

また在宅ワークは案件の規模にも左右されます。数十人規模で開発するような案件ではマネジメントの観点から在宅ワークを許可しない場合が多くなります。ですので開発規模が数人程度であるのなら在宅ワークの可能性も上がるかもしれません。

Javaエンジニアがフリーランスとして働くときの請求書の作り方

請求書の基本

フリーランスが案件を受注し業務を完了したら、依頼主に提供した商品やサービスの代金について請求書を作成して提出します。請求書は証憑(しょうひょう)書類と言われ、フリーランスなら5年間は保存義務があります。ビジネスを行う上で大切な書類となりますので、ポイントを踏まえてしっかりと作成するようにしましょう。

国税庁のウェブサイトで「請求書等の記載事項や発行のしかた」として勧められているのは以下の5項目です。

・書類作成者の氏名又は名称
・取引年月日
・取引内容
・取引金額(税込み)
・書類の交付を受ける事業者の氏名又は名称

以上の5項目があれば請求書として成立します。あとは書式等のフォーマットを自由に決めて作成しましょう。ただ依頼主によっては依頼主の指定するフォーマットでの提出を求めてくる場合がありますので、最初の契約の段階で契約書をどのようにするのか依頼主にあらかじめ確認しておいてください。

フリーランスエンジニアの請求書の作り方

フリーランスエンジニアの報酬額は「人日計算」「人月計算」で決めます。

人日計算とは「人数×日数」による計算方式のことで、1人が1日(労働時間の目安は8時間)でできる仕事量が「1人日」となります。ですので請求書には自分が作業に要した時間と単価がはっきりと分かるように書くことが大切です。また見積もりと大きくズレてしまってもいけませんので、そうならないように注意しましょう。以下、シンプルに品目のみを記す場合と、品目の明細を記す場合について説明します。

品目のみを記す場合

品目:システム設計費(160h×4,000円)
単価:640,000
数量:1
価格:640,000

小計:640,000円
消費税:51,200円
合計:691,200円

品目の明細を記す場合

品目:システム設計費(100h×4,000円)
単価:400,000
数量:1
価格:400,000

品目:データベース作成費(20h×4,000円)
単価:80,000
数量:1
価格:80,000

品目:プログラム打込費(20h×4,000円)
単価:80,000
数量:1
価格:80,000

品目:管理システム作成費(10h×4,000円)
単価:40,000
数量:1
価格:40,000

品目:システムエラーチェック費(10h×4,000円)
単価:40,000
数量:1
価格:40,000

小計:640,000円
消費税:51,200円
合計:691,200円

上記の品目はあくまでサンプルですので、自分が従事した作業内容に応じて記載するようにしましょう。

請求書を作るときの注意点

取引年月日

取引年月日は請求日と記すことが多いです。ただし、請求日は個人宛の場合には請求書を発行した日、企業宛の場合には請求先の締め日を記載することが一般的となっています。どちらにするのか請求先に確認しておきましょう。

また締め日も企業によって異なりますので、勝手に判断せずに、必ず確認を取ってください。

請求書番号

国税庁のウェブサイトでは必須事項とされていませんが、番号を記しておけば再発行を依頼された時などに請求書を特定しやすくなるというメリットがあります。番号の振り方に決まりはありませんので、管理しやすい番号を割り振れば問題ありません。

おすすめの番号の振り方は、頭3ケタを取引先コード、下4ケタを請求書の発行順とする方法です。例えばA社の取引先コードを100と設定したら、請求書番号は100-0001となります。次にB社(取引先コード:200)に請求書を発行する際は200-0002になります。

消費税

請求書に消費税を記載する場合は、単価は税抜きで記し、小計の後に消費税を記すのが一般的です。免税事業者の条件に当てはまるかどうかは国税庁Webサイトよりご確認ください。

源泉徴収

エンジニアの報酬は源泉徴収の対象にはなりません。ただし、システム開発の現場に常駐している場合は源泉徴収の対象となります。

振込手数料

振込手数料を支払者と請求者のどちらが負担するのか、事前に確認して記載しましょう。一般的には支払者が振込手数料を負担することが多いですが、すべてのケースがそうなるわけではありません。

請求書の送付方法

請求書の送付方法は請求先の企業によって異なります。請求書原本の郵送を必要とするところもあれば、メールやFAXでOKというところもあります。事前に確認しておきましょう。

押印

法律上は請求書に押印がなくても問題はありません。ただトラブルを避けるために押印を義務付けている企業もありますのでこれも事前に確認しておきましょう。

請求書をデータで送付する場合

請求書をデータで送付する場合はPDFで送るのが常識です。PDFなら改ざんを防ぐことができますので、ExcelやWordで作成したら必ずPDFに変換してください。

独立という働き方ってどうなの?

  • 独立すると年収が上がる?
  • 安定して仕事はある?
  • 独立は保険等の自己負担が大きそう
会社員から、フリーランスや独立への転身を考えてみると、いくつも不安が浮いてくると思います。エンジニアの独立を支援する「Midworks」は、それらの不安を解消して、フリーランスのような高単価、正社員のような収入の安定を実現しています。

Midworksなら…

  • 年収が上がる
  • 安定した仕事の受注
  • 正社員同等の保障
独立やフリーランスを考えているエンジニアの方は、まずは相談から始めてませんか。