[初心者NG]Go言語の難易度は高い[だがやる価値は大いにある]

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

Go言語に興味がある人
「Go言語に興味があります。難しいのかな。そもそも、どんな言語なんだろう?
特徴や将来性を含めて、Go言語についての、話を聞いてみたいです。」
このような疑問を解決します。

本記事の内容

  • Go言語の難易度は高い
  • Googleが開発している言語です
  • 将来はかなり明るい[今がチャンス]

この記事を書いている僕は、年間50人以上の初心者に、プログラミングを指導。

個人でもRailsを使って、お仕事を頂いていています。

最近、Go言語にハマっており、他の言語と比較すると、いろんな特徴が見えてきたんですよね。

今回は、そんな気づきを共有します。

3分だけお付き合いくださいませ(`・ω・´)ゞ

[初心者NG]Go言語の難易度は高い[だがやる価値は大いにある]

結論から。

Go言語の難易度は高いです。

理由はシンプルでして、直感に合わないからですね。

ちょっと、例を見てみましょう。

Go言語の「Hello World」

下記は、プログラミングの定番、
「Hello World」
のコードです。

package main
import "fmt"
func main(){
fmt.Println("Hello World")
}

そして、
go run main.go
で実行です。

rubyが

p "Hello World"

と、
ruby app.rb
だけっていうことを考えると、、、

量が多くて、複雑そうに見えませんかね。

何をやってるのか、パッとはわかりにくい。

Go言語は「プログラミング初心者」にはオススメしない。

下記のツイートをご覧ください。

プログラミング初心者なら、オススメできません。

理由は、同じでして、直感に合わないから。

じゃあ、なんで直感に合わないと、よくないのか。

直感に合わない
→感動が薄いから

上記の通り。

例えば、コンソール(エンジニアっぽい黒い画面)に、文字を出力する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を書かないといけなくなった。
そういや、あの人、昔からGo触ってたな。
ちょっと聞いてみよう。」

こんなことが起こりやすくなるはずなので、今のうちに始める価値は高いというわけですね。

Goの基礎スキルを身につける方法

結論は、2ステップです。

  1. Udemyでざっくり押さえる
  2. 本で情報をスキャン

上記の通り。

僕は最初②からやって、わけわからず、投げ出しました。

しかし①を挟んだら、話が変わった。
見違えるくらい、Goのことに詳しくなれたんですよね。

最後にちょっとだけ、説明します。

①udemyでざっくり押さえる

僕が実際に使ったのは、The Complete Developer's Guide です。

シンプルに、
値段が安い+最高評価だったからですね。

これで、
Goの文法~性質まで、身につけられました。

✔️参考
[初心者NG]Go言語の難易度は高い[だがやる価値は大いにある]

②本で情報をスキャン

動画で基礎をやったあと。
スターティングGo言語でブーストです。

メソッドとパッケージの知識をスキャンしつつ、使いました。

「こういうことできるんだ」
っていうことさえ、読んだ経験があれば、ググれば実装できますので。

さすがに、アマゾンのベストセラーだけありました。
Go初心者でもわかりやすい、圧倒的良書です。

✔️参考
[初心者向け]プログラミング学習で暗記は不要[今すぐ脱出セヨ]

まとめ:Go言語にコミットしていきます

記事のポイントをまとめます。

  • Go言語の難易度は高いです
  • プログラミング初心者にはオススメしない
  • 特徴は3つある
  • ムダなし、並列処理、Googleが作成
  • 勉強する価値は、大いにある

難しさの分の価値は、十分にあります。

僕はこれからもGoを勉強していくつもりでして、0から技術をつける過程を、全て共有します。

たくさん失敗すると思いますが、
温かく見守っていただけると幸いです。

では、では以上です。

✔️本文中で紹介した本など

✔️参考記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です