Autoplay
Autocomplete
HTML5
Flash
Player
Speed
Previous Lecture
Complete and continue
Master Go
Overview
Welcome! (5:28)
How to use this course (4:48)
Copyrights and Credits
Go Modules Announcement
Section 1 - Getting Started
Intro to section 1 (1:15)
Installing Git (0:53)
Install Go on Linux (3:10)
Install Go on macOS (3:05)
Install Go on Windows (6:07)
How to set up GOPATH (2:48)
Installing Visual Studio Code (5:23)
Your First Go Program (3:26)
Exercise: Take Action!
Go Documentation on golang.org (6:23)
The Go Playground (2:48)
Do you like this course?
Section 2 - Language Basics
Intro to section 2 (0:46)
Variables (5:07)
Control Structures - Intro
Control Structures 1 - if (2:21)
Control Structures 2 - switch (1:47)
Control Structures 3 - for (4:54)
Time To Practice: if, switch, and for
A Quick Intro to Using Libraries
Input and Output 1 - Printing (3:14)
Input and Output 2 - Scanning (4:07)
Time To Practice: Printing and Scanning
Input and Output 3 - Command Line (1:45)
Input and Output 4 - Flags (3:50)
Exercise: Build Your First Little Commandline Tool! (2:09)
Strings 1 - Basics (5:37)
Strings 2 - Unicode (4:39)
Strings 3 - Literals (1:57)
Strings 4 - Libraries
Time To Practice: strings
Numeric Data Types 1 - Integers and Booleans (6:56)
Numeric Data Types 2 - Floating Point Numbers (4:01)
Numeric Data Types 3 - Floating Point Tips (5:45)
Numeric Data Types 4 - Complex Numbers (2:23)
Constants (7:27)
Pointers (5:56)
Functions 1 - Declaring Functions (4:25)
Functions 2 - Function Behavior (recursion, deferred functions, scope) (4:18)
Time To Practice: Function Behavior
Functions 3 - Function Values and Closures (6:30)
Time To Practice - Function Values and Closures
Functions 4 - Functions and Pointers (2:33)
Error Handling (8:21)
Packages and Libraries - Preparation (2:00)
Packages and Libraries - Creating Custom Packages (4:13)
Packages and Libraries - Using Custom Packages (3:22)
Packages and Libraries - Using Third-Party Libraries (4:41)
Exercise: Bank Account (5:58)
Exercise Walkthrough: Bank Account (35:18)
Section 3 - Advanced Data Types
Intro to section 3 (0:45)
Arrays (5:18)
Slices (6:37)
Pass-By-Value Semantics seem to break! (Or do they?) (2:19)
Time To Practice: Slices
Byte Slices and Strings (3:41)
Maps (7:30)
Time To Practice: fun with maps
Type Declarations (3:28)
Type Aliases (4:27)
Struct Basics (7:19)
Time To Practice: structures
Struct embedding and anonymous fields (3:08)
Struct field tags and JSON (2:37)
Methods (8:35)
Method Sets (2:46)
Interfaces 1 - Representing Behavior (7:44)
Interfaces 2 - Interfaces as Parameters (5:35)
Interfaces 3 - Examples from the standard library
Interfaces 4 - Internals (and a gotcha) (1:32)
Time To Practice: a TerminalWriter
Time To Practice: Interfaces - write a data container
Exercise: write a Web service - part 1: the Web server (3:28)
Exercise: write a Web service - part 2: routing (7:22)
Exercise: write a Web service - part 3: handling requests (12:08)
Exercise: write a Web service - part 4: the data store (5:37)
Section 4 - Go Development
Intro to section 4 (1:08)
Compiling with go run, go build, and go install (6:46)
Conditional compilation (5:26)
Installing 3rd-party code with go get (2:55)
Managing package versions with the dep tool (8:07)
Time To Practice: It depends...
Formatting your code with go fmt (2:25)
Testing with go test (8:23)
Testing - Good test design, and how to verify test coverage (3:26)
Testing - Subtests, parallel tests, and table-driven tests
Testing - Benchmarking with go test (4:30)
Documentation - godoc and go doc (2:45)
Documentation - Create documentation from code (3:28)
Section 5 - Advanced Topics
Intro to section 5 (0:31)
Concurrency 1 - goroutines (4:27)
Concurrency 2 - are goroutines threads? (4:22)
Concurrency 3 - two caveats (4:05)
Concurrency 4 - channels (7:23)
Concurrency 5 - channel axioms (4:11)
Time To Practice: channels
Concurrency 6 - the select statement (3:19)
Concurrency 7 - managing goroutines (3:40)
Concurrency 8 - data races (7:37)
Exercise: Concurrency (5:16)
Exercise Walkthrough: Concurrency (17:39)
Reflection (9:51)
Time To Practice: Reflection
Extra: Go Modules (Text Lectures)
Welcome To The Modules Lectures Draft
Using Third-Party Packages (3:38)
Creating Custom Packages (5:36)
Publish Your Package (5:13)
Sub-Packages (3:15)
Modules (2:05)
Creating a Module (3:05)
Using Modules (2:04)
Add Version Information (4:37)
Local Development (3:50)
Intermezzo: Semantic Versioning
How Go Selects a Module Version (8:24)
Wrap-Up
Thank you!
One more thing before you leave...
Testing - Subtests, parallel tests, and table-driven tests
Lecture content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock