Instantly share code, notes, and snippets.

@jboursiquot / Secret
Last active Jun 20, 2018

What would you like to do?
Preparing for the Practical Go workshop at CapitalGo 2018


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 to automate mundane tasks, writing HTTP servers and microservices, packaging and shipping code with containers, and leveraging CI tools for automated tests and builds as part of your workflow. The aim of this course is to build your confidence in starting new projects in Go.

What to Expect

This course is designed to be taught in a live classroom environment where the instructor provides context for what you're learning. The workshop is about what your day-to-day work may/will be like and as such we follow 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.
  • If you can't find an answer here, search for it and we discuss what you find--yes, you can search StackOverflow or blogs, just like you normally would on your own.
  • Don't be afraid to ask for help from the instructor or from a classmate--just like you might a coworker.
  • 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 course is divided into sections with one or more topics. The typical workflow is as follows:

  1. Topic introduction
  2. Exercise
  3. Sample solution walkthrough
  4. Topic summary and/or related next steps

Minimum Qualifications

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. We will work with and explain how these concepts vary (if at all) in relation to Go however.

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 (e.g. can you find or set your $GOPATH?)

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:

What You Will Need

To follow along and solve some of the exercises in this course, you will need so setup some free accounts with the following services:

You will also need to install the following:

Installing Go

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:

Code of Conduct

The workshop will operate under the Go Community Code of Conduct. We want this to be a safe learning environment for everyone. The instructor reserves the right to ask anyone to leave if the CoC has been knowningly violated by an individual. By attending the workshop, you agree to obide by these terms.

About the Instructor

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 (join us!), has led 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment