Conf42: Golang 2021

...

Go from Zero to Hero: Learning Go when you don't know how to code

Miriah Peterson
Data Engineer @ Weave

Miriah Peterson's LinkedIn account Miriah Peterson's twitter account


Go as a language is infamously not friendly to new developers. This is funny to me because I consider it my “first” language. This talk explores how to use go to teach first time developers basic programing topics, how to set up a dev environment, how to write a program and basic coding practices.

Intro

I believe the simplicity and cleanliness of the Go programming Language makes it suitable as a language for first time programmers. However, things like a GoPath, Dependencies, binaries, CLIs, IDEs, and Git make it hard for someone who has never coded before to just pick up go in their free time. This tutorial is written for people who have less that one year programming experience or even no experience whatsoever. It is to help them learn go and master their tools as well. I do not have experience in education theory, but from personal experience this course is curated in an order to help them learn go as well as all the scary stuff. In this talk we will go over the sections and tools used to help first time devs Master go.

Open Source Learning

As experience devs we can learn most things online and for free. Blog posts, tutorials, demos, meetups, etc. these all contribute to our learning via Open Source. But what about first time devs? we require them to take university courses or bootcamps? They have to pay thousands of dollars just to start off using tools and tech that are not top of the line?

The idea behind this tutorial it to replicate the opensource blog posts and tutorials, but to make it for beginners. And to make it truely opensource anyone can contribute to it, I am just waiting for someone to make a pr and finish it for me cough cough (that is only half a joke). Hopefully it becomes something that can get people off the ground and ready to tackle projects either on their own or in a workplace setting.

Tutorial outline

[Part-1 Intro to Programming]

These are the basics we learn in our first programming class. Devs learn them in boot camps. We have to explain the why to first time devs. How they are tools on your tool belt that will allow you to start solving harder problems.

[1.1 Hello World]

[1.2 Types]

[1.3 Functions]

[1.4 Conditionals]

[1.5 Loops]

[Part-2 Using the Command Line]

The hardest this for me what figuring out what a Dev env was. Here we walk through it step my step. by the end we should be ready to build a go program.

[2.1 Bash]

[2.2 Git]

[2.3 Install Go]

[2.4 Pick Your IDE]

[Part-3 Write a Go server]

We deal with servers and apis everyday. Is it part of Web dev. Seems like a good place to start.

[3.1 What is an API?]

[3.2 Chat server Example project]

[Part-4 Dependencies]

This may be common place for Java devs, but for new developers it using other libraries and tools ins a new concept

[4.1 Using Go Modules]

[4.2 Using Opensource Libriares]

[Part-5 Checking your Code]

Now we need to prepare them for industry best practices.

[5.1 Linters]

[5.2 Unit Tests]

[5.3 Test Coverage]

[5.4 Web Crawler Example]

[Part-6 Deploying a Service]

I haven’t worked anywhere that doesn’t use docker so this seems like an invaluable skill

[6.1 Docker]

Tools

Additional Resources

Other places to go learn pulled from the doc

Awesome conferences for

Priority access to all content

Community Discord

Exclusive promotions and giveaways