Go言語Go言語の特徴を一言で言い表すと「これからの言語」です。 「これから」という言葉は未来志向であり、可能性と将来性も含まれています。 なぜGoに未来志向があるかというと、2009年にリリースされたばかりの言語だからです。Goを専門にするエンジニアはまだ少ないですし、ニーズも「世界を席巻している」ほどではありません。 ではなぜGoに可能性があるかというと、Goはグーグルが開発した言語だからです。グーグルをむやみに信奉することは避けなければなりませんが、しかし現代の世界のITシーンでのグーグルの絶対的な立ち位置を考慮すると、フリーランスのエンジニアがグーグルの動向を意識した仕事をするのは正しい選択といえます。 そしてなぜGoに将来性があるかというと、Goは信頼性が高い言語であるのに構造がシンプルで、これからエンジニアを目指す人にも、2言語目の獲得を考えている人にもうってつけだからです。 3拍子揃ったGoを武器にしてフリーランスとして活動しているエンジニアは、どのような仕事(案件)を受注して、どのように働いているのでしょうか。詳しくみていきましょう。 Go言語の特徴とは Goは、リリース当初はLinuxとMac OSにしか対応していませんでしたが、2013年からWindowsにも対応するようになりました。 Goの特徴を箇条書きにしてみます。 ・シンプルな構文で軽量 ・コードを記述しやすい ・オープンソース ・表現力が豊か ・オブジェクト指向的 こうした特徴が徐々にエンジニアや開発会社の支持を集め、TIOBE Software社が公開している人気言語ランキングでは、2016年の48位から2017年には15位にまで急上昇しました。 Go言語の強みとニーズ Goの強みはオープンソースであることです。無料なのでエンジニアの数を増やしやすく、プログラミングの生産性を向上させやすいメリットがあります。 また簡潔な記述ができるので複雑なシステムに向いています。そして議論はありますが、Goはオブジェクト指向を持つ言語であることから分業をスムーズに進めやすく、プログラムのメンテナンスもしやすいのです。 そしてGoは言語習得がしやすいので、今後さらに「仲間」が増える可能性があります。業界内でGoを使うエンジニアが増えれば言語としての地位が上がり、Goエンジニアが関わることができるプロジェクト(案件)が増えます。 フリーランスを目指すエンジニアには歓迎できる傾向といえます。 さらにGoはC言語やJavaと構文が似ているので、それらの言語のエンジニアがGoを第2言語として選択しやすいのです。 つまりベテランエンジニアがGo関連プロジェクトを盛り立ててくれるので、Goのニーズがさらに高まる可能性があります。 Goは開発元のグーグルだけでなく、以下の著名なシステムでも使われています。 ・大手クラウドストレージサービスのDropBox ・ブログサービス大手の「はてな」 ・フリマアプリのメルカリ ・ニュースアプリのグノシー Goはすでに輝かしい実績を残している言語です。 Go言語で気を付けること メリットの多いGoですが、一方でジェネリクス(総称性)がなかったり、継承しにくかったりする欠点を指摘する専門家もいます。 ただGo支持者は、それらの欠点は他の方法で代替できるので「大きな欠点とはいえない」と考えています。 Go言語エンジニアの募集要項のトレンドとは Goエンジニアは、どのようなポジションで働くことが求められているのでしょうか。案件票の募集要項などを参考に、Goエンジニアの働き方のトレンドを探っていきます。 まだ採用のメーンに据えているわけではないがGoエンジニアの採用を検討している会社 この会社は正社員のアドテクエンジニアを年収400万~1,000万円で募集しています。 募集対象はC、Java、Scala、PHP、Perlの各エンジニアであり、Goエンジニアは対象外です。しかし案件票の注意書きに次のように記されていました。 「当社は言語の採用において、現場社員の声を積極的に取り入れていて、Goなど新しい言語にもチャレンジしています」 エンジニアに年収1,000万円を用意している企業がGoに注目していることは特筆に値します。そしてアドテクとは広告テクノロジーのことで、ネット系の広告ビジネスはこれから発展が期待できる事業分野です。 やはりGoは「これからの言語」なのです。 年収1,000万円のポジションの業務内容とは Goエンジニアでも年収1,000万円のポジションを獲得できます。しかしプログラミング作業だけではそれだけの給料をもらうことはできないでしょう。 年収1,000万円を獲得するには、卓越した言語スキルをベースにして、スタッフマネジメント、管理部門とのコミュニケーション、企画職とのミーティングといった業務をこなす必要があります。 エンジニアといえば一般的に、クライアントの企画や要望をコンピュータとネットを使って具現化していく仕事ですが、1,000万円プレイヤーになるには、企画をつくることから始めたり、企業の要望(ニーズ)を掘り起こしたりできなければなりません。 フリーランスのGoエンジニアが年収で700万円を超えるようになったら、企画や営業などのコミュニケーション系業務のスキルを磨くことで、次のステップに進むことができるでしょう。 ITコンサルタントというポジションに年収1,500万円を出す企業もある Goエンジニアなら、年収1,000万円をはるかに上回る年収1,500万円を目指すこともできます。 先ほど年収1,000万円を得るには「言語スキル+コミュニケーション系業務のスキル」が必要であると述べました。 そこに「コンサルティングスキル」を加えると、プラス500万円の年収1,500万円になるわけです。 「ITコンサルタント募集、年収600万~1,500万円」という案件票を出しているのは、東京都千代田区に本社を構えるコンサルティング会社です。 この職に与えられるミッションは「アプリケーション専門家集団として顧客のビジネスを改革すること」です。 具体的な業務は、アプリ戦略の構築、最先端テクノロジーの導入、グローバル展開支援です。顧客は日本を代表する大手企業で、だから社員に1,500万円も支払うことができるのです。 この案件に応募できる要件は次のとおりです。 ・2年以上のシステム開発プロジェクト経験(言語不問) ・開発の流れ、各工程のタスク、成果物に理解がある ・要件定義や基本設計で顧客と折衝できる ・ビジネスコミュニケーションスキル そのほか、クラウド開発、SAPアドオン開発、超高速開発、アプリ要求開発などの経験が歓迎されます。 1,500万円ITコンサルタントは、Goエンジニアを含むすべてのエンジニアが到達できる最高峰のひとつといえます。 Go言語エンジニアが活躍している業界、分野 Goエンジニアが活躍できる業界や分野をみていきましょう。 Webサーバー・アプリケーションでのGoの活躍が目立つ GoはWebサーバー・アプリケーションの構築で使われることが多くなりました。Goで構築したWebサーバー・アプリケーションのなかで最も有名なのはYouTubeです。 YouTubeはいまや趣味の域を完全に出て、ビジネスツールとして使われています。例えばメーカー各社はYouTubeで動画マニュアルをつくり、顧客サービスの向上に務めています。 YouTubeの成功事例から、Webサーバー・アプリケーションをビジネスで活用する動きが芽生え始めています。 Webサーバー・アプリケーションはこれまでJava、Ruby、PHPの独壇場でしたが、知名度が向上したGoに移行する動きも目立ってきました。 PaaSでのGo利用も拡大の兆し アプリやアプリを動かすハードウェア、OSなどプラットフォーム全体をクラウドサービスにしたPaaS(Platform as a Service)でもGoの利用事例が増えています。 いわば「システムの基盤をすべてレンタルで調達する」PaaSは、保守コストや新製品リスクを抑制できるので、利用する企業は今後増えるでしょう。 グーグルのPaaSであるグーグル・アップ・エンジンがGoで構築されていることもありますが、GoエンジニアはPaaSビジネスで中核的な役割を担うことができるはずです。 Go言語のフレームワーク事情 Goエンジニアなら知っておきたいフレームワークを紹介します。 小型、高速、シンプルが特徴のEcho EchoはGoのフレームワークのなかでも小型で高速、なおかつシンプルという特徴があります。コードの読みやすさからGoエンジニアたちは「開発効率が高まる」と高く評価されています。メンテナンスのよさも好評です。 Webサーバー、スマホ、パソコンでも対応できるiris irisはWebサーバーやスマホ、パソコンに対応する汎用性の高さが評価されています。irisの開発者は「最速」を自負しています。 またサンプル集の豊富さは他のフレームワークを寄せ付けないレベルで、iris人気の理由のひとつです。 またirisはスキル取得の難易度が低く学習時間を長く取らなくてよいメリットがあります。メンテナンス性も高いと評判です。 フルスタックならGin フルスタックWebアプリケーションフレームワークを求めるGoエンジニアには、Ginがおすすめです。HTTPルーターのレスポンスがよく開発ストレスを感じなくて済みます。メンテナンス性とセキュリティは一定水準をクリアしています。 beegoの売りもフルスタック beegoもGin同様、フルスタックのWebアプリフレームワークです。 API、Webアプリ、バックエンドサービスの開発を効率化させることができます。 Net/httpとの互換性が特徴のGoji GojiではURLパターン、正規パターン、カスタムパターンを定義することができます。機能を最小限に絞り込んでいるので、短期間の学習で使いこなせるようになります。 ただ自由度が高すぎるために、引き継ぎ作業で混乱するかもしれません。 Go言語案件単価事情 フリーランスのGo言語エンジニアにはどのような業務が発注されるのでしょうか。案件の単価などを紹介します。 広告配信システムの構築など、月85万円 この案件の業務内容は、広告配信システムのサーバーサイドの開発、ビッグデータを活用したマーケティング製品の開発、高トラフィック処理が求められる製品の開発、となっています。 報酬は月85万円です。 必須スキルはGitHubによるチーム開発の経験やAWS(アマゾンウェブサービス)を使ったインフラの構築、提案から設計、実装までの経験、となっています。 Goでの開発経験は歓迎スキルになっています。 ドローン関連API開発、月90万円 こちらの案件の内容はドローンで集めたデータをクラウド上で解析するAPIの開発で、報酬は月90万円です。Goによる開発経験が必須になっています。 Go言語案件の具体的な業務 Goエンジニアは、他の超メジャー言語と比べてしまうとフリーランスになりにくいかもしれませんが、コンピュータとは関係ない他業種と比べると、圧倒的にフリーランスになりやすいといえます。 個人事業主として働き始めてすぐに普通の生活を営めるくらいの仕事は十分確保できるでしょう。 ただ、フリーランスのGoエンジニアが裕福な生活を送れるかどうかは、フリーランスになる前の実績と経験、そしてフリーランスになった後のセルフマネジメント(自分の売り込み)にかかっています。 会社員時代にプロジェクトマネージャーの経験をしておくことはとても有益です。なぜなら、フリーランス案件では、プロジェクトマネージャー業務ができるかどうかで報酬が2~3割は変わってくるからです。 しかも、プロジェクトマネージャー経験ゼロでフリーランスになると、プロジェクトマネージャー的業務を任されることが難しくなります。 セルフマネジメントとは、自分自身を売り込む「営業」のことです。ただ営業といっても「仕事をください」式の営業を続けていると、いつまでたっても低単価案件しかこなせず、忙しいのにもうからない状況に陥ります。 そうではなく、要件定義や仕様設計、ワークフローの確定の作業までやらせてもらう「提案型」の営業を仕掛ける必要があります。 そのためには、案件を引き受けたら、常によりよい方法を提案する癖をつけることです。クライアントに、なぜこの案件を外注化したのかを尋ねるだけで、「ならばもっとよい方法がありますよ」と提案できます。「もっとよい方法」が、より多くの工数がかかる内容であれば、報酬を上げる交渉ができます。 これこそ「自分を高く売る」方法であり、理想のセルフマネジメントです。 Go言語案件の案件票をみてみよう フリーランスのエンジニアも、企業の正社員エンジニアの働き方や待遇、福利厚生などを知っておくことは大切です。フリーランスがクライアントと報酬交渉をするときの材料になるからです。 そこでGo言語エンジニアを正社員で採用する企業の案件票をみてみましょう。 クライアント企業の働き方改革をITで支援するエンジニア、年収上限800万円 企業向けにITソリューションを提供している会社が、フルスタック型のエンジニアを募集しています。 なぜこの企業がフルスタック型エンジニア(何でもできるエンジニア)を募集しているのかというと、クライアント企業の実情に合わせてITソリューションをデザインするビジネスモデルだからです。 同社が提示する年収は550万~800万円です。 上限の800万円を獲得するには、クライアント企業のマーケティング部門や経営者とIT戦略づくりの打ち合わせをこなせなければなりません。 ニーズを拾い集め、最適解を提案して受注につなげ、そのままシームレスに(つなぎ目なしに)開発に取り組む。この一連の流れをマネジメントする必要があります。 この案件に応募するには、GoまたはPHPまたはPythonまたはJavaScriptでの開発経験が3年以上なければなりません。 まとめ~Go言語需要の今後と未来 フリーランスのGoエンジニアは希少性があります。案件(仕事)の量は他のメジャー言語エンジなより少ないのですが、Go案件が出てくれば他のフリーランスとそれほど競争することなく獲得できるでしょう。 またGo案件は、やりがいが大きく報酬が高い良質な内容が多い傾向にあります。 ただ今後Goエンジニア人口が増える可能性があり、そうなればブルーオーシャンはすぐにレッドオーシャンに変わってしまいます。 そのとき生き残れるように、いまからフレームワークの獲得や営業や交渉などのコミュニケーション系業務、人脈づくりに励んでおいてはいかがでしょうか。