Go Language Study Group – An Analysis

Last year, I was part of an online Go course conducted by Satish Talim. One of my colleagues Prashant Thakkar too was part of this course. While we had been dibbling and dabbling a little bit with Go, this course acted as a catalyst to cement our interest in Go, take our knowledge to the next level and in return give back to the community via a similar exercise and moving forward, even formal training.

google-go-logo

I thought of conducting a 6-week Go Language course at the firm where I work, Xoriant. While Go has not seen much traction yet in terms of the projects that we get, in my book this was an excellent time to expose a wider set of developers across the organization to Go Language. I am a firm believer in the language and I think it is in for the long run with already massive success stories.

The rules of the game were very simple where I setup the Go Language Study Group. We did not want to send out a company wide email and make it look as if it was a requirement to learn the language. Instead I set up the following rules:

  1. We will send out an invite to only a select few people. Let news about it spread organically.
  2. Except for this one email that I wrote initially inviting the person to join us in this learning adventure, there will be no more emails from me.
  3. All communication will happen over Slack.
  4. Anyone can answer queries. No one is an authorized expert here.
  5. Myself and Prashant took on the onus of collecting the material, writing parts of it, validating it and so on. Satish was gracious to let us use 3 weeks of his material. A big Thank You to him.
  6. Every Monday, I will send out a PDF containing that weeks material.

We learnt a lot of these methods from Satish himself during the course. We actually could see that it works, if the participants are truly interested.

The course was to run from end of November, whole of December and till the first week of January 2016.

The topics that we covered across 6 weeks included:

  • Core Language Basics : Data Types, Loops, Conditions, Functions, Structs, Interfaces, etc.
  • Concurrency
  • Web Programming : Templates
  • Writing API Servers : Core HTTP Module, Gorilla.
  • Database Programming : We covered MongoDB and mgo driver
  • Writing Slack Plugins in Go

Here are some numbers from the experiment so far:

  1. 90 developers signed up for the course. It had a good mix of recently joined graduates to experienced folks.
  2. The interest peaked in the beginning of the course and as expected, it went a downward loop after that. But that is again along expected lines.
  3. Based on data that I have been able to collect and gauge from the Slack group, asking people on Slack if they have completed it and also from informal chats, here are some numbers:
    • Around 25 people have completed till Week 3 and/or 4. This is a very high number in my opinion from my previous experience of participating in online study courses.
    • The number dropped significantly to anywhere between 5 and 10 participants, who have reached Week 5 and 6.

Lessons Learnt

There are a few things that I have learnt conducting this study group and here are some of the points:

  • Developers are interested in learning new programming languages. The enthusiasm is alive and is infectious to a certain point.
  • Be prepared to answer queries like “Are there any jobs with Go right now?”. This is the most fundamental thing that is in the minds of the developers. It is one thing to give philosophical talk about learning a new language, long term view,etc and another thing to answer this to the best of our ability without any bullshit. What I used to do is to look at Go usage at product companies in India and I used to provide them the data that teams are indeed using Go.
  • Never conduct a study group in December. Everyone likes to wind down a bit and for a good reason.
  • From the total number of participants, a conversion rate of 5-10% i.e. those completing the course would be a solid number to achieve. Going over that number in a completely online course is going to be tough.
  • If you are working in a large company, just getting across to a lot of people in this manner and being able to identify the doers is a great thing.
  • Participants have to be constantly reminded to ask questions, put forward their points in an online group. In almost 99% of the cases, there will still not be any replies, so do not get discouraged.
  • Specifically in terms of Go — the Go Playground is a boon. It really helps out and takes the pain away initially from trying to setup anything locally. I believe this is the single most important reason for people to do 3-4 weeks on their own and quickly because there was nothing to setup as such. The moment we reached Databases (required Mongo setup and other stuff), it is easy to see why people would probably drop off.
  • Almost everyone agrees that more practice is required even though they understood the material and ran the samples. This is true of any other learning experience. Nothing substitutes for practice and real world project experience.
  • At the end of the day, if I have been able to make 2-3 developers out of the 100 odd who signed up as folks who have learnt Go and are looking forward to taking it to the next level, that is of immense satisfaction and I believe it meets the goal.

Get Going Today

3745145

In the true spirit of the community, we have compiled all the 6 week material into a single downloadable file that you can use today to get started with Go Language. Download it now: GoLanguageStudyCourse.

What’s next

My Go journey is going strong and I remain invested in the language and its ecosystem. One of the events that I look forward to next month is Gophercon 2016, Bengaluru and it will be 3 solid days of Go for me. I plan to take a serious dive into delivering more Go Talks, Blog articles and professional training for developers to get familiar with Go.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s