Ultimate Go

Advanced Concepts

 Advanced |  16+HR

This course builds layers of foundational knowledge that will give you a deeper understanding of the language.

This course is part of the Ultimate Go Track

Not sold separately. View our pricing below.

Course Introduction

Learn to write better, more idiomatic and performant code in Go with a focus on micro-level engineering decisions. The course begins with a focus on Go internals that are critical to understanding the core tradeoffs on readability, simplicity and performance.

You will learn about data semantics, guidelines, mechanical sympathy, data oriented design, package oriented design, and how to structure your Go projects for the long term.


Interested in Team Training? Request Information
Have a question? FAQ

Pricing

$699

This course is part of the Ultimate Go Track. Not sold separately.

Please Note: All of our bundles are for a one year subscription.

Requirements:

  • Studied CS in school or has a minimum of two years of experience programming full-time professionally.
  • Familiar with structural and object oriented programming styles.
  • Has worked with arrays, lists, queues and stacks.
  • Understands processes, threads and synchronization at a high level.

Operating Systems

  • Has worked with a command shell.
  • Knows how to maneuver around the file system.
  • Understands what environment variables are.

Course Outline

1.1 Prepare Your Mind

17:38

1.2 Productivity vs. Performance

06:24

1.3 Correctness vs. Performance

07:14

1.4 Code Reviews

19:16

1.5 If Performance Matters

03:31

2.1 Variables

05:04

2.2 Struct Types

22:55

2.3.1 Pointers (Pass by Values)

17:43

2.3.2 Pointers (Sharing Data)

07:50

2.3.3 Pointers ( Escape Analysis)

19:46

2.4 Constants

23:50

3.2.1 Arrays (Mechanical Sympathy)

15:00

3.2.1 Arrays (Semantics)

11:10

3.2.1 Arrays (Range Mechanics)

06:39

3.3.1 Slices (Declare, Length & Reference Types)

10:00

3.3.2 Slices (Appending Slices)

03:00

3.3.3 Slices (Taking Slices of Slices)

03:00

3.3.4 Slices (Slices & References)

05:35

3.3.5 Slices (Strings & Slices)

10:23

3.3.6 Slices (Range Mechanics)

04:15

3.4 Maps

11:23

4.1.1 Methods (Value & Pointer Semantics)

16:37

4.1.2 Methods (Function/Method Variables)

14:43

4.2.1 Interfaces (Polymorphism)

18:19

4.2.2 Interfaces (Method Sets & Address of Value)

13:42

4.3 Embedding

09:50

4.4 Exporting

09:52

5.1 Grouping Types

15:21

5.2.1 Decoupling Part 1

37:02

5.3.2 Conversion & Assertions

04:49

5.4 Interface Pollution

08:51

5.5 Mocking

08:15

6.1 Default Error Values

05:51

6.2 Error Variables

10:52

6.3 Types as Context

06:59

6.4 Behavior as Context

08:14

6.5 Find the Bug

04:19

6.6 Wrapping Errors

10:16

7.1 Language Mechanics & Design Guidelines

11:15

7.2 Package-Oriented Design

15:50

8.1 OS Scheduler Mechanics

33:00

8.2 Go Scheduler Mechanics

27:11

8.3 Creating Go Routines

19:37

9.1 Managing Data Races

22:15

10.1 Signaling Semantics

11:08

10.2 Basic Patterns

06:21

10.3 Fan Out

05:28

10.4 Wait for Task

02:31

10.5 Pooling

05:14

10.6 Fan Out Semaphore

05:22

10.7 Fan Out Bounded

06:14

10.8 Drop Pattern

05:06

10.9 Cancellation Pattern

07:28

11.1 Failure Detection

18:30

12.2 Table Unit Testing

04:10

12.3 Mocking Web Server Response

07:21

12.4 Testing Internal Endpoints

09:01

12.5 Sub Tests

05:40

12.6 Code Coverage

03:33

13.1 Basic Benchmarking

09:24

13.2 Validate Benchmarking

07:01

13.3 CPU-Bound Benchmarking

07:03

13.4 IO-Bound Benchmarking

06:05

14.1 Profiling Guidelines

05:42

14.2 Stack Traces

08:28

14.3 Micro Level Optimization

28:20

14.4 Macro Level Optimization

24:47

14.5 Execution Tracing

38:56

Ready to get started?

Other Courses

FAQ

The Ultimate Go Bundle includes all of the following courses:

  • Ultimate Service
  • Ultimate Go
  • Refactoring With Bill
  • Ultimate Syntax
  • Ultimate Go Notebook

The High-Performance bundle includes all of the courses listed above, plus the courses in our Intensive Docker & Kubernetes bundle.

Note: This includes any new courses added during your subscription year.

No, courses are only available as part of a bundle. These courses are designed to sync up with the other courses included in the bundle to give you the best possible experience.
Your subscription is yearly based. You will have a full year to view any of the courses in your bundle along with any new ones released during your subscription year.
You are able to view any course, any chapter or any lesson you want in whatever order you want. These courses are designed to compliment each other but if you feel comfortable with a particular lesson you are able to skip ahead.
Yes! All of our courses come with a Certificate of Completion that you will receive at the end / completion of each of the courses.

Trusted by companies of all sizes

Let’s start a conversation

Reach out and let us know what you are interested in.