Performance driven. Human centered.

Training | Consulting | Staffing | Development | AI

Specializing in Go, Rust, and Kubernetes.

Company 1
Company 1
Company 1
Company 1
Company 1
Company 1
Company 1
Company 1

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.

Requirements:

You need to know how to program and core concepts of working with computers (such as files, HTTP, memory management…)

  • 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.

You should have the following installed on your computer prior to the workshop:

  • Go SDK from golang.org/dl/
  • An IDE, either VSCode with Go extension or GoLand
  • Git
  • Price:

    Regularly: $399.99

    Free For Workshop Attendees

  • Skill Level:

    Beginner - Advanced

  • Course Length:

    20+ Hrs

  • Team Pricing:

    Contact Advisor

  • Please Note: Your purchase is for a one year subscription.

Course Outline

Module 1 - Design Guidelines
  • 1.1 - Prepare Your Mind
  • 1.2 - Productivity vs. Performance
  • 1.3 - Correctness vs. Performance
  • 1.4 - Code Reviews
  • 1.5 - If Performance Matters
  • Module 1 Review
  • Design Guidelines Quiz
Module 2 - Memory & Data Semantics
  • 2.1 - Variables
  • 2.2 - Struct Types
  • 2.3.1 - Pointers pt.1 (Pass by Values)
  • 2.3.2 - Pointers pt.2 (Sharing Data)
  • 2.3.3 - Pointers pt.3 (Escape Analysis)
  • 2.3.4 - Pointers pt.4 (Stack Growth)
  • 2.4.1 - Garbage Collection pt.1
  • 2.4.2 - Garbage Collection pt.2
  • 2.4.3 - Garbage Collection pt.3
  • 2.5 - Constants
  • Module 2 Review
  • Memory & Data Semantics Quiz
Module 3 - Data Structures
  • 3.2.1 - Arrays (Mechanical Sympathy)
  • 3.2.1 - Arrays (Semantics)
  • 3.2.1 - Arrays (Range Mechanics)
  • 3.3.1 - Slices (Declare, Length & Reference Types)
  • 3.3.2 - Slices (Appending Slices)
  • 3.3.3 - Slices (Taking Slices of Slices)
  • 3.3.4 - Slices (Slices & References)
  • 3.3.5 - Slices (Strings & Slices)
  • 3.3.6 - Slices (Range Mechanics)
  • 3.4 - Maps
  • Module 3 Review
  • Data Structures Quiz
Module 4 - Decoupling
  • 4.1.1 - Methods (Value & Pointer Semantics)
  • 4.1.2 - Methods (Function/Method Variables)
  • 4.2.1 - Interfaces (Polymorphism)
  • 4.2.2 - Interfaces (Method Sets & Address of Value)
  • 4.3 - Embedding
  • 4.4 - Exporting
  • Module 4 Review
  • Decoupling Quiz
Module 5 - Composition
  • 5.1 - Grouping Types
  • 5.2 - Decoupling
  • 5.3.2 - Conversion & Assertions
  • 5.4 - Interface Pollution
  • 5.5 - Mocking
  • Module 5 Review
  • Composition Quiz
Module 6 - Error Handling
  • 6.1 - Default Error Values
  • 6.2 - Error Variables
  • 6.3 - Types as Context
  • 6.4 - Behavior as Context
  • 6.5 - Find the Bug
  • 6.6 - Wrapping Errors
  • Module 6 Review
  • Error Handling Quiz
Module 7 - Packaging
  • 7.1 - Language Mechanics & Design Guidelines
  • 7.2 - Package-Oriented Design
  • Module 7 Review
  • Packaging Quiz
Module 8 - Go Routines
  • 8.1 - OS Scheduler Mechanics
  • 8.2 - Go Scheduler Mechanics
  • 8.3 - Creating Go Routines
  • Module 8 Review
  • Go Routines Quiz
Module 9 - Data Races
  • 9.1 - Managing Data Races
  • Module 9 Review
  • Data Races Quiz
Module 10 - Channels
  • 10.1 - Signaling Semantics
  • 10.2 - Basic Patterns
  • 10.3 - Fan Out
  • 10.4 - Wait for Task
  • 10.5 - Pooling
  • 10.6 - Fan Out Semaphore
  • 10.7 - Fan Out Bounded
  • 10.8 - Drop Pattern
  • 10.9 - Cancellation Pattern
  • Module 10 Review
  • Channels Quiz
Module 11 - Concurrency Patterns
  • 11.1 - Failure Detection
  • Module 11 Review
  • Concurrency Patterns Quiz
Module 12 - Testing
  • 12.2 - Table Unit Testing
  • 12.3 - Mocking Web Server Response
  • 12.4 - Testing Internal Endpoints
  • 12.5 - Sub Tests
  • 12.6 - Code Coverage
  • Module 12 Review
  • Testing Quiz
Module 13 - Benchmarking
  • 13.1 - Basic Benchmarking
  • 13.2 - Validate Benchmarking
  • 13.3 - CPU-Bound Benchmarking
  • 13.4 - IO-Bound Benchmarking
  • Module 13 Review
  • Benchmarking Quiz
Module 14 - Profiling & Tracing
  • 14.1 - Profiling Guidelines
  • 14.2 - Stack Traces
  • 14.3 - Micro Level Optimization
  • 14.4 - Macro Level Optimization
  • 14.5 - Execution Tracing
  • Module 14 Review
  • Profiling & Tracing Quiz
Full Course Final
  • Full Course Review
  • Ultimate Go: Language Guide Exam

Earn your Certificate of Completion for this training.

Earn your Go programming certificate of completion upon finishing this training! This certificate verifies that you've completed this training, which helps boost your resume, helping you stand out in the tech industry.

Use Code at Checkout Use the Coupon Code given to you by the GCUK staff.