Designed for programmers familiar with the basics of Go, this course is an information-rich followup to Introduction to Go Programming. After a quick review of the basic Go syntax—with an emphasis on tricky areas and less common usage—expert programmer John Graham-Cumming delves into Go's build tool and more complex uses of slices, channels, goroutines, interfaces, and methods.

The video shows how to build a simple JSON API that talks to a database, and how to build a flexible system for using goroutines to do work concurrently. Tips on how to write idiomatic Go, vendoring, and mocking for unit tests are also covered.

Play with Go’s build tool and do workspace layouts, test and race detection, and more

Learn how slices are implemented and how to think about them

Unravel how Go handles garbage collection and reduction

Deep-dive into Go’s methods, method values, and interfaces

Learn how Go interfaces provide powerful ways to mock parts of code for unit testing

Discover how to optimize code for speed by using the Go profiler

Review Go's packages for dealing with databases, including interfacing to SQLite

John Graham-Cumming is a computer programmer and author. He studied mathematics and computation at Oxford and has a doctorate in computer security. As a programmer, he has worked in Silicon Valley and New York, the UK, Germany, and France, and currently works at CloudFlare.