This workshop helps developers get up to speed with Go from the ground up, covering basic language syntax through to concurrency. Along the way, you learn best practices for project layout, testing, reusability, and dependency management. You get practical, hands-on experience tailoring your development environment for Go development, building CLI tools, writing HTTP servers, and developing concurrent programs with goroutines and channels. The aim of this course is to build your confidence in starting new projects in Go.
The following are the topics covered in this course:
Language Basics
Syntax and Types
Packages
Arrays and Iteration
Slices
Maps
Pointers
Functions
Errors
Structs
Interfaces
Command Line Tools
Testing
Interfaces
HTTP Servers
Dependencies
Concurrency Basics
Goroutines
Channels
The workshop follows these guiding principles:
We put heavy emphasis on learning by doing.
We link to online resources as needed so that you can refer to them on your own afterwards.
Don't be afraid to ask for help from the instructor or from a classmate.
There is often more than one way to accomplish a task so your solution may look different from the instructor's or classmates--and that's okay.
The material is divided into sections with one or more topics. The typical workflow is as follows:
Topic introduction
Exercise
Sample solution walkthrough
Topic summary and/or related next steps
This workshop is aimed at developers with some level of experience with other languages and/or with some exposure to Go. We won't spend a lot of time explaining basic programming concepts (conditionals, looping, arrays, maps, etc) as it is expected you will have worked with them before.
You are also expected to know how to:
Work with a shell environment (bash, Windows PowerShell, cmd.exe
, etc)
Work your way around your file system (cd
, ls
, mkdir
, mv
, etc)
Work with environment variables
If you are completely new to Go (as in "I've never even seen the syntax or written a 'Hello World' program"), you can get a feel for the syntax with the following resources:
You will also need to install the following:
Git
Go (1.13 or higher)
Visual Studio Code (highly recommended) or an editor with support for Go syntax
There are several resources available online to help you install and configure Go on your Linux, Mac/Linux machine. If you're having trouble, check out the following:
Guiding you through this journey will be Johnny Boursiquot, author of the well-liked Go Standard Library Solutions course available from Packt Publishing. Johnny is an active member and leader within the Go community. He runs the Baltimore Metro Area Go User Group, leads the Baltimore Chapter of the GoBridge organization, and speaks regularly at conferences and meetups. He loves to teach and to welcome new members into the community. Reach him on Twitter @jboursiquot.