- フリーランスが今からGo言語を学ぶのはアリ?ナシ?
- Go言語のフリーランス案件の単価は?求人数は?
- Go言語が活かせる仕事の種類ってどんなものがある?
Go言語(Golang)は近年で大流行しているプログラム言語であり、高単価な求人案件も多い。しかしまだ、Go言語を採用している企業は限定的であり、案件の絶対数は多いとは言えません。
そのため、どういうニーズに対してGo言語が使われるかを知っておかないと詰んでしまいます。
私はエンジニア歴21年の中で、会社やプライベートでC/C++のようなレガシー言語からトレンド言語まで幅広い開発をしてきました。しかし、その時の状況に対して不向きな言語を選択してしまう失敗もたくさんしてきました。
この記事では、Go言語の特徴、フリーランス案件の単価相場・求人数、職種、将来性について解説します。
この記事を読めば、「自分はGo言語を学ぶべきか?」「どう活かしたらよいか?」の判断ができるようになります。
【結論】
Go言語のフリーランス案件は、求人数が少ないが、高単価になりやすい。Go言語は人気急上昇中で学びやすいため、習得をおすすめできる。
「Go言語」とは?
本章ではGo言語が「なぜそんなに人気なのか?」「習得をおすすめする理由」をその特徴を踏まえて解説します。
Go言語の特徴
Go言語(Golang)は静的型付けのコンパイル型として人気急上昇中のプログラム言語です。コンパイラ、ツール、ソースコードはオープンソース(OSS)として誰でも無料で使用可能です。
静的型付け言語(Java、C/C++、etc.)のように高速で動きつつ、動的型付け言語(Ruby、Python、etc.)のような生産性や可読性の高さも兼ね備えている点が特徴です。
たとえば、RubyやPHPで開発されてきた既存のWebシステムに対して、さらに高速で並列に処理する必要がある場合に選択肢としてGo言語が出てきたりします。「まるでスクリプト言語を書くようなライト感覚でコンパイル型言語を扱える」点が人気急上昇の要因です。
Go言語は2009年にGoogle社により開発された比較的に新しい言語で、日本のIT業界でもトレンドでモダンな言語として多くのベンチャー企業を中心に採用が急増している今最も注目度の高い言語と言えるでしょう。
一方、Go言語はシンプルさを追求した言語であるため、拡張性に欠けているデメリットもあります。
そのデメリットの一つとしてGo言語は、オブジェクト指向の言語では無い点が挙げられます。それゆえ、JavaやC++のように設計重視の感覚でいるとハマることもあります。実際に開発現場では「アジャイル開発」の手法を取り入れた常駐開発が主流になっています。
Go言語の特徴のまとめ
- コンパイル型の静的型付け言語であり、軽量かつ高速
直接機械語へコンパイルするため、JVM(仮想マシン)系言語より高性能!(C/C++に近い性能) - 文法がシンプルで学習しやすく、可読性も高い
- C言語の伝統に則った構文(構造体やブロックの区切りなど)
- 並列処理に言語レベルで対応できている
- ポインタの概念が無く安全なメモリ管理になり、記述もカンタン
- 「gc」と「gccgo」の2種類の処理系がある (※)
- Linux・Mac・Windows・Androidで動作可能
- オブジェクト指向をサポートしていない
クラス・継承がない。genericss(ジェネリクス)のような考え方もない。
(※)
gc ... Go言語で実装されたセルフホスティングのGo言語コンパイラ。
gccgo ... フロントエンドにC++を、バックエンドにGCCを利用したサードパーティー開発のGo言語コンパイラ。
Go言語はC言語を知っていると習得しやすい!C言語よりゆるい片付けでカンタンに使える
同じ静的型付け言語であるC言語やJavaについては、次の記事を参考にしてください。
C言語やC++言語をメイン言語としてフリーランスで独立できる? 「C言語は難しい」と聞くけど、今から学ぶ価値ある? C言語エンジニアの将来性は? 「C言語は習得が難しいからやめとけ」の声を鵜呑みにし、難しいという理[…]
Javaをメイン言語としてフリーランスで稼げる? Javaのフリーランス案件の単価は?求人数は? Javaが活かせる仕事の種類ってどんなものがある? Javaの歴史は非常に古く、今でも人気があり学ぶ価値の高い現役の[…]
フリーランスがGo言語を学ぶべき3つの理由
目指す業種によりますが、フリーランスエンジニアであればGo言語を学ぶことを強くおすすめします。
Go言語がおすすめの理由は、比較的カンタンに習得できるにも関わらず、案件も高単価になりやすいコストパフォーマンスが高い言語だからです。
Go言語を学ぶべき3つの理由
- 【学ぶべき理由1】カンタンで学びやすい
文法がシンプルで静的型付け言語としては初心者でも学びやすい部類に入る。 - 【学ぶべき理由2】案件が増加・高単価の傾向にある(とにかく流行っている)
人気急上昇中で案件も増加中。売り手市場となっているため高単価になりやすい。 - 【学ぶべき理由3】トレンドに強いエンジニアと思われる
「トレンドについていける学習能力が高いエンジニア」と企業から評価されやすくなる。
習得の難しさは、同じ静的型付け言語のJavaやSclalaを100点とするとGo言語は50点くらいと見て大きなズレは無いでしょう。Go言語は文法が限定的であり、学習範囲も限られるためです。
しかし、Go言語のスキル一本でフリーランスを生き抜くことは困難なので、初心者が最初に学ぶ言語としてGo言語を選択することはおすすめできません。
プログラム初心者であれば、動的型付け言語としてはPythonやRubyなどを、静的型付け言語であればJavaやC/C++言語などから学ぶと良いでしょう。また、他言語でプログラム言語の基礎を知っているとGo言語の習得もより効率が良くなります。
Go言語は「複数の言語スキルの一つ」として習得しておこう!一本に絞るような過度な期待はキケンです。
Go言語の人気は急上昇中!
Go言語の成長度や注目度は、数あるプログラム言語でもPythonやKotlinのトレンド言語と並びトップクラスと言えるでしょう。
特に国内でのGo言語の人気や需要は、静的型付け言語が見直されている状況の後押しを受けて急成長中です。人気の理由は文法がモダンかつシンプルで学びやすく、将来性があることも挙げられます。
- HackerRank社が発表した「学習したいプログラム言語ランキング」で2018~2020年の3年連続で1位
- Stack Overflowの「最も愛されている言語ランキング」で急上昇10位
※ 上記は2021/8/19にアクセス
HackerRank社が発表した「学習したいプログラム言語ランキング」で2018~2020年の3年連続で1位
Stack Overflowが発表の「最も愛されている言語」でGo言語が10位
Go言語のWebフレームワークも充実しつつある
近年のGo言語人気に伴い、Webフレームワークは機能が豊富なものから軽量化を目指したものまで、多くの種類が開発されています。
Go言語のWebフレームワークは大きく「軽量型」と「フルスタック型」に分類できます。高速さや開発の容易さを優先するような小中規模向け開発の場合は「軽量型」を、機能面の充実を優先する大規模向け開発の場合は「フルスタック型」を選択すると良いでしょう。
Go言語のWebフレームワーク
- echo(エコー)
軽量型。RESTをサポート。高速で拡張性も高くコードが読みやすい点でとても人気。
https://echo.labstack.com/ - gin(ジン)
軽量型。ミドルウェアも豊富で定番。Go言語の初期の頃からある「Martini」をモデルに誕生し、約40倍の高速処理が可能。セキュリティも強い。
https://gin-gonic.com/ - iris(アイリス)
軽量型。ベンチマークで最速を謳っている。ドキュメントやサンプルが豊富で学習しやすい。
https://www.iris-go.com/ - Revel(レヴェル)
フルスタック型。MVC思想に則っている。JavaやScalaで有名な「Play Framework」をモデルに誕生。
https://revel.github.io/ - Beego(ビーゴ)
フルスタック型。MVC思想に則っている。RESTをサポート。HUAWEI社をはじめ多くの中国系企業で使われている。Rubyの「Sinatra」をモデルに誕生。
https://beego.me/
それぞれが特徴的で「デファクトスタンダードなGoフレームワーク」と呼べるものは今はまだ無いようだぞ
Go言語案件の単価相場・求人数
Go言語のフリーランス案件は他言語に比べ、トップクラスに高単価で求人数も増えてきているのが特徴です。Go言語案件の報酬の平均単価は81万円/月であり、案件さえ安定して獲得できればかなり効率的に稼げる言語と言えるでしょう。
KotlinやScalaのような最近人気が出てきたトレンド言語は、まだエンジニア数も少ないため希少価値があり高単価になるようです。
しかし、求人数で見ると692件と十分に多いとは言えないため、Go言語一本でフリーランスをやっていくのはまだまだ心許ないと言えるでしょう。
Go言語の求人・案件の月額単価相場 ※2021/6/19時点
»引用元|レバテックフリーランス - 単価相場を比較
Go言語を扱えるプログラマーの数はまだまだ多くありません。習得の難易度は高くないものの、習得者がトレンド技術に手を出せる余裕と向上心のある上級プログラマーに限られているためです。
「Goを使いこなせる」「Goの開発経験がある」のであれば、企業からは高く評価してもらいやすい。
仮にGo言語を非採用の企業に対しても「トレンド技術はしっかり抑えている」という学習姿勢を評価してもらえる可能性があるぞ。
プログラム言語別の月額単価相場(単価の高い順) ※2021/6/1時点
言語 |
平均単価 |
最高単価 |
求人数 |
Kotlin |
82 |
125 |
553 |
Scala |
82 |
165 |
284 |
Go言語 |
81 |
145 |
692 |
Ruby |
80 |
145 |
1586 |
Swift |
79 |
125 |
929 |
R言語 |
79 |
95 |
46 |
Python |
77 |
145 |
1474 |
Perl |
73 |
110 |
280 |
JavaScript |
72 |
145 |
4119 |
PHP |
72 |
145 |
3824 |
C++ |
71 |
125 |
553 |
Java | 69 | 165 | 5791 |
C# |
68 |
115 |
1608 |
C言語 |
67 |
115 |
95 |
SQL |
65 |
145 |
1828 |
VB.NET |
61 |
95 |
600 |
COBOL |
61 |
95 |
160 |
» 引用元|レバテックフリーランス - 単価相場を比較
また、次の調査結果からもGo言語案件は求人数は少ないけれども給与が高めな状況が見て取れます。
HRogリストの給与と案件数の相関関係より、Go言語の単価の高さが顕著
» 引用元| HRogリスト(フロッグリスト)
「Go言語を武器にフリーランスエンジニア案件の単価を上げたい」という方は次の記事を参考にしてください。
フリーランスエンジニアの単価相場ってどれくらい? 職種や年齢によって単価相場は変わる? 稼げるプログラミング言語は? フリーランスエンジニアの単価相場も知らずに闇雲に案件探ししていませんか? それでは、自分の[…]
Go言語案件の種類
本章では、実際にGo言語が使用されている案件の種類について解説します。
現状のGo言語の案件は企業の現場で常駐し、チーム内で対話をしながら小さな開発サイクルを回すアジャイル開発のスタイルが多いため、在宅ワークが少なめになる傾向があります。
- 【種類1】Web系の開発案件
- 【種類2】モバイルアプリの開発案件
- 【種類3】組み込み系システムの開発案件
【種類1】Web系の開発案件
Web業界でGo言語は、高速なAPIサーバーの開発でよく使用されています。
近年のAPIサーバーは、複数の小さなサービス(マイクロサービス)の連携で構成されています。そのマイクロサービスを作るには、RubyやPHPなどの低速なスクリプト言語ではなく、高速処理できるGo言語が好まれるのです。
かつて、高速なマイクロサービス用途での対抗言語としては「Node.js」が主流でしたが、近年ではGo言語に置き換わりつつあります。
そのGo言語への変化の理由には「静的型付け言語としては学習しやすい」「処理性能が高い」の点が挙げられます。他にも「Google推しである」という点も無視できません。GCP(Google Cloud Platform)が提供するPaaSのGAE(Google App Engine)ではGo言語が第一選択肢だったりします。
また、より高速処理や複雑な実装が求められたりするケースでは、サーバーサイドの静的型付け言語としては、Java、Scala、Kotlinあたりが選択肢になりますが、「できるだけカンタンに」と考える場合はGo言語が選ばれます。
「マイクロサービス」の流行や「Google推し」の背景もあり、今後もWeb業界でGo言語はどんどん使われていくでしょう。
Web系アプリケーションの開発をこなすには、HTML/CSSなどのWeb系の基礎知識、言語のフレームワークの知識、PaaS/IaaSの知識、Dockerコンテナのようなインフラ知識、etc.が求められます。Goの高速性を活かすために、あえてフレームワークを使わない選択肢もあります。
【補足】 APIサーバーとは?
Webアプリケーションを構成するサーバ側のプログラムの実行環境を提供するソフトウェア。クライアントマシンからの要求に対して何らかの形式(JSONなど)でレスポンスを返す。
【種類2】モバイルアプリの開発案件
Go言語はマルチプラットフォームに対応しており、Windows・MacOS・Linux・Android・iOSの幅広いOSに対応しています。そのため、Webアプリケーションだけでなく、スマホアプリ開発も可能です。
AndroidやiOSのスマホアプリでも最近ではGo言語で開発されるケースが増えてきており、「Go mobile」パッケージを使えば、ネイティブアプリやライブラリを作ったりすることができます。「Go mobile」で作ったGo言語ライブラリは、モバイル開発でよく使われるKotlin、Swiftから呼び出せるだけでなく、逆方向に呼び出すこともできます。
Go言語のモバイルアプリ開発案件には、「モバイルオーダーサービス」や「モバイル決済サービス」など決済の生じる取引に関する案件が多い。他にも「メルカリ」アプリの一部にもGo言語が使われているように、類似のアプリ開発の案件も求人として出されているケースも見受けられます。
「カンタン」かつ「高速」であるGo言語のメリットはモバイルアプリの分野でも活かせる!
しかし本格的にスマホアプリ案件を中心にやっていくには、AndroidではKotlinを、iOSではSwiftを習得すべきです。それぞれ次の記事を参考にしてください。
Kotlinをメイン言語としてフリーランスで稼げる? Kotlinのフリーランス案件の単価は?求人数は? Kotlinが活かせる仕事の種類ってどんなものがある? KotlinはAndroidアプリ開発を中心に近年で[…]
Swiftをメイン言語としてフリーランスで稼げる? Swiftのフリーランス案件の単価は?求人数は? Swiftが活かせるiOSエンジニアってどんな仕事? SwiftはApple製OSのアプリ開発に特化したプログラ[…]
【種類3】組み込み系システムの開発案件
Go言語のフレームワークでもある「Gobot」を使用することで、ドローンやロボットなどの高度なIoT系の組み込みシステムの開発も可能です。
「Gobot」にはネットワーク上の複数のデバイス間で相互に通信できる機能があり、外出先からデバイスを操作したりセンサーが反応した時に他のデバイスと機能を連動させたりできます。
組み込みシステムで一般的なC言語で開発される領域よりもう少し上位アプリの開発言語としてよく使われるJavaの対抗としてGo言語が選択されるケースが増えてきています。
先述のモバイルアプリはもちろんのこと、スマート家電・ドローン・自動運転、etc.の需要も高くなる傾向で、いわゆるIoT系のデバイスの活性化に伴いGo言語の需要も増えてくるでしょう。
IoT機器で「Javaよりもうちょっとカンタンに記述したい」のケースにGo言語は最適だぞ!
Go言語エンジニアの将来性は?
次のような理由から、Go言語エンジニアの将来性はかなり高いと見て良いでしょう。加えて、先述の通り学習コストも高くないので、学ばない理由があまりない超おすすめのプログラム言語です。
- 【将来性がある理由1】Go言語エンジニアの需要が伸びている
- 【将来性がある理由2】Google推しで大手企業が採用しはじめている
- 【将来性がある理由3】Google系のサービスと親和性が高い
- 【将来性がある理由4】Go言語はOSSとして進化し続けている
【将来性がある理由1】Go言語エンジニアの需要が伸びている
Go言語のエンジニア需要は、次のような状況からとても伸びていることがわかり、フリーランス案件としても現時点で既に「売り手市場」と言えます。
そのため、今後のGo言語エンジニアの案件はしばらくは安泰であり、将来性は十分に高いと考えられます。
Go言語エンジニアの需要が高い事がわかる状況
- Go言語案件の単価はトップクラスである
- Go言語はエンジニアが学びたい言語の第1位である
- まだまだGo言語のエンジニア人口は少なく、伸びしろがある
上記のデータは先述の「Go言語案件の単価相場・求人数」「Go言語の人気は急上昇中!」を参照ください。
【将来性がある理由2】Google推しで大手企業が採用しはじめている
「Google社が開発したGo言語は信頼できる」ということもあり、多くの大企業がGo言語を採用しはじめています。背景としては、Web業界を中心にマイクロサービスの開発が増えてきている点があります。
当然、Google圏内では、YouTube・Chrome・Android系のサーバー、etc.で採用されていますし、Google圏外でもBBC Worldwide・Canonical・Heroku・Nokia・SoundCloud、etc.といった有名な海外企業が続々と採用しはじめています。また、Dropboxも一部のマイクロサービスとしてGo言語を採用し、GitHubでソースコードを公開しています。
同様にGoogle圏外の日本でも、はてな・Gunosy・メルカリ・freee・AbemaTV、etc.といった大手企業が続々とGo言語を導入してきています。
このようにGoogleを中心に多くの大企業が採用している現実を見ると、Go言語の将来性を感じるのは自然なことでしょう。
もはや世界のスタンダードであるGoogleでの実績は、大企業にとっては最大の安心材料だぞ
【将来性がある理由3】Google系のサービスと親和性が高い
Go言語はGoogle社がオープンソース(OSS)で公開している多くのサービスで利用できるため、将来的にも使われ続けると予測できます。
特に、AIライブラリのTensorFlow(テンソルフロー)、クラウドサービスのGoogle Cloud Platform(GCP)、コンテナを管理するKubernetes(クバネティス)が有名です。今後もAI活用やクラウドでの開発はIT業界で重要な位置づけであり、その先頭を走るGoogle社のプラットフォームは無視できない存在でしょう。
これらの環境においてGo言語が優先的に使われるため、Go言語が注目されることは必然と言えます。
また(Google系サービスではないですが)コンテナ型の仮想環境を提供するプラットフォームのデファクトである Docker でもGo言語が使われています。他、Packer、SerfといったオープンソースもGo言語で書かれています。
今後はこのようなDevOps系のインフラ構築も標準的になっていく中で、Googleの影響力が強いGo言語の注目度はより高くなっていくと予測できます。
様々なサービスの母体がGoogleである現実を鑑みると、今後もGo言語の広がる可能性は高いと言えます。
【将来性がある理由4】Go言語はOSSとして進化し続けている
Go言語はオープンソース(OSS)プロジェクトとなっているため、今後の発展が大いに期待できます。仮に、Google社が独断でGo言語の推奨をトーンダウンしたとしても、OSSとして進化は続くと考えられます。
たとえば、2017年7月13日、Go言語はバージョン2への取り組みへの開始が発表されました。バージョン1.x系とバージョン2の開発は並行して行われ、バージョン1.20がバージョン2と同義となると宣言されています。「例外処理ない」「Genericsがない」、etc. のようにGo言語のデメリットが改善されるようです。
» 参考記事|The Go Blog
今後も互換性のあるリリースが行われる予定なので、Go言語はさらに使いやすいプログラミング言語となると期待できるぞ。
まとめ
以上、Go言語の特徴とフリーランス案件の単価相場・求人数、職種、将来性について解説してきました。
【結論】
Go言語のフリーランス案件は、求人数が少ないが、高単価になりやすい。Go言語は人気急上昇中で学びやすいため、習得をおすすめできる。
Go言語の習得をおすすめする理由は次です。
- 【学ぶべき理由1】カンタンで学びやすい
- 【学ぶべき理由2】案件が増加・高単価の傾向にある(とにかく流行っている)
- 【学ぶべき理由3】トレンドに強いエンジニアと思われる
Go言語のフリーランス案件は次のように多種類あります、現状の案件数は多くないですが、今後は増えていくと考えられています。
- 【種類1】Web系の開発案件
- 【種類2】モバイルアプリの開発案件
- 【種類3】組み込み系システムの開発案件
次のような理由から、Go言語エンジニアの将来性はかなり高いと見て良いでしょう。
- 【将来性がある理由1】Go言語エンジニアの需要が伸びている
- 【将来性がある理由2】Google推しで大手企業が採用しはじめている
- 【将来性がある理由3】Google系のサービスと親和性が高い
- 【将来性がある理由4】Go言語はOSSとして進化し続けている
Go言語の案件は多くのエージェントで扱われています。まずは次のフリーランスエージェントを見比べ、無料エントリーから始めることをおすすめします。
フリーランスエージェントの種類が多すぎて選べない 各エージェントの特徴を数値比較できるようにしてくれ! そもそもフリーランスの案件探しにエージェントは必要? ITエンジニアがエージェント選びを間違えると「単調かつ激[…]
以上、このブログでは、このように「会社員エンジニアがフリーランス独立して自力でお金を稼げるようになるまで」の役立つ情報を発信し続けていきます。
ではまた!