T onight I found myself, somehow, looking over the extensive list of Google’s OpenSource projects. Even after spending hours perusing the list, I still couldn’t tell you what originally brought me there. However, I could tell you that I was happy to discover many little gems in there that began to spark my creative fancy and gave me ideas for some new projects I want to pursue. One item in particular was Google’s programming language called “Go” or “Golang” or “Go Language”.

I had never heard of it before but to be honest, I’m not surprised as it’s impossible for someone to know everything. And, I would argue, even harder for them to know all the various little programming languages that exist, or have existed, over the years. It’s a clever little language that has apparently grown very popular over the years and, unsurprisingly, was quickly shooting to the top of my list of “Languages to Learn” as well.

Brief bit of history.

Robert Griesemer, Rob Pike and Ken Thompson started sketching the goals for a new language on the white board on September 21, 2007. Within a few days the goals had settled into a plan to do something and a fair idea of what it would be. Design continued part-time in parallel with unrelated work. By January 2008, Ken had started work on a compiler with which to explore ideas; it generated C code as its output. By mid-year the language had become a full-time project and had settled enough to attempt a production compiler. In May 2008, Ian Taylor independently started on a GCC front end for Go using the draft specification. Russ Cox joined in late 2008 and helped move the language and libraries from prototype to reality.

Go became a public open source project on November 10, 2009. Countless people from the community have contributed ideas, discussions, and code.

There are now millions of Go programmers—gophers—around the world, and there are more every day. Go’s success has far exceeded our expectations.

Source: Golang.org

Helpful Resources.

After some quick searches on….. Google of course, I was able to find a few resources that I found super helpful. There isn’t tons of stuff on it, but to be honest, it’s a dead easy language. I’ve programmed in tons of other languages before and if you know anything about object-oriented languages then you’re going to take to it like a gopher to a gopher-hole.

Official Source Page

The first place to start is always the official page. The best kept repository of resources, documentation, builds, etc. will be here.

Training Resource

I found a great website called Codecademy that has a pretty thorough, but manageable, course on Go called “Learn Go”. Not only was the coursework very well laid out but it was also FREE?!? I would have happily thrown a tenner down for it.

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Golang.org

All trained up and everywhere to Go.

Using the Codecademy training system, I was able to spend the afternoon getting familiar with the Go language. It starts out with some general “coding” basics and how they pertain to Go before moving into some more complex coding samples and projects. Anyone who has done tons of OOP coding will find it all to be pretty redundant as most of the concepts apply. However, Codecademy’s UI layout with tutorials/education materials on the left, text editor in the middle, and console on the right was very well designed and made relearning this stuff a fun practice in repetition. Not to mention the system has some great guidance using code detection and follow-along that ensures you’re on the right track.

As I said, if you have coding experience it won’t revolutionize how you code, but it will get you rapidly familiar with the subtle nuances and differences in Go. I spent a few hours going through the whole thing and I honestly enjoyed it. And, I feel as though I can immediately get underway with using Go.

I also managed to knock out getting a Coursework certification as well. I don’t know if it will mean much to anyone else, but I definitely know I learned a lot for an afternoon of coding fun.