Before we start, two tips for improved video experience
Tip 1: Videos not loading?
If the videos in this course fail to play (especially, if they seem to load forever), ensure that your browser's ad blocker does not block the Wistia widget. (Wistia is a hosting service for videos.)
Tip 2: Love or hate autoplay?
You can switch autoplay on or off through the gear symbol in the menu bar at the top of each page.
Enjoy the course!
Hi, I am Christoph.
Welcome to the Master Go course, great to have you here.
Whatever reason you had for choosing to learn Go, it certainly was the right decision. Go is a fantastic programming language, and this course enables you to explore the full potential of this language.
Let me give you a quick overview of this course.
This course is divided into five sections that build upon each other, and I recommend working through this course in a linear fashion in order to take the most out of it.
The first section is about installing and setting up Go, up to the point where we run our first small “Hello World” application.
Section 2 introduces basic language concepts, from variables to control structures to functions and error handling. In this section, you get a first glimpse of Go’s simple and intuitive syntax that is really free of any “magic” and thus makes it really easy to read Go code. By the end of this section, you should already be able to write simple command-line applications in Go.
Section 3 takes a closer look at the complex data types in Go, like slices, maps, structs, and interfaces. All of these contribute to the expressiveness of Go that enables you to turn your ideas into clear code without much boilerplate coding. Powerful data types, however, also have the potential of being used in a wrong way, so we are keeping an eye on pitfalls and anti-patterns that might occur and we will learn how to avoid these.
In Section 4 we examine the way Go helps you managing projects. We will see how to organize code into packages, how the Go toolchain works, how to use Go’s built-in unit testing, and how to create API documentation right from the source code. Go’s comprehensive set of command-line tools is indeed another feature that Go is known for. Whether compiling, downloading libraries, auto-formatting source code, running unit tests and benchmarks, or managing code dependencies, the Go tools are so easy to use that many Go programmers favor using a code editor and a shell over a full-blown IDE.
The last section covers advanced topics, like Go’s support of concurrency, reflection and more. Go’s concurrency support is another feature Go is famous for. The so-called goroutines allow to run parts of the code independently from the rest of the application, and channels allow to pass values between goroutines without having to worry about shared memory access.
Watching, listening, and reading, however, is only one part. They say that students who do best are those who are curious and engaged, and how can you better engage than by constantly testing and deepening what you have learned. Here is how this course helps you doing this:
So watch, listen, and read to gain knowledge; then exercise and discuss questions to turn that knowledge into skills. And if you keep up with this, then by the end of this course you’ll be able to approach your first larger project with confidence.