This course delves into the conceptual and practical aspects of coding in Go. Engineers will learn the hows and whys to coding naturally in Go. The course deals with the most important advanced features of Go programing and discusses best practices throughout, including many external references. Day one begins with Go idioms and common Go programming constructs, followed by coverage of testing and test tools and advanced function and method usage. The problem fraught area of package management is dealt with as well, including a variety of industry references and best practices. The communicating sequential processes model, goroutines, channels, and concurrency are explored at the start of day two, followed by a look at reflection and C integration with Go. Attendees will leave with a clear understanding of the more advanced features of the Go programming language and the necessary preparation to begin developing production Go applications.