Skip to content
O'Reilly home

Introduction to the Go Programming Language

No-nonsense Software Development

This event has ended.

What you’ll learn and how you can apply it

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

  • Go's strengths as a programming language
  • Types of projects Go is most suited for
  • What steps to take to continue learning Go

And you’ll be able to:

  • Write, build, and distribute simple command-line programs in Go
  • Organize code into reusable packages
  • Read Go package/function documentation

This course is for you because…

  • You are a developer with existing programming experience, and you need a quick overview of Go's unique features.
  • You are a lead developer, and need to evaluate Go as a potential language for your next project.


  • Experience using another programing language (e.g., Ruby, Java, Python)
  • Experience compiling and running code in another language

Materials or downloads required in advance:


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

Go syntax (30 minutes)

  • Presentation: Go file layout: package, imports, code
  • Presentation: Compiling/running code
  • Presentation: Functions
  • Presentation: Packages
  • Presentation: Variables and Types
  • Exercise: Go syntax
  • Q&A

Declaring Functions (30 minutes)

  • Presentation: Declaring Functions
  • Presentation: Variable scope
  • Presentation: Multiple return values
  • Exercise: Declaring functions
  • Presentation: Pass-by-value
  • Presentation: Pointers
  • Exercise: Passing pointers
  • Q&A
  • Break (5 minutes)

Declaring Packages (20 minutes)

  • Presentation: The Go workspace
  • Presentation: Import paths
  • Presentation: go get
  • Presentation: go doc
  • Exercise: Using package documentation
  • Q&A

Structs (25 minutes)

  • Presentation: As underlying type for defined types
  • Presentation: Embedding structs
  • Exercise: Struct types
  • Q&A
  • Break (5 minutes)

Defined Types (20 minutes)

  • Presentation: With underlying basic types
  • Presentation: Defining methods
  • Presentation: Promotion of embedded types' methods
  • Exercise: Defined Types
  • Q&A

Interfaces (20 minutes) Presentation: Concrete types vs. interface types Presentation: Type assertions Exercise: Interfaces Q&A

Handling Errors (20 minutes)

  • Presentation: defer
  • Presentation: panic
  • Presentation: recover
  • Exercise: Handling Errors
  • Q&A
  • Break (5 minutes)

Concurrency (30 minutes)

  • Presentation: Goroutines
  • Presentation: Channels
  • Exercise: Goroutines and Channels
  • Q&A

Where to Go Next (10 minutes)

  • Presentation: Data structures: arrays, slices, maps
  • Presentation: "testing" package
  • Presentation: Web development
  • Presentation: Buffered channels
  • Presentation: Other resources
  • Q&A

Your Instructor

  • Jay McGavren

    Jay McGavren is the author of Head First Go and Head First Ruby, both from O'Reilly. He has 15 years of software development experience, including 4 years as a software development instructor.

Start your free 10-day trial

Get started

Want to learn more at events like these?

Get full access to O'Reilly online learning for 10 days—free.

  • checkmark50k+ videos, live online training, learning paths, books, and more.
  • checkmarkBuild playlists of content to share with friends and colleagues.
  • checkmarkLearn anywhere with our iOS and Android apps.
Start Free TrialNo credit card required.