Go言語(Golang、Go)は2009年にGoogle社が開発したマルチパラダイム型言語です。「Golang」とも呼ばれており、大規模なWebサービスを中心に使用されています。比較的若い言語であることから、日本ではGo人材が少なく、希少性の高さも相まって高年収を狙いやすい言語だといえます。
ただし、Goだけを前面に押し出した転職は難しく、周辺スキルとの組み合わせが転職成功の鍵を握るでしょう。この記事では、Go(Golang)を使った転職に必要なスキル・経験・実際の年収例などを紹介します。
1. Go言語とは
まず、Go言語の概要について紹介します。
Go言語の概要
Go言語はGoogleから2009年にリリースされたマルチパラダイム型の汎用言語です。パラダイムとはプログラミング言語の手法や考え方を指しており、具体的には「オブジェクト指向型」「手続き型」「関数型」などが該当します。つまりGo言語は、複数の言語の手法・考え方を併せ持つ言語になります。
Go言語の特徴・強み
Go言語は主要OS(Windows、MacOS、Linux)すべてに対応しており、多くの開発環境でに対応しています。 また、シンプルな記述で軽量かつ高速な動作を実現できます。
-
・高速コンパイル
Go言語は機械語への変換ができるコンパイラ言語です。PHPやRubyのようなインタープリタ型の言語と比較して、プログラムが高速に動作するというメリットがあります。
-
・並列処理への適性
Go言語は「goroutine」や「channel」といった独自機能により、高速な並列処理を可能にする言語です。大規模なWebサービスでは膨大な量の並列処理を頻繁に実行することから、Go言語の持つ強みが多いに活かされています。
-
・高い拡張性
Go言語は作成した機能を複数組み合わせることで、新しい機能を作ることが可能です。例えば、過去に作った検索機能と文字列チェック機能を合わせて、入力された文字列が正しいかチェックしてから検索するといった新しい検索機能を簡単に作ることができます。
このことから、Go言語は拡張性が高い言語として知られています。また、開発中のOSとは別のOSで動作するコード生成も可能です。Windows環境で開発していても、Linux上で動作するソースコードを生成できるわけです。
-
・リソースのコストパフォーマンスが高い
Go言語は、Javaの約30分の1のメモリ量で、ほぼ同等の処理を実行できるといわれています。ハードウェアリソースが制限されている環境でも、高速処理を実現しやすいというメリットがあります。
2. Go言語でできること
Go言語を使って開発できるものをご紹介します。
アプリケーション開発
Go言語では、iOSやAndroidなどのスマートフォンで動作するアプリケーションが開発できます。スマートフォンアプリ開発用のツールを集めたGo Mobileを使うと快適に開発できます。またブラウザで動作するような通常のWebアプリケーション開発にも用いることができます。
サーバーサイド開発
Go言語にはデフォルトで多くの機能が組み込まれており、またバイナリファイルで動作することでパフォーマンスに優れているため、サーバーサイドの開発にも使われています。HTTP通信やルーティング、データベース操作などを高速に動作させることが可能であり、スタートアップ企業が新サービスの立ち上げるときの、サーバーサイド開発にて採用されることが多いです。
APIサーバ開発
Go言語ではAPIサーバの開発も可能です。APIとはサーバの機能をクライアントに提供するための窓口のようなものです。クライアントは主にブラウザが担いますが、ブラウザのユーザーがAPIにリクエストを送信して、サーバでそのリクエストを処理して、クライアントへ結果を返却します。Go言語ではこのようなAPIサーバ開発も実現可能です。
IoT開発
Go言語はロボットやドローンのようなIoT開発にも活用できます。Go言語用のIoTフレームワークである、Gobotを使えば、Raspberry Piを始めとした小型コンピュータやロボットを高度に制御できるプログラムが簡単に実装可能です。
3. Go言語エンジニアへの転職で活かせるスキル・経験
これまでJavaなどのほかのプログラミング言語の経験を持つ方が、Go言語エンジニアへの転職で活かせるスキルや経験をご紹介します。
プログラミングスキル
ほかのプログラミング言語のスキルがあれば、スムーズにGo言語エンジニアになれるでしょう。Go言語の開発環境を構築し、実際にプログラムを書いて実行することで、Go言語での開発のイメージがつかみやすくなります。
Go言語と同じくサーバーサイド言語として広く使用されているRubyスキルを習得していると評価を得やすい傾向にあります。近年は特に、Rubyで実装されている処理をGoにリプレイスし、処理速度の高速化やハードウェアリソースの有効活用につなげる開発事例が増えているからです
要件定義・基本設計・詳細設計のスキル
システム開発には、プログラミング以外にもさまざまな工程があります。上流工程である要件定義から、基本設計、詳細設計などのスキルは、プログラミング言語に依存しない普遍的なスキルです。そのため、このようなスキルを持っていれば、Go言語エンジニアへの転職後でも役立てることができるでしょう。
フレームワークに関するスキル
フレームワークとはプログラミング言語に固有の土台のようなものです。例えばPHPであればLaravelやCakePHPなどが有名ですし、JavaであればStrutsやSpring Frameworkが知られています。
Go言語においても、GinやRevelを始めとした、いくつかのフレームワークが公開されています。
フレームワークを利用するメリットは生産性の向上です。プログラミング言語の標準の機能だけでもアプリケーションの開発は可能です。しかし、よく使う機能や複雑な機能がパッケージのようにまとまっている
フレームワークを活用すれば、シンプルなプログラムで実装でき、開発効率も格段に向上します。
フレームワークの使い方はそれぞれ異なりますが、フレームワークの考え方や概念には共通する点も多くあります。これまで別の言語の別のフレームワークを使っていた方なら、新しくGo言語のフレームワークを使うことになってもスムーズに覚えられるでしょう。
プロジェクトマネジメントスキル及び折衝スキル
通常、アプリケーション開発はプロジェクトとして進められるため、プロジェクトマネジメントスキルや折衝スキルがあれば、Go言語エンジニアへの転職時にも活かせるでしょう。特に実務経験が5年以上ある方や、30代以上の方に対しては、リーダー職としての役割が求められることも多く、プロジェクトマネジメントスキルや折衝スキルが期待されます。
プロジェクトマネジメントスキルや折衝スキルは、プログラミング言語に依存しないスキルです。ほかの言語を使ったアプリケーションのマネジメントスキルがあれば、Go言語で開発されるアプリケーションのマネジメントにも活かせるはずです。
その他評価されやすい経験
上記した内容に加え、次のような経験を持っていると転職活動時に評価されやすくなるでしょう。以下は募集で頻出する要件です。
-
・Webアプリケーション開発の経験
・チームリーダーやプロジェクトリーダーなど小規模チームのリーダー経験
・AWSやAzure、GCPなどパブリッククラウド環境を使ったシステム構築経験
・大規模ユーザーを持つアプリケーションのサーバーサイドの開発・運用経験
・アジャイル開発の経験
・マイクロサービス化されたアプリケーション構築経験
Go言語を採用した案件は、Webサービスのサーバーサイド開発などで増加傾向にあります。しかしながら、Rubyで開発しているプロダクトの一部をGo言語に置き換えるなど、部分的な適用となるケースも散見されます。そのため、Go言語と併せて複数のスキル(RubyやAWS、Dockerなど)を習得しておくと、活躍の場が広がるでしょう。
4. 未経験でもGo言語エンジニアに転職できる?
Go言語は、標準ライブラリも豊富でシンプルな文法で記述できるという特性を持ちます。そのため未経験者であっても、比較的習得のしやすい言語であるため、全くの未経験者でもGo言語エンジニアへの転職は可能です。
またGo言語以外のプログラミング言語である、JavaやRuby、C#などは、Go言語と構文が似ているため、これらの言語でのエンジニア経験を持つ方であれば、新しくGo言語を習得するのも容易でしょう。
5. Go言語エンジニアの需要と将来性
Go言語エンジニアの需要と将来性はどうなっているのでしょうか。
Go言語エンジニアの現在の需要
Go言語は、YouTubeやDockerなど大規模かつ複雑(並列処理が多い)なWebサービス開発に向いている言語です。日本でも徐々に案件が増えており、特に大規模Webサービス開発の分野では、サーバーサイド言語として広く普及し始めています。また、Go言語を扱えるエンジニアが少なく、「高年収を狙いやすい言語」の代名詞的存在となっています。
TECH Streetが2020年12月25日に公開した「2020年プログラミング言語別、年代別の平均年収ランキング」(※1)によると、Go言語が平均年収562万円で30代部門の2位にランクインしています。また20代部門でも9位(平均年収397万円)でランクインしていることから、Go言語は若い世代から30代の中堅エンジニアに支持されている言語だとわかります。
※1 TECH Street「2020年プログラミング言語別、年代別の平均年収ランキング」(2021年3月31日アクセス)
Go言語エンジニアの将来性
Go言語は誕生から10年強と歴史こそ浅いものの、シンプルな文法で、かつセキュリティ性も高く、並列処理や処理速度に優れる言語です。今後はWebサービスやクラウドサービスの開発を中心に需要が伸びると予想されます。特にGoogleのサービスと親和性が高いことから、Googleのサービス拡張に伴い継続的な需要が発生するでしょう。
例えば、Googleがオープンソースとして公開している機械学習ライブラリ「TensorFlow(テンサーフロー)」や、クラウドサービスである「Google Cloud Platform(GCP)」では、Go言語を使った開発が行われています。
米HackerRank社が公開している「2020 Developer Skills Report」(※2)における「Languages developers want to learn」(エンジニアが学びたいと思っているプログラミング言語)の第1位にGo言語がランクインしています。
このことから、将来Go言語エンジニアが増加することは容易に想像ができ、Go言語エンジニアには高い将来性があると言えるでしょう。
※2 HackerRank「2020 Developer Skills Report」(2021年3月31日アクセス)
6. Go言語エンジニアの年収・求人例
こちらでは、Go言語エンジニアの年収などを実際の求人例から紹介します。
【業界】
◆IT・通信
◆インターネット
【業務内容】
■データプラットフォームの開発
データプラットフォームの開発(サーバーサイド)が主な業務です。Golangを用いてエンジン部分の設計や構築を行うほか、稼働状況をチェックして課題を見出したり、コードレビューを実施したりすることもあります。
<具体的な業務内容>
・プラットフォームの設計、構築
・エンジン部分の設計、構築(Golangを使用)
・リファクタリング
・パフォーマンスの改善
・機能の最適化
【求められるスキル・経験】
・Golangを使用した開発経験(3年以上)
・サーバーサイドの開発経験
・データサイエンスの知識
・課題解決力
・協調性
【想定年収】
600~1,000万円
【福利厚生】
健康保険 / 厚生年金 / 雇用保険 / 労災保険 / 通勤手当 / 残業手当 / 慶弔休暇 / 年末年始 / 夏季休暇 / 有給休暇
【勤務地】
東京都
Goの求人を探す>
Go言語人材が高年収を狙うには、「マイクロサービス開発の経験」「RubyやPHPなど他言語のスキル」「アジャイル・テスト自動化(CI/CD)の経験」などを備えておくと良いでしょう。要件定義など上流工程の経験もあるに越したことありませんが、ほかの言語に比べるとスキル要件になっていないことが多く、優先度は低いです。
また、Go言語を使用している企業はまだ比較的に少ないものの、高い採用意欲を示す企業が徐々に増えています。こういった企業では、Go言語の実務経験があるだけで評価が高まる傾向にあるため、現職でGo言語に触れられる環境があるならば、積極的に経験を積み重ねていきましょう。
実務未経験からGo言語エンジニアを目指すならば、まずはWebシステム開発プロジェクトにおけるサーバーサイドエンジニア経験を、3年程度積むことを目標にしたいところです。
7. Go言語の勉強方法
では、新しくGo言語のスキルを身につけたい場合はどうすれば良いのでしょうか。
学習サイト
まずはGo言語の公式サイトにある「A Tour of Go」を利用しましょう。これはGo言語の公式チュートリアルです。ブラウザ上でコードを書いて実行しながらGo言語の基礎を学べます。
またオンラインでプログラミングを学べる「ドットインストール」や「Progate」においてもGo言語の学習ができます。ドットインストールでは「はじめてのGo言語」がプレミアム会員限定ですが一部は無料公開されています。またProgateでは4つのGo言語のレッスンが無料で学習できます。
本
Go言語を学べる本もいくつか販売されています。例えば『Goプログラミング実践入門』はHTTPの仕組みや、小さなサンプルを使ってWebサービスの実装を学べる一冊です。『スターティングGo言語』はGo言語をこれから学ぶ方のための入門書です。基本構文からしっかりと学びたい初心者が最初の1冊に選ぶのにうってつけでしょう。
8. まとめ
Goはリリースから2009年に発表された比較的新しい言語で、まだGo言語の開発者はそれほど多くありません。しかし、大規模開発に向いており、シンプルな文法でセキュリティ性の高いコードが書けることから、若手エンジニアからも注目が集まっている言語です。また、開発元がGoogleであることから、今後の市場拡大も期待されています。Goのスキルに加えてほかの言語のスキルを身につけておくことで、他言語からのリプレイス業務などにも対応が可能になり、活躍の幅が広がるでしょう。
ITエンジニア・Webクリエイターの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア・クリエイターを専門とする転職エージェントです。最新の技術情報や業界動向に精通したキャリアアドバイザーが、年収・技術志向・今後のキャリアパス・ワークライフバランスなど、一人ひとりの希望に寄り添いながら転職活動をサポートします。一般公開されていない大手企業や優良企業の非公開求人も多数保有していますので、まずは一度カウンセリングにお越しください。
転職支援サービスに申し込む
また、「初めての転職で、何から始めていいかわからない」「まだ転職するかどうか迷っている」など、転職活動に何らかの不安を抱えている方には、無料の個別相談会も実施しています。キャリアアドバイザーが一対一で、これからのあなたのキャリアを一緒に考えます。お気軽にご相談ください。
「個別相談会」に申し込む