This class teaches how to write better, more idiomatic and performant code in Go with a focus on micro-level engineering decisions At the very beginning of class, the instructor will focus on Go internals that are critical to understanding the core tradeoffs the language makes on readability, simplicity and performance. The class builds layers of foundational knowledge that will give you a deeper understanding into data semantics, decoupling, concurrency and tooling. Perfect for developers just starting out or developers with years of Go experience. Everyone will be writing better code after this class.
Everyone is going to be mentally exhausted by the end of each day. We will be challenging every student to think about what they are doing and why. In the 3 years we have taught this material, we never had someone not appreciate the class and feel like they are a better developer for it. If you want your team to be better Go developers, code reviewers, designers and architects, this is the class they need.
Note: This material has been designed to be taught in a classroom environment. The code is well commented but missing some of the contextual concepts and ideas that will be covered in class.
This material covers all the language syntax, idioms, implementation and specification of the language. Once you are done with this material you will understand the mechanics of the language and mechanical sympathies the language has for both the hardware and operating system.
This material covers the essential things you need to know about designing software in Go. Along the way you also learn about composition and error handling.
This material covers all the concurrency aspects of the language. Once you are done with this material you will understand the concurrent mechanics of the language and mechanical sympathies the language has for both the hardware and operating system as it related to concurrency.
This material covers a good portion of the tooling that comes with go. Specifically we cover testing and benchmarking. We also cover profiling memory and the scheduler. Finally we learn how to read stack traces.
This material covers the essential things you need to know about the standard library and some important third party packages. Along the way you also learn about the most commonly used packages.