O'Reilly logo
live online training icon Live Online training

Go Concurrency First Steps

Concurrency fundamentals and patterns in Go

Topic: Software Development
Mofi Rahman

Concurrency is a hard concept to grasp. It’s also quite difficult for developers to properly implement without extensive knowledge and practice. But it’s necessary for certain problems where speed is of the essence.

Go is known for its simple-to-use concurrency primitives. (Unlike in many other languages, concurrent execution was a day-0 implementation in Go.) Go concurrency allows you to easily write concurrent programs and scale your applications.

Join expert Mofi Rahman for an introduction to Go concurrency. In just three hours, you’ll learn a set of basic patterns to use concurrency in your everyday Go projects.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • How Go concurrency works
  • How to write concurrent Go programs
  • Common Go concurrency patterns

And you’ll be able to:

  • Use Go concurrency for your project
  • Avoid common pitfalls and mistakes in concurrent algorithms

This training course is for you because...

  • You want to understand Go concurrency and write concurrent applications.
  • You want to make your applications faster.


  • A computer with Go 1.13+ installed and configured (Optional: Install an editor with Go support—VS Code + the Go extension, for example.)
  • A working knowledge of Go
  • Familiarity working in a terminal

Recommended preparation:

Recommended follow-up:

About your instructor

  • Mofizur Rahman (@moficodes) is a Developer Advocate at IBM. His area of interests include container orchestration and microservices. His favorite programming language these days is Go. He also tinkers with Node, Python and Java. He is also learning and teaching Go, Kubernetes, Docker and Microservice community. He is a strong believer of the power of open source and importance of giving back to the community. He is a self-proclaimed sticker collecting addict and has collected several boxes full of stickers with no signs of stopping. He sometimes dabbles in photography.


The timeframes are only estimates and may vary according to how the class is progressing

Introduction to concurrency primitives (55 minutes)

  • Presentation: What is concurrency?; What is parallelism?; concurrency in Go; concurrency primitives in Go; Go channels
  • Group discussion: Hands-on concurrency with Go
  • Hands-on exercises: Clone course repo; run through examples
  • Q&A

Break (5 minutes)

Concurrency patterns (55 minutes)

  • Presentation: Common concurrency patterns; When are patterns useful?; concurrency anti-patterns and improvements
  • Hands-on exercises: Explore concurrency patterns; investigate good patterns
  • Q&A

Break (5 minutes)

Common use cases and pitfalls to avoid (60 minutes)

  • Presentation: When to use concurrency; common mistakes to avoid
  • Hands-on exercise: Determine when to use concurrency
  • Q&A