Skip to main content
CF

Master Go

6h 32m 20s
English
Paid

A few years ago, I discovered Go and immediately fell in love with this language. I loved how the incredibly clean design of the language, as well as the awesome toolchain, suddenly made coding a breeze. Still, every language able to produce production-level code has some inherent complexity, and soon I found myself dragging pieces of information together, from various tutorials, blogs, forums, books, and other parts of the internet. You bet that these information bits were often incomplete, targeted at a different level than I needed, or even contradicted each other.


I really wished I had everything in one place, carefully collected and assembled into a sane curriculum, presented in a pleasant way, with consistent style, easy to digest.

And so I built Master Go, to give you the course that I wish I had. A course designed to be efficient, intuitive, and complete.

About the Author: Christoph Berger (AppliedGo)

Christoph Berger (AppliedGo) thumbnail

Christoph Berger publishes the AppliedGo blog and YouTube channel — one of the longer-running independent sources of practical Go tutorials, focused on idiomatic patterns and small standalone programs that teach a concept end-to-end.

His CourseFlix listing carries Master Go — a comprehensive Go course aimed at developers picking up the language for back-end and systems work.

Material is paid and aimed at developers from other backgrounds adopting Go for production work. For a broader Go syllabus on CourseFlix, see the full Golang category page where this course sits alongside material from Bill Kennedy (Ardan Labs), ByteSizeGo, and the wider Go teaching community.

Watch Online 85 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 85 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome!
All Course Lessons (85)
#Lesson TitleDurationAccess
1
Welcome! Demo
05:29
2
Intro to section 1
01:12
3
Installing Git
00:54
4
Installing Go
03:49
5
Installing Visual Studio Code
05:24
6
Get the code
02:09
7
Your First Go Program
04:24
8
Go Documentation on golang.org
06:24
9
The Go Playground
02:49
10
Intro to section 2
00:47
11
Variables
05:08
12
Control Structures 1 - if
02:22
13
Control Structures 2 - switch
01:48
14
Control Structures 3 - for
04:55
15
A Quick Intro to Using Libraries
04:38
16
Input and Output 1 - Printing
03:15
17
Input and Output 2 - Scanning
04:08
18
Input and Output 3 - Command Line
01:46
19
Input and Output 4 - Flags
03:51
20
Exercise: Build Your First Little Commandline Tool!
02:09
21
Strings 1 - Basics
05:38
22
Strings 2 - Unicode
04:40
23
Strings 3 - Literals
01:58
24
Numeric Data Types 1 - Integers and Booleans
06:57
25
Numeric Data Types 2 - Floating Point Numbers
04:02
26
Numeric Data Types 3 - Floating Point Tips
05:46
27
Numeric Data Types 4 - Complex Numbers
02:24
28
Constants
07:27
29
Pointers
05:57
30
Functions 1 - Declaring Functions
04:26
31
Functions 2 - Function Behavior (recursion, deferred functions, scope)
04:19
32
Functions 3 - Function Values and Closures
06:31
33
Functions 4 - Functions and Pointers
02:34
34
Error Handling
08:54
35
Error Inspection
06:39
36
Packages and Libraries 1 - Using Third-Party Packages
04:34
37
Packages and Libraries 2 - Creating Custom Packages
05:37
38
Packages and Libraries 3 - Publish Your Package
05:14
39
Packages and Libraries 4 - Sub-Packages
03:16
40
Modules 1 - Definition
02:06
41
Modules 2 - Creating a Module
03:06
42
Modules 3 - Add Version Information
02:34
43
Modules 4 - Using Modules
06:01
44
Modules 5 - Local Development
07:20
45
Modules 6 - Dependency Maintenance
08:22
46
Modules 8 - How Go Selects a Module Version
08:25
47
Exercise: Bank Account
06:46
48
Intro to section 3
00:46
49
Arrays
05:19
50
Slices
06:38
51
Pass-By-Value Semantics seem to break! (Or do they?)
02:20
52
Byte Slices and Strings
03:42
53
Maps
07:31
54
Type Declarations
03:28
55
Type Aliases
04:28
56
Struct Basics
07:20
57
Struct embedding and anonymous fields
03:09
58
Struct field tags and JSON
02:38
59
Methods
08:36
60
Method Sets
02:46
61
Interfaces 1 - Representing Behavior
07:44
62
Interfaces 2 - Interfaces as Parameters
05:36
63
Interfaces 4 - Internals (and a gotcha)
01:33
64
Generics 1 - Type Parameters
05:36
65
Generics 2 - Type Constraints
07:06
66
Generics 3 - Generic Interface Functions
05:52
67
Exercise: write a Web service - part 1: the Web server
03:29
68
Exercise: write a Web service - part 2: routing
02:03
69
Exercise: write a Web service - part 3: handling requests
03:13
70
Exercise: write a Web service - part 4: the data store
05:38
71
Intro to section 4
01:09
72
Compiling with go run, go build, and go install
04:38
73
Conditional compilation
05:37
74
The Go Module Proxy and the Go Sum DB
05:41
75
Configuring Proxy and Sum Servers
05:15
76
Formatting your code with go fmt
02:26
77
Testing with go test
08:24
78
Testing - Good test design, and how to verify test coverage
03:27
79
Testing - Subtests, parallel tests, and table-driven tests
06:41
80
Testing - Fuzzing
12:27
81
Testing - Benchmarking with go test
04:31
82
Documentation - Create documentation from code
03:29
83
Documentation - godoc and go doc
02:46
84
Intro to section 5
00:32
85
Reflection
09:52
Unlock unlimited learning

Get instant access to all 84 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prerequisites are needed before enrolling in this course?
To enroll in this course, you should have a basic understanding of programming concepts. Familiarity with another programming language is beneficial but not mandatory, as the course starts with fundamental topics such as installing tools like Git and Visual Studio Code, and writing your first Go program.
What kind of projects will I build during the course?
During the course, you will build practical projects such as a command-line tool. The exercise titled 'Build Your First Little Commandline Tool!' provides hands-on experience with input and output operations, enhancing your understanding of how to create functional software with Go.
Who is the target audience for this course?
The course is designed for programmers who are new to Go and want to learn the language from the ground up. It is also suitable for developers who have some experience with Go but wish to solidify their understanding of its core features and toolchain.
How does the depth of this course compare to other Go programming courses?
This course offers a comprehensive exploration of Go's features, covering 85 lessons. It provides extensive insights into core topics such as control structures, data types, functions, error handling, packages, libraries, and modules, making it suitable for those seeking a thorough foundation in Go compared to shorter, more introductory courses.
What specific tools or platforms does the course cover?
The course covers essential tools for Go development, including Git for version control, Visual Studio Code as an IDE, and the Go Playground for testing code snippets online. These tools are integral to modern Go programming and are covered in the initial lessons to set up the development environment.
What topics are not covered in this course?
The course does not explicitly cover advanced topics such as Go's concurrency model (goroutines and channels) or web development frameworks. It focuses primarily on foundational concepts and standard library usage, preparing students for more specialized or advanced study in those areas.
How much time should I expect to commit to this course?
The course comprises 85 lessons, and while a specific runtime is not provided, each lesson is designed to offer a substantial amount of content for practice and comprehension. Students should expect to dedicate several hours per week to complete the exercises and understand the material thoroughly.