Teaching Go to complete beginners

TL;DR

How about arranging a GoBridge workshop for beginners as your New Year’s resolution?

Teach Go to complete beginners

Being a good Go programmer is definitely good. One of the things that bridges the gap between a good and a great programmer, is knowing your stuff. The Feynman Technique to learning things suggests that the best way to know something, is to be able to explain it to a person new in the field. Let’s look at your teaching experience: sure, you have explained a concept you like or introduced a tool you found to your colleagues, but have you ever taught a complete beginner?

I did, and I’m here to talk about this. What I hope to achieve with this post is to introduce GoBridge, engage new instructors with existing communities and inspire new communities to start.

Let’s start with the brownie points: by teaching Go to complete beginners, not only you are getting involved in the Go community, you are also helping it grow. That’s a great thing to do as a supporter of an open-source community-driven programming language.

Meanwhile in Berlin

In September-November 2016 we held a GoBridge workshop, where aspiring gophers met enthusiastic instructors every other Wednesday during 6 meetings in the SoundCloud offices in Berlin. The end result was a web server that pings a weather API and displays the results locally. The crowd was a great mix of uni students, people who already work in a different field, and even several developers. The mix of genders, religions and nationalities was as varied as it can get in Berlin, both at the students and at the instructors groups.

A few words on GoBridge: this is an organization advocating for diversity in the Go community by educating underrepresented communities technical skills. GoBridge are the newest member of the BridgeFoundry umbrella, which is a great place to learn Ruby or mobile development. Alternatively, you can use go-mobile, but that’s a subject for another post. If you have attended GolangUK ‘16 you probably remember Carlisia’s talk about GoBridge.

Back to our workshop. As we took it slow, the group of already-developers didn’t proceed to our second meeting. I hope they are reading this post today after being convinced Go is great. The first workshop already introduced several challenges, as developers want to plow through the material, but, we are here for beginners. So here is challenge #1 for you: control the pace to make the beginners feel comfortable with the learning pace.

As the meetings went on, we covered simpler concepts like variables, and more complex one like json marshaling. We spotted an interesting behaviour: when the instructor leading the workshop asked “all clear?” there were no questions from the crowd. But, when s/he’d then say “let’s do this exercise” - not much happened. This implied that everything wasn’t clear to the students, but students still weren’t raising their hands. Having taught beginner groups in the past, this was not new. Challenge #2: Get your crowd to actually understand. This can be broken down to 2 challenges: Challenge #2a - Have the participants ask questions Challenge #2b - Explain the answer in a clear way. The best practice I can offer to part 1 is approach each student at least once and ask “what are your questions?”. Answering with questions is way easier than having the initiative to ask them. The best practice for the second? I’d like to refer you to the Feynman Technique, which you should do in advance of course.

At the graduation event the participants presented their projects and got swag. Additionally, we hosted a talk by an HR manager, who gave tips on how to write your cv, how to read job descriptions and how to prepare for interviews.

This was a great success!

Our next workshop will start at the first week of January and will follow the same format. Convinced yet to host one? It’s easier than you think. Here’s the FAQ. If you are not convinced yet - please comment on this post, or email any of the core members. We are happy to chat.

FAQ

What is GoBridge actually doing?

Support local Go communities, develop training materials, connect sponsors and organizers, and provide space for online groups. In 2016 there were about 50 workshops worldwide.

Who is behind GoBridge?

An awesome group of volunteers who keep the subject of diversity in the Go community close to their hearts. Check out the website and the repo too.

How is GoBridge different from other communities, like Women Who Go?

WWG are the women of the Go community and their allies. GoBridge is about advocating Go to people of diversity groups.

Can men attend the workshops?

If you are surprised from this question - you are not alone. Yet, we have seen this question several times. The answer is yes. People of all backgrounds, including all genders, not just women and men, are welcome, as both participants and instructors. Here’s our Code of Conduct.

What is the session format?

Meeting, usually every other week, and following the course outline and lots of independent work. You can also adjust this to your schedule, and offer a shorter or a longer workshop.

What is the Go for Complete Beginners course about

It starts with covering programming principles, going through the Go basics using the playground, and ends in having a web server that pings an API and displays the results. Here is the material.

Is Go a good language to start with?

While there is no consensus about Go being the best language for beginners, there is also no consensus it’s the worst. When you start learning with Go, there are no habits you need to unlearn, and proceeding to teaching advanced and needed subjects like concurrency and parallelism is fairly smooth.

What are the plans for 2017?

The newest addition to the material database is the course for complete beginners. This workshop, in addition to several other Go workshops will be taught in lot’s of events. See them all here.

What’s in it for me?

Learn about yourself and improve your communication skills. See what can you explain in a few words, where you need to improve, help bring up new gophers, meet people from your community, be a mentor, your organization skills, and get some karma.

Thank you for reading.

If you would like to arrange a workshop in your city and need any sort of help, please ping: support@golangbridge.org or ping us on Gophers Slack at the #gobridge channel.

Wishing us all to be excellent to each other, and keep having a great and diverse community.