ゼロから学ぶGo言語プログラミング(1) はじめに

f:id:belbo:20140606104654p:plain

本職ではありませんが、プログラミングが好きです。 でも週末自分の趣味に関係して、その時々興味のあるものを触るばかりで、何かに集中してしっかり学んできませんでした。 知人のプログラマと話す内に、そろそろ「これはしっかり把握したぞ」と言えるものが欲しくなりました。

最近、Go言語が気になっています。 Googleが開発したこの言語は、採用事例もどんどん増え始め、Dockerという先進的なプロダクトでも使用されているそうです。 私はGoogle App EngineというGoogleのPaaSが好きなんですが、ここでもGoは対応言語のひとつに採用されています。

このGo言語、以前一度はしっかり学んでみようと手を付けたのですが、少し仕事が忙しくなっただけで放置してしまいました。 しかし爆発的な普及の兆しも見え始めて、学ぶのに良い情報もどんどん増えていきそうなので、改めて取り組んでみます。 当時からGoを取り巻く状況も色々変わっているようですし、この際ゼロから学び直そうと思います。

現時点の自分の力量

  • HTMLやCSSはひと通り扱えるし、最新の動向にもそこそこ対応できている
  • JavaScriptは単発で何かを作るのは十分可能、しかしプロフェッショナルには程遠い
  • PHPOSSのプロダクトを触る内にある程度習得
  • PythonGoogle App Engineで色々自分用のアプリケーションを書いていて楽しいが、かなり浅いレベルでしか使っていない
  • PowerShellとかC#とかSQLとかFileMakerとか、全部少しずつ使える
  • Goはサンプルを動かしたり、ちょっとした操作を試し、小さなappengineアプリケーションを作った程度

つまりは、深く真髄をつかむまでいったものが無く、その場その場で必要なところだけつまみ食いしているような状態です。 HMTL・CSSJavaScriptPHPはある程度できるけど、どれも浅くしか…という人は、日本に結構な数いると思います。

一番の問題は、プログラミングにおける色々な概念を、必要な時に必要な分だけ、自分なりの解釈をして習得した気になり、理論や検証を全然していない点。 芯が通った拠り所がないので、新たな何かを学ぶほど、ふらふらとぼんやりした理解を繰り返してしまいます。

書き出してみると深刻で、ここはひとつ、Goを通してひとつのプログラミング言語をじっくり学んで、これからの楽しいプログラミング生活を改善していこうと思います。 Goそのものを学ぶというより、Goを通じてプログラミングを学ぶのが目標です。

どうやって学ぶか

情報源

この手の変化が激しい分野の場合、新しい書籍であっても、手に入れた時点ですでに、最新の状況と多少なりともずれがあります。 その辺りはうまく噛み砕けると良いのでしょうが、私はどうもそのずれに引っかかりやすいので、なるべくWebのみで学ぼうと思います。

まず頼りになる公式サイトや定番のサイト。

はじめなので、まずはこの辺りを参考にして、Goの大まかなイメージをつかむことにします。 まずはあまり実際の仕様に踏み込まず、概念や学ぶ上でとっかかりになりそうな点を確認。

Goへの注目が高まって、他にも日本語の良いリソースが増えているので、おいおい選んでいこうと思います。

環境の構築

この手の言語学習では、最初の環境構築に手間取ったり、環境ごと、言語側の開発状況によってつまずいたりがあり得ます。 そこではじめのはじめには、ブラウザ上でGoが試せる以下を利用します。

Go Playground

f:id:belbo:20140606104605j:plain

ここで取っ掛かりを掴んで、コンパイルを行うローカルの環境を、きちんと構築してみようと思います。