Go言語は、2009年にGoogleによってオープンソースが公開された比較的新しい言語です。
そのため、他の言語と比較すると、Go言語の習得者は、まだまだそれほど多くはないと言われています。そんなGo言語の現状と将来性について興味を持たれている方も多いでしょう。
本記事では、Go言語の案件と案件相場や、将来性について解説します。
Contents
Go言語の特徴とは?
Go言語、通称Golangは、Googleによって開発されたプログラミング言語です。
現代のソフトウェア開発が直面するさまざまな課題に対して、さまざな解決策を提供していると言われるGoの特徴を見ていきましょう。
シンプルさ
Go言語の特徴にシンプルさが挙げられます。具体的には、継承や例外処理など複雑性を持つ概念を排除し、コードの記述を直感的で読みやすいものにしています。
Go言語は静的型付け言語のため、宣言やコンパイルなどがあるものの、プログラミング初心者でも比較的容易に扱うことができると言われています。
クロスプラットフォーム対応
Go言語はクロスプラットフォーム対応であり、異なるオペレーティングシステム上で開発が可能です。
また、クロスコンパイルに対応し、開発環境と異なるOS向けの実行ファイルを生成できるため、アプリケーションの配布が簡単になります。
例えば、macOSで開発をおこなっている場合に、LinuxやWindows向けにプログラムをコンパイルできます。macOSでコンパイルした.exe形式のファイルをそのままWindows環境で実行できます。
高速な実行速度
コンパイル言語のため、高速な実行速度を実現しています。プログラムが機械語に変換されることで、実行時に迅速な処理が可能となり、効率的な開発をサポートします。
また、Go言語は静的バイナリを生成するため、アプリケーションの配布が容易です。静的バイナリの特徴により、アプリケーションの実行環境に関する依存性が低減されます。
並行・並列処理の容易さ
Go言語の大きな特長に、並列処理を容易に実装できる点があります。goroutineと呼ばれる軽量スレッドとChannelと呼ばれる通信チャネルを用いて、多数の処理を同時におこなうことができます。並列処理により、リアルタイムでのデータ処理や高負荷なサーバー処理も効率良くおこなうことが可能です。
近代的なCPUはマルチコア化が進んでいるため、並列処理によってハードウェアの性能を引き出しやすくなります。
明瞭で安全なエラー処理
エラーハンドリングもGo言語の特徴的な部分です。従来のtry-catch文を用いない代わりに、エラーを返値として扱うことで、より明瞭で安全なコードの記述を推奨しています。
充実した標準ライブラリ
基本的なデータ型から、並列処理、データベースやHTMLテンプレート、通信プロトコル、暗号化など、モダンなライブラリが多数付属しており、処理速度が速いのも特徴です。
WEBサーバーの構築から、データのフォーマット変換まで、標準ライブラリを活用すれば、迅速かつ容易にプログラミングが可能となります。
静的解析ツールの充実
コードの自動整形や、潜在的な問題の指摘など、開発者が一貫性のある高品質なコードを書くのに役立つ、静的解析ツールが付属しているため、開発者は対応するIDE(統合開発環境)やツールを通じ、コーディングに関する高度なサポートや事前チェック機構を利用でき、ミスや問題を減らし品質の高いコードを作成しやすくなっています。
標準化されたモジュール
第三者の開発したモジュールを含む、複数のモジュールをプロジェクトに追加し、モジュール間の依存関係を適切に管理できる仕組みが標準で付属しているので、多数のパッケージを使った効率的な開発が容易です。
Go言語の案件は増加傾向にある
Go言語は2009年にGoogleが開発した比較的新しいプログラミング言語なため注目度も高く、またYouTube、メルカリなど有名サービスの開発にも利用されています。
TIOBE Index for October 2023によれば、Go言語は人気11位にランキングする人気プログラミング言語です。
レバテックによれば、Go言語の案件数は、全体の9位となっており、同記事によれば、案件数に対して供給が追い付いていない状況とのことです。
弊社アールストーンが運営するテックリーチでも、Go言語の案件数は178件(2023年11月現在)となっており、Javaの1131件、PHPの689件、JavaScriptの625件、C#の384件、JavaScriptの340件、Pythonの319件、Rubyの284件に次ぐ8位となっています。
Go言語はフリーランスエンジニアを目指せるのか
フリーランスエンジニアとしてGo言語はどうなのでしょうか。
令和の現在でもGoは比較的新しい言語であり、経験者の数も少ないため、Goエンジニアの希少価値は高く、報酬も高単価になる傾向があります。
マイクロサービスアーキテクチャの普及、クラウドネイティブ技術の進展、エンタープライズ分野での利用拡大、学習の容易さ、コミュニティの活性化、そして大手企業による採用増加など、多岐にわたる要因がGo言語の人気の背景にあります。
最近の動きは、Go言語の需要をさらにあと押ししており、売り手市場の状況に拍車をかけています。
近年では、マイクロサービスアーキテクチャを採用する企業が増えています。マイクロサービスアーキテクチャでは、開発・運用が容易な言語を採用することは重要で、Go言語は条件を満たしているため、マイクロサービスアーキテクチャ開発で広く利用されています。
クラウドネイティブ技術は、コンテナ技術やKubernetesなどの技術を用いて、クラウド環境上でアプリケーションを開発・運用する技術です。Go言語はクラウドネイティブ技術開発との相性がよい言語となっているため広く利用されています。
さらに、Netflixなどの大手企業がGo言語を採用している事例は、Go言語の信頼性と将来性を物語っており、より多くの企業への採用拡大が期待されます。
以上の理由から、Go言語はフリーランスエンジニアを目指すにあたって有望な言語の1つです。技術的な知識だけでなく、プロジェクト管理やコミュニケーションの能力を磨くことができれば、Go言語を用いたフリーランスとして成功は十分に可能です。
フリーランスがGo言語で高単価案件を目指すのに必要なスキルセット
フリーランスがGo言語で高単価案件を目指すのに必要なスキルを6つ解説します。
Go言語の知識
条件分岐、メソッド、型、並行処理などの使い方を覚えたり、Dockerによる開発環境を構築したり、モジュールの使い方を覚えたりなどGo言語の知識があります。こうした知識を熟知しているフリーランスは、重宝される可能性が高まります。
なかでも、並列プログラミングはGoの特徴となっているため、並列プログラミングスキルを習得すると、効率的なプログラムの作成や高負荷に耐えるアプリケーションを開発できます。
システム設計スキル
Go言語に限らず、システムやアプリケーションの作成には、要件定義やシステム設計などの工程があります。プログラミングをするだけでなくシステム設計もできるようにしておくことで、フリーランスとしての幅が広がります。
フレームワークススキル
主に既存のシステムに関わる仕事の場合、必須フレームワーク「Echo」のように、案件を受ける条件としてフレームワークが定められていることがあります。さまざまなフレームワークスキルを習得すれば、フリーランスとしての幅が広がります。
大規模開発の経験
Go言語の案件は、大規模開発のものが多い傾向にあります。大規模開発での人間関係の構築の仕方やコミュニケーションの仕方など作法が分からない人をチームメンバーにいれてしまうと、チームが壊れてしまうこともあるため、経験は重視されます。
また、似たような大規模開発経験があれば、開発上のノウハウがあるとしてアピールできます。
IoTやAIなどの経験と知識
IoTやAIの分野では、PythonやJava、C++などが人気ですが、GoBotなどフレームワークを使用するとGo言語でもドローン開発がおこなえます。こうした開発経験やスキルを持っている人は比較的少ない傾向にあるため、案件としては比較的高額な傾向にあります。
マネジメント・上流工程の経験
マネジメント、上流経験があれば、案件としても高額な案件を受注しやすくなるだけでなく、クライアントから直接相談されるケースも増えてくるため、報酬は高額になる可能性が高まります。
Go言語のフリーランス案件
弊社アールストーンが運営するフリーランス向けプラットフォーム『テックリーチ』より、Go言語のフリーランス案件を具体的に見ていきます。
案件例:サーバー開発
業界 | IT |
ポジション | サーバーサイドエンジニア |
スキル | Go, Java |
単価 | ~65万円/月 |
勤務先 | 東京都 渋谷駅 |
職務内容 | サーバーサイドの開発 |
暗号資産取引システムのサーバーサイドの開発案件です。Goでの1年以上の開発経験が求められます。また、金融(証券、FX、暗号資産等)開発経験とパブリッククラウドの運用経験もあると有利です。
案件例:WEBアプリケーション開発
業界 | IT |
ポジション | フロントエンジニア/バックエンジニア |
スキル | Go, TypeScript |
単価 | ~65万円/月 |
勤務地 | フルリモート |
職務内容 | WEBアプリケーション開発 |
会計パッケージを開発している会社で、製品を構成するWEBアプリケーションの新規開発案件です。
フロントエンドとしては、TypeScript(React、Next.js)、バックエンドとしては、TypeScript(Nest.js、Prisma)、Go、Java、Ruby、Pythonなどいずれかの経験が必須です。
案件例:スマートフォンアプリケーション開発
業界 | ゲーム開発 |
ポジション | バックエンドエンジニア |
スキル | PHP, Node.js, Go, Java, Python |
単価 | ~75万円/月 |
勤務地 | フルリモート |
職務内容 | ゲーム開発バックエンド支援 |
NFTゲームの新機能、ガチャ機能の実装などのバックエンド部分の開発案件です。
PHP, Node.js, Go, Java, Pythonなどの言語でのWEBアプリケーションの設計、開発の経験、MySQLでのDB設計、開発の経験などが必須です。
案件例:API開発
業界 | IT |
ポジション | バックエンドエンジニア |
スキル | Go, Docker |
単価 | 〜85万円/月 |
勤務地 | 東京都 六本木駅 |
職務内容 | 動画配信サービスEC基盤開発 |
Go(またはその他の静的型付け言語)による開発経験、API(REST、gRPC、GraphQL)の設計・開発経験、Dockerの利用経験、中規模以上のWEBサービスの開発・運用経験などが必須です。
案件例:IoT開発
業界 | IT |
ポジション | バックエンドエンジニア |
スキル | Go, MySQL, Websocket, Docker, Git |
単価 | ~85万円/月 |
勤務地 | 東京都浜松町駅 |
職務内容 | IoTプラットフォーム新規機能開発および保守開発 |
IoTプラットフォームの新規機能開発および保守開発案件です。
Go言語の開発経験、MySQLまたはPostgreSQLを用いたWEBアプリ開発経験2年以上、HTTP1.1/Websocket通信を用いたWEBアプリケーション開発経験2年以上、Dockerを用いたコンテナでのWEB APIサーバーデプロイ経験、Gitによるバージョン管理、Gitを用いたチーム開発経験2年以上などが必須です。
Go言語を採用している企業
Google社によれば、Go言語は、世界中に100万を超えるユーザーがおり、多くの大手企業がGo言語を採用していると発表しています。
本項では、下記の5企業についてご紹介します。
セールスフォース・ジャパン
SalesforceのTableau CRMという、顧客管理システムがあります。分析ツールEinstein AnayticsとBIツールTableau(タブロウ)が統合されたものです。
このうちEinstein Anayticsの開発は、それまでハイブリッド「C-Python」アプリケーションを採用していましたが、Go言語に移行しました。
ハイブリッドアプリケーションとは、ネイティブアプリとWEBアプリそれぞれのよい特性を生かし、例えば、ソースコード1つで、iOS、Androidなどマルチプラットフォームに対応するアプリケーションです。それぞれの開発が不要のため、コストを抑えることができます。
一方、Go言語は、マルチプラットフォームに対応するのみならず、並列処理を得意とします。ハイブリッド「C-Python」アプリケーションは、並列処理を不得手としていたことが決め手でした。
ヤフー
ヤフー株式会社は、多くのサービスやアプリをユーザーに提供しています。コンテンツの管理からログ解析まで、膨大なデータを扱っています。
従来は膨大なデータを、オブジェクトと呼ばれる単位で保存するオブジェクトストレージ「Octagon」に格納保存していました。大容量化はますます加速し、近い将来において、さまざまな方面で要望を満たすことができなくなる懸念もあります。そこでおこなわれたのが、オブジェクトストレージ「Dragon」の開発です。Go言語の採用によって、I/Oをベースに効率的な並行処理が可能となっています。
ご存じの通り、検索エンジン「Google」には、インデックスと呼ばれる機能があります。インデックスとは、例えば、自分のWEBサイトが、Googleの検索結果に登録されていることを言います。
インデックスサービスの機能は、1つのバイナリにすべて組み込まれていましたが、複数のコンポーネントに書き直しがおこなわれ、同時に、従来のC++からGo言語への移行がおこなわれました。
また、インデックス作成は1年以内に再構築され、開発者たちは新たにGo言語を学びながら、Go言語で書き直しました。
上記の事実は、Go言語の開発効率の高さ、習得コストの低さを表しているのではないでしょうか。
また、go言語は、Googleの自社サービス「YouTube」の開発にも使用されています。
メルカリ
メルカリは、ユーザーがスマートフォンなどを利用し簡単に商品の売買をおこなえるサービスです。ユーザーが売買のやり取りをおこなう際に、メッセージの送信をおこなうと、自動的にメッセージを表示するプッシュ通知機能があります。メルカリは多くのユーザーがやり取りをおこなっているため、通知の処理は非常に重くなります。プッシュ通知の際に、go言語の並行処理能力が活かされています。
ぐるなび
ぐるなびは、観光名所、飲食店、ショッピングなど国内旅行に必要な情報やサービスを提供するWEBサービスです。
ぐるなびではビッグデータが活用されており、ユーザーごとに例えば、「東京」「焼肉」などの属性情報をユーザー一人一人に付与します。付与した属性情報から、ユーザーにふさわしいバナーを表示する「属性バナー」の開発に、Go言語が使用されています。また、ぐるなびは、月間6,000万UUアクセス以上の高いトラフィックがあるため、アクセス過多の際も、高速で処理できるサーバー開発としても、Go言語が採用されています。
Go言語の将来性について
Go言語は、世界的な大企業GAFAの一角Googleが開発した言語です。Googleは自社サービス「YouTube」などの開発にもGo言語を採用しており、そうした事例にともない、海外の大手企業や大規模サービスなどでも次々と採用されています。GoogleがIT企業としての地位を維持し、Go言語の自社サービス開発での使用、改善をおこなっている限り、今後も一定の地位を維持するのは想像に難くありません。
実際、2009年にオープンソースで公開された時点では、LINUX、macOSのみサポートであったため、世間ではGoogle社内で使用するためのみに開発した言語と揶揄する声もありました。ですが、2012年の正式バージョン公開時にはWindowsもサポートし、2014年にはAndorid、2015年にはiOSもサポートしました。最新のバージョン(2022年3月時点)ではジェネリクスをサポートするなど、改善が繰り返されることで、更なる魅力的な言語へと進化していっています。
一方で、他の言語に比べ比較的新しいことから、国内の案件はまだまだ少ない状況にあります。
こうしたことから、現状は、Go言語を習得し、フリーランスとして独立を目指すより、国内大手IT企業や外資系企業への転職や、海外就職を見据えている方にとって有力な言語の1つです。
Go言語のフリーランス案件相場
弊社アールストーンの運営するテックリーチよりGo言語のフリーランス案件相場の単価感をご紹介します。
経験年数 | 週5日勤務の案件相場 |
1年未満 | 40~43万円/月 |
1~2年 | 43~51万円/月 |
2~3年 | 51~57万円/月 |
3~4年 | 57~66万円/月 |
4~5年 | 66~75万円/月 |
5年以上 | 76万円以上/月 |
テックリーチ全体では、Go案件の単価相場中央値は75万円となっており、年収換算では900万円相当となっています。日本の給与所得者全体の平均458万円と比べてGo言語のフリーランスの収入はかなり高い水準にあることが見て取れます。
Go言語のフリーランス案件獲得に役立つ資格
Go言語の案件を獲得するうえで必要な資格はありませんが、ITエンジニアとしてのレベルアップを図るのにおすすめな資格として、応用情報技術者試験をご紹介します。
・応用情報技術者試験
ITスキルのみならずマネージメントに関する幅広い知識と応用力が身につき、システム開発、基盤構築などに役に立ちます。
主催者のIPAが「ワンランク上のITエンジニア」と言うように、ワンランク上のエンジニアを目指すのであれば、取得しておきたい資格です。
Go言語の案件でよくある質問
Go言語案件でよくある質問について見ていきます。
未経験でも案件の獲得はできる?
未経験可のGo言語案件もありますが、WEBアプリケーションの開発などに一度も携わったことのない、まったくの未経験では案件獲得は難しいでしょう。どうしてもGo言語案件を獲得したい場合は、Go言語を独自で学習し、ある程度の知識を身に付けてから案件探しをするとよいでしょう。
在宅・リモートでできる案件はある?
新型コロナウィルスの感染拡大移行、フルリモートでできる案件が増えました。弊社の運営するテックリーチでは、Go案件178件のうち、90件がフルリモート可能案件となっています(2023年11月現在)。
週3日以内の稼働の案件はある?
弊社の運営するテックリーチでは、2023年11月時点では、週1~3日の稼働案件はありませんが、定期的に案件を確認し、根気よく探すことで見つけることができるでしょう。確実性はありませんが、週5日稼働の案件を獲得し、様子を見ながらクライアントと交渉し、稼働日を少しずつ減らしていく方法も考えられます。
土日稼働OKの案件はある?
弊社の運営するテックリーチでは、2023年11月時点では、土日稼働可の案件はありませんが、Go言語以外の案件では土日稼働可の案件は存在します。定期的に案件を確認し、根気よく探すことで見つけることができるでしょう。
Go言語の案件の探し方
Go言語案件の探し方について解説します。
フリーランス向け案件サイトを利用する
フリーランスの方が気になる案件を探し、受注できるサービスには2つのタイプがあります。1つは、自分でクライアントと直接やりとりをするクラウドソーシング方式。もう1つは、自分とクライアントの間にエージェントが入り、仲介してくれるタイプのサービスです。両方にはそれぞれ利点と欠点があるため、利用する際はよく検討することをおすすめします。
弊社の運営するITフリーランス向けサービス「テックリーチ」でも、あなたに合った案件の紹介が可能です。興味がある方は一度メンターに相談してみましょう!
SNSでDMする
X(旧Twitter)などSNS上で、ハッシュタグなどを付与して案件を募集している場合があります。そうしたアカウントに、ダイレクトメールを送ることで案件の連絡をします。自分のアカウントは名刺代わりになるため、日頃からフォロワーを獲得するなど運用が大切です。最低限、プロフィールやスキルなどを記載しておきましょう。
知人に紹介してもらう
知人から案件を紹介してもらうのも1つの方法です。知人からの紹介の最大のメリットは、案件獲得に必要な営業の時間を節約できる点と、最初からお互いにある程度の信頼感のある状態で仕事ができる点です。お互いにとってよい関係を維持していくことができれば、フリーランスとして続けていくための基盤となるでしょう。
まとめ
Go言語は、Googleが開発した言語なので、期待も大きく、将来性も高い反面、まだまだ国内の案件はそこまで多くはありません。
Go言語を習得し、フリーランスを目指すよりは、国内大手IT企業や外資系企業への転職や、海外就職を目指す方におすすめの言語となっています。
ただ、Go言語は、Googleが繰り返し改善をおこなっているため、将来において、国内の案件数も今よりももっと多くなることも十分考えられます。
また、現在でも、供給不足から、高単価な案件が多いです。
ぜひ本記事を参考に、Go言語の習得に役立ててください。
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!