Go for Coders

From Pointers to Channels

Turn your team into professional Gophers

Golang is the lingua franca of Kubernetes.

The language from Google brings both simplicity and effectiveness when it comes to the Cloud Native ecosystem. This course will take any software developer through the information they need to become strong Go programmers.

"Content was great, covered a ton of material, and I feel like it was a great overview of both the language and how to use it to solve a ton of different problems. Instructors were extremely knowledgable, approachable and the lab heavy workflow allowed us to dive in and get real experience."

Golang course attendee

The language of operations has shifted from Bash and Python to a heavy focus on Golang. This course is meant for developers who need a stronger grasp of Golang's key language concepts.

Our Golang workshop covers everything your team needs to quickly graduate from pointer novices to channel pros.

Outline

Start with the Golang basics: variables, structs, types, functions, and interface. Then quickly advance into the http stack, contexts, concurrency, and goroutines.

Introduction

  • Why use Go?
  • Who is this course for?
  • Course goals
  • Lab environment overview

Foundations

  • Go project structure
  • Basics of Go modules
  • Go commands

Variables and Functions

  • Built-in types
  • Pointers
  • Function signatures
  • Type casting
  • Pass-by-value vs pass-by-reference

Slices

  • Initialization, Append, and Make
  • Arrays
  • Slice notation
  • Iteration
  • Panic and recover

Maps

  • Initialization
  • Map operations
  • Concurrency concerns

Structs

  • Struct fields
  • Initialization
  • Embedded types

Methods

  • Combining functionality with data
  • Receiver types
  • Method sets

Error Handling

  • The Error type
  • Error checking
  • Error wrapping

Interfaces

  • Satisfying method sets
  • Encapsulation with types
  • Type assertions

Packages and Dependencies

  • Go package structure
  • Resolve a dependency
  • Upgrade a dependency
  • Go modules

Testing

  • The testing package
  • Idiomatic testing in Go
  • How do I structure my tests?
  • Fuzzing and benchmarks
  • Third-party test libraries

Goroutines and Channels

  • Blocking vs. non-blocking
  • Buffered vs unbuffered channels
  • Contexts and thread local data
  • Creating and closing goroutines

Contexts

  • Why are they everywhere?
  • Timeouts, deadlines, and cancelation
  • Thread-local data with contexts
  • Calling libraries that use contexts

The HTTP Stack

  • Understanding http.Client and the transport mechanism
  • HTTP handlers
  • Response writers and response body handling
  • Third-party HTTP libraries

The 411

This workshop is delivered over four days. Each day is scheduled from 12pm to 5pm ET (9am to 2pm PT) with an hour break in the middle — 16 hours in total. We try to reserve an hour at the end of each session for open Q&A. Attendance for this course is limited to up to 28 students.

Instructors

Sean Kane
SuperOrbital Engineer
Flipping bits on the internet since 1992.

Rob Salmond
Engineer & Lead Trainer
Serving an extended sentence in the YAML mines. Claims innocence.

Intended Audience

This course covers the core programming concepts inherent to the Golang language. We recommend this course for any developers who are moving to Golang from other languages.

To get the most out of this subject, students should come prepared with an understanding of rudimentary Bash scripting, and the basics of programming languages such as iteration, assignment, and conditionals.

This is just one of the many great courses in our cloud-native curriculum!

Reach out to schedule the best workshop your team's ever attended.

The SuperOrbital Difference

We're experts with a reputation for delivering great work. Here’s how we're different:

Intensely Hands-On

More Walkin', Less Talkin'.

Our students spend more than 50% of their time in hands-on labs. We don’t believe in static, podium-based training with some boring instructor talking at you.

Instead, we immerse you in an active learning environment where you can internalize the lessons through collaboration and hands-on labs. This is the path to knowledge that sticks, and a foundation for true expertise.

Collaborative & Fun

This ain't no webinar.

People learn best when they're engaged and having fun. We strongly encourage interruptions, stupid questions, and side-quests.

This is also why we cap off each day with an open Q&A session. This is where we really get to dig into each team's unique challenges, often through live-coding sessions.

Thorough

No stone unturned.

Our content goes deep, giving you a foundational understanding of how things work under the hood. We tease apart every topic, breaking it down into its atomic parts. Then we rearrange them into an order our students can easily digest and remember.

Unbiased

No Vendor Pitches.

We believe in cloud native solutions, but we aren't beholden to any vendor. Every situation is unique, and every tool has flaws. We help you understand how the technologies work together to solve your problems. We guide you away from the tools that are hype, and toward those that have proven their worth.

Battle Hardened

We bring real experience.

We don't just teach: we do. We've wrestled with Kubernetes, Terraform, Istio, Docker and all of the others in real production situations. We've used them in anger. We know where the tools fall down and what the documentation hides.

Remote first

We're passionately remote-first, and our training shows it.

The days of hours wasted commuting to work are coming to an end, and good riddance. SuperOrbital has always been a passionately remote-first company, and we bring that to our training. Why travel out of town to sit in a hot, crowded, uncomfortable room for days at a time? Our workshops are taken from the comfort of your own home, and at a schedule that encourages deep learning.

Need more convincing? Let's talk!

How it works

Engaging with us to provide a workshop for your team is easy. Reach out to get started.

Chat

We'll schedule a time to meet, discuss your needs, your team's experience level, and how we can help.

Deliver

Each workshop day consists of four hours of lecture, labs, and open Q&A. This helps keep the training active and inspiring, and gives plenty of time for the knowledge to gel.

Follow Up

We follow up afterward to ensure the workshop exceeded your expectations, and to help with whatever new hurdles your team may be facing.

Schedule the best training your team will ever attend, today!