こんにちは。倉内です。
Goは2009年にGoogleが開発したプログラミング言語で、近年注目度が上がっており、興味のある方も多いのではないでしょうか。
Stack Overflowが毎年実施しているエンジニアを対象とした調査「Developer Survey 2021」(181カ国の開発者8万3439人が回答)の「使い続けたいもしくは使ってみたい言語」では、第4位にランクインしました。
JavaやPHPなどの言語に比べるとまだ数は少ないものの、初心者でもGoを学べるコンテンツはたくさんあります!
そこで今回は、paizaラーニングの新講座「Go体験編」(全編無料)をはじめ、これからGoを学びたい方向けに学習サイトや書籍をご紹介したいと思います。
Goとはどんな言語か
冒頭でもお伝えしたとおり、Goは2009年にGoogleが開発した、シンプルな言語仕様が特徴のプログラミング言語です。Go言語やGolangと表記されることもありますが、Goが正式な表記です。
コンパイラやソースコードなど、すべてオープンソースで豊富な標準ライブラリが利用できます。さらに信頼性も高く、処理速度も速いことから、効率的な開発が可能で大規模なシステム開発でも採用されています。
公式サイトトップの「Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.」という文章でもそれが表されています。
GoはWebサービス開発で採用されることが多いのですが、スマホアプリ(iOS・Android両方に対応)の開発もでき、IoTなど組み込み開発でも利用可能です。
ちなみにGoを採用した例としては、音楽配信プラットフォーム「AWA」や、Yahoo! JAPANが開発した分散オブジェクトストレージシステム「Dragon」などがあります。
シンプルで分かりやすい?
シンプルで可読性が高く、文法が理解しやすいと言われているGo。ここでは「Hello, paiza!」と表示するプログラムで他の言語と比較してみましょう。(実行にはpaiza.IOの環境を使うと便利です)
// Goのコード package main import "fmt" func main() { fmt.Println("Hello, paiza!") }
確かにパッと見て何がしたいか分かりやすいですね。
次にJavaで同じ出力をしようとした場合、以下のようなコードになります。少し複雑に感じるかもしれません。
// Javaのコード import java.util.*; public class Main { public static void main(String[] args) { System.out.println("Hello, paiza!"); } }
一方、Python3のシンプルさにはなかなかかなわないかなという感じです。
# Python3のコード print("Hello, paiza!")
少し話は逸れますが、なぜこのように同じ結果を得る場合でも違いが出るのかと言うと、言語の持つプログラミングパラダイムが異なるからです。
Javaはクラスベースのオブジェクト指向のプログラミング言語、Goは手続き型言語、そしてPythonはそれらをスタイルが組み合わさったマルチバラダイム言語…といったように分類することができます。
コード量だけでなく、各言語にはそれぞれ特徴があります。プログラミング初心者の方が今すぐそれらを理解するのは難しいかもしれませんが、開発で採用する言語を選ぶときなどに少し思い出していただければと思います。
Goは人気が高い?
冒頭でも触れた「Developer Survey 2021」をもう少し詳しく見てみると、「使い続けたいもしくは使ってみたい言語」のランキング(10位までを抜粋)は以下のとおりとなっています。Goは4位にランクインしています。
(出典)Stack Overflow DeveloperSurvey 2021
実は2020年の調査では、Goは以下のとおり3位にランクインしていました。TypeScriptが順位を上げたためワンランクダウンとなりましたが、引き続き高い順位であることに変わりはないと言ってよいでしょう。
(出典)Stack Overflow DeveloperSurvey 2020
また、Goは「好きな言語」では10位にランクインしています。
(出典)Stack Overflow DeveloperSurvey 2020
エンジニアから一定の支持を得ているのは分かりましたが、「Goの開発案件ってどのくらいあるんだろう……」と気になっている方もいるかも知れません。次はそのあたりを見てみましょう。
需要はあるの?
レバテックキャリアが2020年7月に発表した「プログラミング言語別求人案件ランキング」では、GoはやはりJavaやPHPといった言語と比べるとまだまだ少ないなといった印象です。(レバテックキャリアの求人データがもとになっているため業界全体の傾向とは異なる可能性はあります)
(出典)レバテックキャリア「【2020年7月発表】プログラミング言語別求人案件ランキング」
2018年度・2019年度の比較で少し古いため、現在はまた変わっているかと思いますが、今現在いくつかのITエンジニア向け求人サイトで検索をしてみても劇的に増えてはいなさそうです。また、Go言語での実務経験はなくともある程度の開発経験がある人を募集しているケースが多い印象があります。
そのため年収は比較的高い水準となっており、さきほどのDeveloper Surveyの言語別年収(中央値)を見てみるとGoは9位にランクイン、金額は$75,669(約843万円)となっています。
また、paizaが2021年3月に実施した調査の「paizaに掲載している求人の言語別提示平均年収」では3位にランクインしています。(ただし、言語により求人数にばらつきがあることをご留意ください)
(出典)paiza「開発言語に関する調査」
おすすめGo学習サイト・書籍8選
ここまでGoとはどんな言語かを見てきましたが、ここからはGoを学べる学習サイトや書籍をご紹介します。
paizaラーニング「Go体験編」
【無料】
Goではじめてプログラミングをやってみるという方でもスムーズに取り組める内容になっています。
序盤はプログラミングとは何か、初心者がプログラミングで間違いやすいポイントなどからスタートするため、他の言語で経験がある方はスキップしてもよいでしょう。
チャプターをすべて受講すると、Goでの数値や文字列の扱い方、データの受け取り方、基礎文法と言われるfor文・if文などが習得できます。
paizaラーニングはプロの声優さんのナレーションに合わせて、動画でプログラミングを学ぶ形式になっています。チャプターごとの演習課題を解くことで「分かったつもり」を防ぎ、確実に自分でコードが書けるようになってから次に進むことができます。
上記はすべてブラウザ上でおこなうため環境構築は不要です。
A Tour of Go
【無料】
Goについてひと通り網羅するならこのサイトがおすすめです。ブラウザ上で実際にコードを書きながらGoを理解することができます。
基礎文法はもちろん、構造体や配列など発展した内容も学べます。さらにGoのコア機能である並行処理についての説明もありますので、少しGoをやったことがあるという方もレベルアップのために活用できるでしょう。
ドットインストール「はじめてのGo言語」
【一部無料】
この講座はレッスン3まで無料で受講できます。プレミアム会員になると、以降のレッスンの受講およびブラウザ上でのコード実行が可能になります。
Goの基本を押さえた内容になっています。ドットインストールは、動画形式で講師の方の説明を聞きながら実際のプログラミング画面を見て進められるので、分からずに挫折してしまうといったことを防げます。
Go Web プログラミング
【無料】
GoによるWebプログラミングに興味がある方におすすめのサイトで、Webの基礎知識やデータベースへのアクセス、セッションといった内容まで網羅されています。
Goのインストール、開発ツールの設定まで説明があるため、自分のPCに開発環境を整えたい方はぜひ参考にしてみてください。
Go 公式サイト
【無料】
Goの公式サイトです。英語ですが、有志の日本語訳もありますので参考にしてみてください。
標準ライブラリの使い方を知りたい場合は、公式を参照するとよいでしょう。(最初に紹介した「A Tour Of Go」もこのサイトの一部です)
おすすめ書籍3選
Go言語 ハンズオン
Go言語の基礎からWebサーバプログラミングまでサンプルコードを利用して手を動かしながら学べる1冊です。
電卓、Webスクレイピングツール、Youtube動画を管理するWebアプリなどを実際に作ることができるので、アウトプットを重視している方には特におすすめです。
基礎からわかる Go言語
これからGoを学びたい方におすすめの基本をしっかり押さえた1冊。
特に他言語でのプログラミング経験がある方は比較なども掲載されており分かりやすいと思います。逆にプログラミング自体初めてという方には少し難しいかもしれません。
みんなのGo言語
Goの基本を理解して、もう少し先に進みたいと思ったときや2冊目の参考書としておすすめです。
Goを実際の開発現場で採用した際の視点で書かれており、現役エンジニアの知見が詰まっています。バージョン管理やデータベースの扱いなどアプリ開発には欠かせない情報が得られます。
まとめ
Goとはどのような言語か、どのように学ぶとよいかについて解説してきました。
実務となるとまだ開発案件や求人数自体は少なく、これからエンジニアを目指す方が選択するにはややハードルが高いかなと思いますが、言語自体は学びやすいと言えます。
まずは今回ご紹介したようなWebブラウザ上で試すことができる学習サイトを利用して、Goを体験するところから始めてみましょう。
なお、paizaは学習サービスだけでなく、ITエンジニア向け就活・転職サービスも運営しています。プログラミング言語を指定して求人検索もできますので、興味がある方は覗いてみてください。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら