Section 1 : Introduction

Lecture 1 Valuable Resources 00:07:24 Duration
Lecture 2 Why go 00:11:52 Duration
Lecture 3 How to succeed 00:11:18 Duration

Section 2 : Course Overview

Lecture 1 Course resources 00:07:06 Duration
Lecture 2 Documentation 00:06:49 Duration
Lecture 3 Accelerate learning 00:01:34 Duration

Section 3 : Your development environment

Lecture 1 The terminal 00:06:51 Duration
Lecture 2 Bash on windows 00:08:17 Duration
Lecture 3 Shell bash commands I 00:11:14 Duration
Lecture 4 Shell bash commands II 00:07:36 Duration
Lecture 5 Installing Go 00:10:19 Duration
Lecture 6 Go modules - introduction 00:02:54 Duration
Lecture 7 Go workspace 00:06:09 Duration
Lecture 8 Environment variables 00:09:07 Duration
Lecture 9 IDE's 00:11:33 Duration
Lecture 10 Go commands 00:15:08 Duration
Lecture 11 Github repos 00:11:01 Duration
Lecture 12 Github explored 00:08:35 Duration
Lecture 13 Package management 00:06:07 Duration
Lecture 14 Go modules overview 00:06:16 Duration
Lecture 15 Creating a go module 00:04:53 Duration
Lecture 16 Adding a dependency 00:04:53 Duration
Lecture 17 Upgrading dependencies 00:03:54 Duration

Section 4 : Variables, values, & type

Lecture 1 Playground 00:06:19 Duration
Lecture 2 Hello world 00:10:32 Duration
Lecture 3 Introduction to packages 00:16:05 Duration
Lecture 4 Short declaration operator 00:12:53 Duration
Lecture 5 The var keyword 00:11:40 Duration
Lecture 6 Exploring type 00:13:01 Duration
Lecture 7 Zero value 00:04:02 Duration
Lecture 8 The fmt package 00:09:36 Duration
Lecture 9 Creating your own type 00:05:48 Duration
Lecture 10 Conversion, not casting 00:06:04 Duration

Section 5 : Exercises - Ninja Level 1

Lecture 1 Hands-on exercise #1 00:05:32 Duration
Lecture 2 Hands-on exercise #2 00:03:11 Duration
Lecture 3 Hands-on exercise #3 00:02:50 Duration
Lecture 4 Hands-on exercise #4 00:05:22 Duration
Lecture 5 Hands-on exercise #5 00:03:20 Duration
Lecture 6 Hands-on exercise #6 00:10:29 Duration

Section 6 : Programming fundamentals

Lecture 1 Bool type 00:08:08 Duration
Lecture 2 How computers work 00:21:26 Duration
Lecture 3 Numeric types 00:15:01 Duration
Lecture 4 String type 00:15:31 Duration
Lecture 5 Numeral systems 00:17:51 Duration
Lecture 6 Constants 00:03:36 Duration
Lecture 7 Iota 00:02:47 Duration
Lecture 8 Bit shifting 00:11:12 Duration

Section 7 : Exercises - Ninja Level 2

Lecture 1 Hands-on exercise #1 00:01:55 Duration
Lecture 2 Hands-on exercise #2 00:04:02 Duration
Lecture 3 Hands-on exercise #3 00:01:13 Duration
Lecture 4 Hands-on exercise #4 00:02:36 Duration
Lecture 5 Hands-on exercise #5 00:00:52 Duration
Lecture 6 Hands-on exercise #6 00:01:13 Duration
Lecture 7 Hands-on exercise #7 00:12:38 Duration

Section 8 : Control flow

Lecture 1 Understanding control flow 00:01:47 Duration
Lecture 2 Loop - init, condition, post 00:04:15 Duration
Lecture 3 Loop - nesting loops 00:03:54 Duration
Lecture 4 Loop - for statement 00:10:22 Duration
Lecture 5 Loop - break & continue 00:06:37 Duration
Lecture 6 Loop - printing ascii 00:06:39 Duration
Lecture 7 Conditional - if statement 00:07:19 Duration
Lecture 8 Conditional - if, else if, else 00:03:10 Duration
Lecture 9 Loop, conditional, modulus 00:03:24 Duration
Lecture 10 Conditional - switch statement 00:08:35 Duration
Lecture 11 Conditional - switch statement documentation 00:08:27 Duration
Lecture 12 Conditional logic operators 00:04:00 Duration

Section 9 : Exercises - Ninja Level 3

Lecture 1 Hands-on exercise #1 00:02:18 Duration
Lecture 2 Hands-on exercise #2 00:02:36 Duration
Lecture 3 Hands-on exercise #3 00:01:55 Duration
Lecture 4 Hands-on exercise #4 00:01:11 Duration
Lecture 5 Hands-on exercise #5 00:02:56 Duration
Lecture 6 Hands-on exercise #6 00:01:04 Duration
Lecture 7 Hands-on exercise #7 00:01:28 Duration
Lecture 8 Hands-on exercise #8 00:01:25 Duration
Lecture 9 Hands-on exercise #9 00:02:06 Duration
Lecture 10 Hands-on exercise #10 00:05:31 Duration

Section 10 : Grouping data

Lecture 1 Array 00:04:48 Duration
Lecture 2 Slice - composite literal 00:05:30 Duration
Lecture 3 Slice - for range 00:03:23 Duration
Lecture 4 Slice - slicing a slice 00:04:35 Duration
Lecture 5 Slice - append to a slice 00:05:18 Duration
Lecture 6 Slice - deleting from a slice 00:04:54 Duration
Lecture 7 Slice - make 00:09:48 Duration
Lecture 8 Slice - multi-dimensional slice 00:03:57 Duration
Lecture 9 Map - introduction 00:11:50 Duration
Lecture 10 Map - add element & range 00:04:16 Duration
Lecture 11 Map - delete 00:03:15 Duration

Section 11 : Exercises - Ninja Level 4

Lecture 1 Hands-on exercise #1 00:02:38 Duration
Lecture 2 Hands-on exercise #2 00:01:16 Duration
Lecture 3 Hands-on exercise #3 00:04:00 Duration
Lecture 4 Hands-on exercise #4 00:03:23 Duration
Lecture 5 Hands-on exercise #5 00:05:39 Duration
Lecture 6 Hands-on exercise #6 00:05:25 Duration
Lecture 7 Hands-on exercise #7 00:09:14 Duration
Lecture 8 Hands-on exercise #8 00:04:01 Duration
Lecture 9 Hands-on exercise #9 00:01:25 Duration
Lecture 10 Hands-on exercise #10 00:01:36 Duration

Section 12 : Structs

Lecture 1 Struct 00:04:07 Duration
Lecture 2 Embedded structs 00:05:37 Duration
Lecture 3 Reading documentation 00:07:40 Duration
Lecture 4 Anonymous structs 00:03:31 Duration
Lecture 5 Housekeeping 00:18:47 Duration

Section 13 : Exercises - Ninja Level 5

Lecture 1 Hands-on exercise #1 00:04:11 Duration
Lecture 2 Hands-on exercise #2 00:04:11 Duration
Lecture 3 Hands-on exercise #3 00:03:54 Duration
Lecture 4 Hands-on exercise #4 00:03:56 Duration

Section 14 : Functions

Lecture 1 Syntax 00:12:36 Duration
Lecture 2 Variadic parameter 00:09:04 Duration
Lecture 3 Unfurling a slice 00:13:25 Duration
Lecture 4 Defer 00:06:13 Duration
Lecture 5 Methods 00:07:17 Duration
Lecture 6 Interfaces & polymorphism 00:20:15 Duration
Lecture 7 Anonymous func 00:04:29 Duration
Lecture 8 func expression 00:03:48 Duration
Lecture 9 Returning a func 00:11:50 Duration
Lecture 10 Callback 00:12:50 Duration
Lecture 11 Closure 00:09:27 Duration
Lecture 12 Recursion 00:09:34 Duration

Section 15 : Exercises - Ninja Level 6

Lecture 1 Hands-on exercise #1 00:10:09 Duration
Lecture 2 Hands-on exercise #2 00:04:41 Duration
Lecture 3 Hands-on exercise #3 00:06:07 Duration
Lecture 4 Hands-on exercise #4 00:05:19 Duration
Lecture 5 Hands-on exercise #5
Lecture 6 Hands-on exercise #6 00:02:06 Duration
Lecture 7 Hands-on exercise #7 00:04:14 Duration
Lecture 8 Hands-on exercise #8 00:02:24 Duration
Lecture 9 Hands-on exercise #9 00:08:25 Duration
Lecture 10 Hands-on exercise #10 00:03:12 Duration
Lecture 11 Hands-on exercise #11 00:05:48 Duration

Section 16 : Pointers

Lecture 1 What are pointer 00:11:55 Duration
Lecture 2 When to use pointers 00:09:04 Duration
Lecture 3 Method sets 00:06:31 Duration

Section 17 : Exercises - Ninja Level 7

Lecture 1 Hands-on exercise #1 00:01:02 Duration
Lecture 2 Hands-on exercise #2 00:05:37 Duration

Section 18 : Application

Lecture 1 JSON documentation 00:12:12 Duration
Lecture 2 JSON marshal 00:06:28 Duration
Lecture 3 JSON unmarshal 00:16:15 Duration
Lecture 4 Writer interface 00:15:37 Duration
Lecture 5 Sort 00:05:44 Duration
Lecture 6 Sort custom 00:10:32 Duration
Lecture 7 bcrypt 00:12:02 Duration

Section 19 : Exercises - Ninja Level 8

Lecture 1 Hands-on exercise #1 00:04:07 Duration
Lecture 2 Hands-on exercise #2 00:08:00 Duration
Lecture 3 Hands-on exercise #3 00:05:17 Duration
Lecture 4 Hands-on exercise #4 00:12:14 Duration
Lecture 5 Hands-on exercise #5 00:09:55 Duration

Section 20 : Concurrency

Lecture 1 Concurrency vs parallelism 00:05:50 Duration
Lecture 2 WaitGroup 00:12:28 Duration
Lecture 3 Method sets revisited 00:12:01 Duration
Lecture 4 Documentation 00:18:04 Duration
Lecture 5 Race condition 00:12:30 Duration
Lecture 6 Mutex 00:04:28 Duration
Lecture 7 Atomic 00:05:44 Duration

Section 21 : Exercises - Ninja Level 9

Lecture 1 Hands-on exercise #1 00:16:14 Duration
Lecture 2 Hands-on exercise #2 00:11:56 Duration
Lecture 3 Hands-on exercise #3 00:11:05 Duration
Lecture 4 Hands-on exercise #4 00:04:42 Duration
Lecture 5 Hands-on exercise #5 00:04:48 Duration
Lecture 6 Hands-on exercise #6 00:05:40 Duration
Lecture 7 Hands-on exercise #7 00:06:42 Duration

Section 22 : Channels

Lecture 1 Understanding channels 00:15:52 Duration
Lecture 2 Directional channels 00:09:55 Duration
Lecture 3 Using channels 00:06:36 Duration
Lecture 4 Range 00:05:34 Duration
Lecture 5 Select 00:10:28 Duration
Lecture 6 Comma ok idiom 00:05:56 Duration
Lecture 7 Fan in
Lecture 8 Fan out 00:06:35 Duration
Lecture 9 Context 00:14:40 Duration

Section 23 : Exercises - Ninja Level 10

Lecture 1 Hands-on exercise #1 00:03:19 Duration
Lecture 2 Hands-on exercise #2 00:02:36 Duration
Lecture 3 Hands-on exercise #3 00:03:26 Duration
Lecture 4 Hands-on exercise #4 00:06:17 Duration
Lecture 5 Hands-on exercise #5 00:02:45 Duration
Lecture 6 Hands-on exercise #6 00:03:08 Duration
Lecture 7 Hands-on exercise #7 00:07:44 Duration

Section 24 : Error handling

Lecture 1 Understanding 00:14:43 Duration
Lecture 2 Checking errors 00:07:04 Duration
Lecture 3 Printing and logging 00:09:11 Duration
Lecture 4 Recover 00:10:07 Duration
Lecture 5 Errors with info 00:18:26 Duration

Section 25 : Exercises - Ninja Level 11

Lecture 1 Hands-on exercise #1 00:03:45 Duration
Lecture 2 Hands-on exercise #2 00:11:54 Duration
Lecture 3 Hands-on exercise #3 00:10:37 Duration
Lecture 4 Hands-on exercise #4 00:06:01 Duration
Lecture 5 Hands-on exercise #5 00:01:40 Duration
Lecture 6 Hands-on exercise #5 00:01:40 Duration

Section 26 : Writing documentation

Lecture 1 Introduction 00:12:24 Duration
Lecture 2 go doc 00:08:45 Duration
Lecture 3 godoc 00:06:46 Duration
Lecture 4 godoc.org 00:06:13 Duration
Lecture 5 Writing documentation 00:12:04 Duration

Section 27 : Exercises - Ninja Level 12

Lecture 1 Hands-on exercise #1 00:04:39 Duration

Section 28 : Testing & benchmarking

Lecture 1 Introduction 00:14:14 Duration
Lecture 2 Table tests 00:07:45 Duration
Lecture 3 Example tests 00:09:47 Duration
Lecture 4 Golint 00:04:45 Duration
Lecture 5 Benchmark 00:09:26 Duration
Lecture 6 Coverage 00:08:36 Duration
Lecture 7 Benchmark examples 00:12:13 Duration
Lecture 8 Review 00:12:33 Duration

Section 29 : Exercises - Ninja Level 13

Lecture 1 Hands-on exercise #1 00:13:31 Duration
Lecture 2 Hands-on exercise #2 00:19:05 Duration
Lecture 3 Hands-on exercise #3 00:15:04 Duration

Section 30 : Farewell

Lecture 1 Farewell 00:05:53 Duration

Section 31 : BONUS MATERIAL

Lecture 1 An Entire Second Course - Provided for Free!. 00:01:20 Duration

Section 32 : Introduction

Lecture 1 Why choose the Go programming language
Lecture 2 Hello World! 00:09:37 Duration

Section 33 : Installing Go

Lecture 1 Section Overview 00:03:12 Duration
Lecture 2 The Terminal 00:06:14 Duration
Lecture 3 Installation Insights 00:08:48 Duration
Lecture 4 Go Workspace 00:08:48 Duration
Lecture 5 Environment Variables 00:06:52 Duration
Lecture 6 Windows - Configuring Path Variables 00:08:02 Duration
Lecture 7 Mac - Configuring Path Variables 00:10:23 Duration
Lecture 8 IMPORTANT - REGARDING LINUX VIDEOS THAT FOLLOW
Lecture 9 Linux - Machine Setup 00:33:39 Duration
Lecture 10 Linux - Machine Configuration 00:12:43 Duration
Lecture 11 Linux - Configuring Path Variables 00:21:42 Duration
Lecture 12 Testing Your Installation 00:04:32 Duration
Lecture 13 Section Review 00:04:04 Duration

Section 34 : Your Development Environment

Lecture 1 Section Overview 00:01:51 Duration
Lecture 2 Go Editors 00:09:07 Duration
Lecture 3 WebStorm & Atom.io 00:06:34 Duration
Lecture 4 Remove - INTRODUCTION TO BRAINMEASURES PROCTOR SYS
Lecture 5 Creating Your First Project 00:09:03 Duration
Lecture 6 Hello World with Webstorm 00:08:15 Duration
Lecture 7 The Go Command & Documentation 00:05:47 Duration
Lecture 8 Understanding Github 00:07:37 Duration
Lecture 9 Using Github 00:14:24 Duration
Lecture 10 Section Review 00:03:40 Duration

Section 35 : Computer Fundamentals

Lecture 1 Section Overview 00:02:03 Duration
Lecture 2 How Computers Work - Part I 00:09:57 Duration
Lecture 3 How Computers Work - Part II 00:12:30 Duration
Lecture 4 Github Update Command 00:08:55 Duration
Lecture 5 Numeral Systems 00:04:07 Duration
Lecture 6 Binary Numbering System 00:07:41 Duration
Lecture 7 Hexadecimal Numbering System 00:07:08 Duration
Lecture 8 Text Encoding 00:09:25 Duration
Lecture 9 Coding Scheme Programs 00:09:33 Duration
Lecture 10 Format Printing 00:09:33 Duration
Lecture 11 Section Review 00:09:16 Duration

Section 36 : Language Fundamentals

Lecture 1 Section Overview 00:05:50 Duration
Lecture 2 Packages 00:07:55 Duration
Lecture 3 Go Commands 00:05:46 Duration
Lecture 4 Variables 00:08:45 Duration
Lecture 5 Scope 00:07:50 Duration
Lecture 6 Scope II 00:10:09 Duration
Lecture 7 Closure 00:11:15 Duration
Lecture 8 Language Spec 00:10:04 Duration
Lecture 9 Blank Identifier 00:04:25 Duration
Lecture 10 Constants 00:09:02 Duration
Lecture 11 Constants II 00:07:21 Duration
Lecture 12 Words of Encouragement 00:03:42 Duration
Lecture 13 Memory Addresses 00:06:41 Duration
Lecture 14 Pointers 00:06:20 Duration
Lecture 15 Using Pointers 00:07:45 Duration
Lecture 16 Remainder 00:05:47 Duration
Lecture 17 Section Review 00:15:03 Duration

Section 37 : Control Flow

Lecture 1 Section Overview
Lecture 2 For Loop 00:06:53 Duration
Lecture 3 Nested Loops 00:06:23 Duration
Lecture 4 Conditions, Break, & Continue 00:07:24 Duration
Lecture 5 Documentation & Terminology 00:13:02 Duration
Lecture 6 Rune 00:06:23 Duration
Lecture 7 String Type 00:10:41 Duration
Lecture 8 Switch Statements 00:07:28 Duration
Lecture 9 If Statements 00:07:08 Duration
Lecture 10 Exercise Solutions 00:14:01 Duration
Lecture 11 Section Review 00:08:41 Duration

Section 38 : Functions

Lecture 1 Section Overview 00:01:51 Duration
Lecture 2 Intro To Functions 00:07:48 Duration
Lecture 3 Func Returns 00:05:27 Duration
Lecture 4 Variadic Functions 00:06:50 Duration
Lecture 5 Variadic Arguments 00:05:08 Duration
Lecture 6 Func Expressions 00:05:42 Duration
Lecture 7 Closure 00:06:04 Duration
Lecture 8 Callbacks 00:06:49 Duration
Lecture 9 Callback Example 00:05:35 Duration
Lecture 10 Recursion 00:05:04 Duration
Lecture 11 Defer 00:04:21 Duration
Lecture 12 Pass By Value 00:06:41 Duration
Lecture 13 Reference Types 00:05:07 Duration
Lecture 14 Anonymous Self-Executing Functions 00:01:39 Duration
Lecture 15 Bool Expressions 00:07:24 Duration
Lecture 16 Exercises - Part I 00:07:47 Duration
Lecture 17 Exercises - Part II 00:06:41 Duration
Lecture 18 Exercises - Part III 00:07:51 Duration
Lecture 19 Section Review 00:10:27 Duration

Section 39 : Data Structures - Array

Lecture 1 Data Structures Overview 00:06:07 Duration
Lecture 2 Array 00:08:28 Duration
Lecture 3 Array Examples 00:10:45 Duration

Section 40 : Data Structures - Slice

Lecture 1 Slices 00:10:04 Duration
Lecture 2 Slice Examples 00:09:38 Duration
Lecture 3 More Slice Examples 00:06:34 Duration
Lecture 4 Creating A Slice 00:12:43 Duration
Lecture 5 Incrementing A Slice Item 00:05:16 Duration
Lecture 6 Section Review 00:12:30 Duration

Section 41 : Data Structures - Map

Lecture 1 Maps Introduction 00:06:18 Duration
Lecture 2 Map Examples - Part 00:08:30 Duration
Lecture 3 Map Examples - Part II 00:08:46 Duration
Lecture 4 Map Examples - Part III 00:05:09 Duration
Lecture 5 Map Documentation 00:10:43 Duration
Lecture 6 Map Range Loop 00:03:43 Duration
Lecture 7 GitHub Pull 00:04:08 Duration
Lecture 8 Hash Tables 00:13:52 Duration
Lecture 9 Hashing Words 00:10:57 Duration
Lecture 10 Hashing Words II 00:12:05 Duration
Lecture 11 Build A Hash Table 00:09:14 Duration
Lecture 12 Finished Hash Algorithm 00:11:41 Duration

Section 42 : Data Structures - Struct

Lecture 1 Structs Introduction 00:06:14 Duration
Lecture 2 OOP in Go 00:11:37 Duration
Lecture 3 User-Defined Types 00:10:46 Duration
Lecture 4 Composition 00:10:28 Duration
Lecture 5 JSON Marshal 00:11:40 Duration
Lecture 6 JSON Unmarshal 00:03:13 Duration
Lecture 7 JSON Encode 00:06:42 Duration
Lecture 8 JSON Decode 00:05:36 Duration

Section 43 : Interfaces

Lecture 1 Interfaces Introduction 00:03:20 Duration
Lecture 2 Interface Examples 00:10:24 Duration
Lecture 3 Code Substitutability 00:12:27 Duration
Lecture 4 Bill Kennedy 00:08:32 Duration
Lecture 5 Donovan & Kernighan 00:11:54 Duration
Lecture 6 Sort Package 00:10:27 Duration
Lecture 7 Sort Solution 00:09:40 Duration
Lecture 8 Sort Reverse 00:15:56 Duration
Lecture 9 Sort Slice Int 00:03:35 Duration
Lecture 10 Empty Interface 00:08:56 Duration
Lecture 11 Method Sets 00:11:40 Duration
Lecture 12 Conversion vs Assertion 00:10:21 Duration

Section 44 : Concurrency

Lecture 1 Concurrency & WaitGroup 00:05:11 Duration
Lecture 2 Parallelism 00:04:42 Duration
Lecture 3 Race Conditions 00:04:09 Duration
Lecture 4 Mutex 00:03:46 Duration
Lecture 5 Atomicity 00:03:58 Duration
Lecture 6 Review & Channels Preview 00:08:35 Duration

Section 45 : Channels

Lecture 1 Channels - Introduction 00:09:30 Duration
Lecture 2 Range Clause 00:05:36 Duration
Lecture 3 N-to-1 00:05:22 Duration
Lecture 4 Semaphores - Part 1 00:07:29 Duration
Lecture 5 Semaphores - Part 2 00:01:37 Duration
Lecture 6 1-to-N 00:04:14 Duration
Lecture 7 Channels as Arguments & Returns 00:07:02 Duration
Lecture 8 Channel Direction 00:05:47 Duration

Section 46 : Applied Concurrency

Lecture 1 Incrementor With Channels 00:06:02 Duration
Lecture 2 Deadlock Challenge 00:07:15 Duration
Lecture 3 Factorial Challenge 00:04:43 Duration
Lecture 4 Pipeline Pattern 00:06:35 Duration
Lecture 5 Factorial Challenge Redux 00:05:37 Duration
Lecture 6 Factorial Challenge Redux Solution 00:04:38 Duration
Lecture 7 Fan Out Fan In Pattern - Overview 00:03:33 Duration
Lecture 8 Fan In Pattern 00:07:03 Duration
Lecture 9 Fan Out Fan In - Example 00:16:21 Duration

Section 47 : Concurrency Challenges

Lecture 1 Fan Out Fan In - Challenge 00:01:31 Duration
Lecture 2 Fan Out Fan In - Solution 00:09:11 Duration
Lecture 3 Fan Out Fan In - Challenge Factorial 00:02:06 Duration
Lecture 4 Fan Out Fan In - Solution Factorial 00:11:23 Duration
Lecture 5 Deadlock Challenge 00:00:43 Duration
Lecture 6 Deadlock Solution 00:04:22 Duration
Lecture 7 Incrementor Challenge Revisited 00:01:11 Duration
Lecture 8 Incrementor Solution 00:05:45 Duration

Section 48 : Concurrency Resources

Lecture 1 Additional Resources

Section 49 : Error Handling

Lecture 1 An Introduction to Error Handling in Go 00:05:42 Duration
Lecture 2 Improving Your Code with Golint 00:05:56 Duration
Lecture 3 Handling Errors & Logging Errors to a File 00:08:45 Duration
Lecture 4 Four Common Ways to Handle Errors 00:05:45 Duration
Lecture 5 Custom Errors - Creating Values of Type error 00:07:25 Duration
Lecture 6 Idiomatic Error Handling 00:04:28 Duration
Lecture 7 Providing Context with Errors 00:05:12 Duration
Lecture 8 Providing Even More Context with Errors 00:07:12 Duration
Lecture 9 Error Handling Review & Resources 00:04:48 Duration