こんにちは!好奇心おばけのかわそん (@KKohey4)です!

本記事の内容
- Go言語の難易度は高い
- Googleが開発している言語です
- 将来はかなり明るい[今がチャンス]
この記事を書いている僕は、年間50人以上の初心者に、プログラミングを指導。
個人でもRailsを使って、お仕事を頂いていています。
最近、Go言語にハマっており、他の言語と比較すると、いろんな特徴が見えてきたんですよね。
今回は、そんな気づきを共有します。
3分だけお付き合いくださいませ(`・ω・´)ゞ
[初心者NG]Go言語の難易度は高い[だがやる価値は大いにある]
結論から。
理由はシンプルでして、直感に合わないからですね。
ちょっと、例を見てみましょう。
Go言語の「Hello World」
下記は、プログラミングの定番、
「Hello World」
のコードです。
import "fmt"
func main(){
fmt.Println("Hello World")
}
そして、
go run main.go
で実行です。
rubyが
と、
ruby app.rb
だけっていうことを考えると、、、
量が多くて、複雑そうに見えませんかね。
何をやってるのか、パッとはわかりにくい。
Go言語は「プログラミング初心者」にはオススメしない。
下記のツイートをご覧ください。
ガッツリGoを勉強してますが、、ぶっちゃけ初心者にはオススメできない。
・直感とズレる
・規約がスーパー厳密
・感動ポイントが技術寄りC言語と似た空気があって、「勉強」として取り組んでいた2年前くらいの自分だったら100%挫折。最初はrubyとかphpで小ちゃい成功体験を掴むべきで、理屈はあと
— かわそん@Blog Life (@KKohey4) July 30, 2019
プログラミング初心者なら、オススメできません。
理由は、同じでして、直感に合わないから。
じゃあ、なんで直感に合わないと、よくないのか。
→感動が薄いから
上記の通り。
例えば、コンソール(エンジニアっぽい黒い画面)に、文字を出力するGo言語。
実際のurlにアクセスすると、サービスが動いているのがわかる、ruby。
、、、どっちが感動が大きいですかね。
このあたりの話は、Rubyの特徴は3つあり、初心者に最適という話[僕は救われた]で紹介していますので、よろしければ。
Go言語の大きな特徴
では、Go言語の特徴に行きましょう。
結論は3つでして、下記の通り。
- 全くムダがない
- 並列処理が簡単
- Googleが作っている
上記の通り。
では、行きましょう。
全くムダがない
Go言語は、まじでムダがない。
というのは、Goの大きな思想の中に、「Simplicity」があるからですね。
つまり、
長いよりは短い方がいい。
遅いよりは早い方がいい。
というわけです。
例えば、使わない変数は宣言できないし、型のチェックもかなり厳密になっていて、コンパイルの時にエラーを吐きます。
Go言語では並列処理が簡単
Goでは、複数の処理を、並列で行うことができます。
大きいのが、これが「簡単にできる」っていう点です。
「Go Routine」っていうものがありまして、簡単に「複数のRoutine」を作ることができるんですよね。
詳しくは、ググってみてください。
✔️他の言語との比較
例によって、僕が得意なrubyと、比べてみます。
少なくとも僕がrubyで並列処理をしたい時。
parallelっていうgemを導入します。
※gemっていうのは、便利な機能が使えるようになる、コードの塊のことです。
しかし、Go言語の場合。
関数の前に「go」ってつけるだけでOK。
他の言語より、圧倒的に簡単。
言語自体に、そういう性質が備わってるというわけです。
Go言語はGoogleが作っている
GoはGoogleが開発しています。
この言語を書いている時点で、最新は1.13。
rubyが2.63っていうことを考えると、、、かなり新しいのが伝わるかなと。
しかし、Googleが力を入れてるっていうことは、これからの伸び率が高いっていうことでもあり、次で説明します。
Go言語は難しいが、勉強する価値は高い
今のうちにGo言語をやっておく価値は、大いにあります。
理由は大きく3つでして、下記の通り。
- Googleが作っている
- 大手企業が採用している
- 競合が少ない
上記の通り。
サクッと説明します。
Googleが作っている
繰り返しです。
Googleが力を入れてれば、間違いなく伸びます。
IT市場自体が、伸びていますし。
ソフトバンクやGAFAの投資先を見てみても、明らかにAI分野に偏ってますよね。
詳しくは、下記で解説しています。
大手企業が採用し始めている
大手企業が、Go言語を取り入れはじめてます。
例えば、LINEやサーバーエージェント、DeNAなどですね。
実際に「Go Conference」っていう集まりに行って、現役のエンジニアさんに確認したので、間違いないはず。
ちなみに、この辺りの理由としては
「動作速度・メモリ周り」
も大きいかなと。
技術的な話なので、紹介はしませんが、個人的には無視できない流れかなと思っております。
これは間違いないはず。
競合が少ない
Goを自由に扱えるエンジニアは、少なめです。
やっぱり、まだ新しい言語っていうのは、大きな理由ですね。
ライバルが少ないので、今からやっておけば、かなりポジション取りやすいのは、イメージつくかもです。
今からちょっと後の未来で、

そういや、あの人、昔からGo触ってたな。
ちょっと聞いてみよう。」
こんなことが起こりやすくなるはずなので、今のうちに始める価値は高いというわけですね。
Goの基礎スキルを身につける方法
結論は、2ステップです。
- Udemyでざっくり押さえる
- 本で情報をスキャン
上記の通り。
僕は最初②からやって、わけわからず、投げ出しました。
しかし①を挟んだら、話が変わった。
見違えるくらい、Goのことに詳しくなれたんですよね。
最後にちょっとだけ、説明します。
①udemyでざっくり押さえる
僕が実際に使ったのは、The Complete Developer's Guide です。
シンプルに、
値段が安い+最高評価だったからですね。
これで、
Goの文法~性質まで、身につけられました。
✔️参考
[初心者NG]Go言語の難易度は高い[だがやる価値は大いにある]
②本で情報をスキャン
動画で基礎をやったあと。
スターティングGo言語でブーストです。
メソッドとパッケージの知識をスキャンしつつ、使いました。
「こういうことできるんだ」
っていうことさえ、読んだ経験があれば、ググれば実装できますので。
さすがに、アマゾンのベストセラーだけありました。
Go初心者でもわかりやすい、圧倒的良書です。
✔️参考
[初心者向け]プログラミング学習で暗記は不要[今すぐ脱出セヨ]
まとめ:Go言語にコミットしていきます
記事のポイントをまとめます。
- Go言語の難易度は高いです
- プログラミング初心者にはオススメしない
- 特徴は3つある
- ムダなし、並列処理、Googleが作成
- 勉強する価値は、大いにある
難しさの分の価値は、十分にあります。
僕はこれからもGoを勉強していくつもりでして、0から技術をつける過程を、全て共有します。
たくさん失敗すると思いますが、
温かく見守っていただけると幸いです。
では、では以上です。
✔️本文中で紹介した本など
✔️参考記事
特徴や将来性を含めて、Go言語についての、話を聞いてみたいです。」