Ultimate Go with Miki Tebeka

Ultimate Go with Miki Tebeka

Feb 19th, 2024

8:00AM - 12:00PM EST

Remote

The workshop is composed of four 4-hour sessions. It is aimed toward developers who have experience with Go and would like to understand how to write more efficient code and understand data semantics and concurrency patterns.

Price: $399

Enroll Now

When: February 19th - 22nd, 2024

Schedule: 4 Days/ 4 Hours, from 8am to 12pm EST (GTM - 5)

Where: Online - Zoom Meeting

Description: The workshop is composed of four 4-hour sessions. It is aimed toward developers who have experience with Go and would like to understand how to write more efficient code and understand data semantics and concurrency patterns. We’ll cover many coding best practices that help write precise code.

What a student is expected to learn:


Day 1: Memory & Data Semantics

Programming vs engineering:

  • Value semantics
  • Pointer semantics and Ownership rules

Stack vs heap allocations and how they affect your code:

  • Detecting and understanding escape analysis

How the garbage collector (GC) works and its effect on performance:

  • Common causes for memory leaks

Writing CPU cache-friendly code:

Working with slices in memory efficient way:

  • Range loop semantics

Day 2: Data Oriented Design

Data-oriented design:

  • Choosing value vs pointer semantics
  • Built-in types
  • User-defined types

Polymorphism with interfaces:

  • Modeling interfaces
  • How interfaces are implemented understanding cost

Using embedding: Difference from traditional OO

Using generics

  • Generics functions
  • Generic data structures

Method set rules


Day 3: Concurrency

The OS scheduler:

  • Design and tradeoffs
  • How they affect you

The Go schedule:

CPU vs I/O bound job:s

Synchronization and orchestration:

  • Understanding channels
  • Using sync and sync/atomic
  • Concurrency patterns
  • Wait for results
  • Fan out
  • Polling

Day 4: Performance Optimization

Before you start optimizing:

CPU Profiling:

  • Writing benchmarks
  • Using the profiler
  • Using the execution traces

Memory profiling:s

  • Benchmarking memory
  • Using the GC tracer
  • Using the execution tracer

Prerequisites

You should have experience writing Go code. You should have the following installed on your machine:

  • Go SDK
  • IDE such as VSCode with the Go extension or Goland
  • Git
  • graphviz

Why Engineers & Teams Trust Ardan Labs

Cisco Logo

Extremely well organized and high value

"The course is extremely well organized and the pace is also very conducive to the learning process. The exercises are very well organized. Delivered very high value."

- Cisco
Kelsey Hightower's Photo

Best training in the Go community

"You should reach out to the team over at @ardanlabs. They have been training the Go community since the beginning and I've yet to see anyone do it better."

- Kelsey Hightower
Jessica Greene's Photo

Go features that made work better

"Feeling so happy with myself: yesterday at work I refactored some code to use @golang 1.16 built-in, embed I learned about it at @ardanlabs service class."

- Jessica Greene
Zip Recruiter Logo

Well-structured and useful advice

"Excellent class. The instructor is a hacker speaking to hackers, so we got very useful information and advice. Well-structured and paced. 10/10 would gopher it again."

- Zip Recruiter
Adeniyi Oluwatola's Photo

Best ever—learned to build great services

"I finished Ultimate Service from @ardanlabs. I'm telling you this was the best ever. Talking from project structures to metrics. Now I can write good services in Go."

- Adeniyi Oluwatola
Steve Francia's Photo

Improved productivity with Go

"Thanks @ardanlabs for a great Ultimate Go class! Bill is a great teacher and I'm definitely more productive in Go now."

- Steve Francia
Matt Holt's Photo

Complex topics explained clearly

"Highly recommend Ultimate Go by @goinggodotnet & @ardanlabs. I appreciate how Bill explains complex topics simply and clearly. The labs were incredibly helpful too."

- Matt Holt
Cole Calistra's Photo

Well documented and well structured

"Their quality is astounding. They went above and beyond what we asked, working in line with best practices. Everything had test cases, was well documented and well structured, and ran smoothly.”

- Cole Calistra
See What's New

From the Lab

Where ideas get tested and shared. From the Lab is your inside look at the tools, thinking, and tech powering our work in Go, Rust, and Kubernetes. Discover our technical blogs, engineering insights, and YouTube videos created to support the developer community.

Explore our content: