さて、このブログにはテーマ的にはアンフィットで正直入れ込むべき内容ではないのですが、私が昨今関心を高く持っているGO言語(いわゆるGolang)について、お勉強の記録を残していきたいと思います。
ほとんど興味ないよって方が多いかと思いますが、興味ある方はお付き合いください。私はpythonがメインですが第2言語を勉強すると得られるものも多いと思います。
Golangってどんな言語?
まずは、そもそもGoってどんな言語なのって部分から解説していきたいと思います。
・2009年にGoogleが開発したOpen Source(オープンソースプロジェクト)のプロジェクト言語
・とりあえずシンプル!!
・軽量(マルチコア化して複雑なプログラムにも対応可能)
・コンパイラ型言語(pythonはインタープリタ型)
・静的プログラミング言語(でも、動的プログラミング言語に近い気がする)
・ネイティブアプリの開発も可能(gomobileなど)
読んでもよくわからないってなるのが、ノンプロですが、要はGoogleが採用しているってところが1番の押しポイントかもしれません。
以下の記事でも紹介していますが、将来的にエンジニアを職種にしたい人にはこれから始めるのにはいい言語だと思います。大手が採用した言語、過去で言うとpythonとか、がメジャー言語になっていくのは流れとして強いです。
何故Golang(複数言語)を勉強しようと思ったか
Golangを勉強するってなると、お前エンジニアになりたいの?って聞かれるのですが、私は特に純粋エンジニアになる予定はありません汗
単純にプログラミングをもう少しだけ深く理解しようと思ったためです。プログラミングって1つの言語を習得していくことで、その言語特有の問題、例えばphpのnull ゼロ評価とか、を実は当たり前と思ってしまうケースもあります。これを避けたかったってのもあります。
また、複数言語を学習することで、言語間の違いを理解することができます。これは、メイン言語への理解を深めたり、メリット・デメリットを理解する気づきの要素も与えてくれます。
他方で、デメリットとしては、もちろん時間を取られます。そして頭がグチャってなることもあります。たまに書き方忘れたり。。
それでも、個人的にはメリットが勝つと思い勉強を始めています。
・プログラミング自体の理解が深まる
・言語特有の問題点に気づく
・コードの設計思想の違いを理解できる
・時間が取られる(まずは1つ言語をある程度のレベルまで理解する方がいい)
・他言語の書き方を少し忘れる(人によりけりだと思います)
Golangの勉強 何から始める?
えぇと私も初学者なので、別にこれからやっていく勉強方法が必ずしもベストかどうかはわかりません。
ただ、基本的な私の言語学習の勉強方法は以下のステップになるので、Golangにおいても同じ方法を採用しています。
- Step1オフィシャルドキュメントで勉強する
Golangの場合、オフィシャルドキュメントは以下になります。
The Go Programming LanguageGo is an open source programming language that makes it simple to build secure, scalable systems.一般的にプログラミング言語のオフィシャルドキュメントには、tutorialやeffectiveな書き方の説明などがあるので、それをローカルの環境もしくはgo playgroundなどの環境で実行します
- Step2シンプルなframework(静的)を使ってみる(ここは飛ばしてもいい)
今はHugoと言うgoのstatic型のframeworkを使って勉強しています。
The world’s fastest framework for building websitesThe world’s fastest framework for building websites - Step3動的なframeworkを使ってみる
ライトなものから始めて足していくか、最初からフルスタック系に進むかは個人の好みだと思っています。
pythonだったらflask(ライトなもの)からやるか、Django(フルスタック)からやるかと言うイメージです。どっちも良し悪しがあります。
Golangの場合、ライトなものだとGin、フルスタックだとBeegoがあります。
frameworkは実は基本的に提供する機能の内容は、言語問わず大きくは変わりません。そのため、一度pythonでflaskやDjangoをある程度作りを理解しておくと、Golangでも生かされるのではないかと思います。MVCモデルでないと理解の方法が大きく変わってくるかもしれないので、ちょっと確かなことが言えませんが。。
まとめ
今回は、【Golang勉強記〜ノンプロがゼロからGOを初めてみます〜】と言うテーマで、Golangの勉強しますという宣言をしてみました。
すでにGolang自体の学習は少しずつ進めており、Hugoでのwebsite構築も進めています。(もちろん記事化する前に勉強するので。。)
これから、たまに少しずつ記事化していこうかと思いますので、興味ある方はお付き合いください。