/go-koans

koans for go

Primary LanguageGo

Go Koans

I'm not sure how this ever got popular under my namespace, but it seems to have enough interest that I feel compelled to maintain it now. The original author, Steven Degutis, committed the initial suite of tests, 4c5e766, on Mar 10, 2012. I don't recall now how I discovered the initial codebase beyond searching for "go koans" on GitHub. I do recall that I was enlightened considerably by Ruby Koans and something similarly enlightening on my journey to the Nirvana of Go could be a blessing for anyone.

Since my discovery of The Go Programming Language, the language and development environments have changed significantly. I will do my best to balance current best practices and a low barrier of entry for newcomers (whom I assume to be the vast majority of those with interest in this repository). I will try to keep up to date with the latest stable releases. I hope I can rely on this wonderful community to help me with this.

Native Usage

If you prefer to do things "natively" you may download, install, and configure the suite of tools provided by the binary or source distribution of your choice from the Downloads page.

  1. Run go test.
  2. Make the failing tests pass, by replacing these types of __variables__ with real values.

Docker Usage

I have found that using Docker helps me keep my development environment clean and portable. Here is an example of how I might set up an environment dedicated to go through these koans.

Install/Setup:

luser@lolcathost:~ $ docker-machine create -d virtualbox golang
luser@lolcathost:~ $ eval $(docker-machine env golang)
luser@lolcathost:~ $ docker pull library/golang:1.6.0-alpine
luser@lolcathost:~ $ docker run --rm -ti -v "$PWD":/usr/src/koans -w /usr/src/koans golang:1.6.0-alpine /bin/sh

Now with an interactive shell inside of a minimal container you may iterate through the same steps to enlightenment described above.

Helpful References

Bookmark the spec and the packages listing. You can also run the Go website locally with godoc -http=:8080.

Go support in Vim

If you have an interest in a more fancy vim setup, I urge you to consider the post on the Go Development Environment for Vim on the Gopher Academy Blog.

Go-Koans support in Emacs

Jacek Wysocki has provided some nice Go Koans helper scripts for Emacs users at exu/go-koans.el