Skip to main content
5,700+Go developers trained

Learn Go in one evening

The most efficient way to learn Go for Experienced Software Engineers - no programming basics

Avatar 0Avatar 1Avatar 2Avatar 3Avatar 4Avatar 5Avatar 6Avatar 7Avatar 8
🔥 3841 developers are already on board
5,700+ Go devs trainedWatermill 9,598 ★Wild Workouts Go DDD example 6,238 ★270K+ yearly blog readers

The content was really well put together, everything builds upon what we are learning along the way and the approach of the small projects where all the knowledge is tied up together works really well!

This was a really nice course - I'd say that's a 10/10 in terms of value for money. I'm eager to start the next course from Three Dots Labs as soon as it's available!

Luís Pinto

Luís Pinto

Backend Engineer · Verified buyer

How to learn Go?

Here are the common ways to start learning Go.

Books are great and go deep on many topics. But they're also long and each chapter describes an entire concept even if you won't use it right away.

Videos are popular and seem like an easy way to pick up any topic. They work if you have the time to watch long hours of content.

Reading the standard library is the classic advice you'll get in the community. It might be a good idea if you plan to create another language or standard library.

Free online articles and examples contain some hidden gems and lots of bad advice. You can learn a lot, but it's hard to tell one from the other.

All the above miss one key thing: practice. We designed an online training where you learn this rare knowledge by building real-world projects. No boring videos to watch.

Laptop
Gopher of time

You can't buy time

Shortcuts work on a side project. They fall apart when three teams need to ship in the same codebase without breaking each other. We've been shipping production systems for 17 years. Long enough to know which shortcuts end in rewrites.

Go In One Evening lets you skip the costly production mistakes and architectural dead-ends we already made. Years of hard-won lessons, distilled to what works.

Gopher of success

Real-world examples

Most "Learn Go" tutorials start with what a variable is and end with a TODO app. You already know how to code. You don't need 10 hours of basics before writing anything useful.

Go In One Evening teaches Go through three real projects: an HTTP server, a CLI tool, and a concurrent API with rate limiting. Every exercise uses patterns you'll actually ship. Not a single "Hello World".

Practical Gopher

Hands-On

In real life, you don't work on projects alone. We'll work together as a team. We write the boring code. You write the most enjoyable and critical code.

Not videos you passively watch. Not theory you read and forget. You run a CLI command, write code in your IDE, and tests validate your solution immediately.

It's not another course that feels like homework. It's a training that feels like work on a world-class team.

20
MODULES

94
EXERCISES

<7H
FINISHED IN BY HALF OF TRAINEES*
* based on the average time to finish the training

What will you learn?

Each exercise is a focused, small change. You can finish something meaningful even in a 5-minute session.

Go In One Evening is a cohort-based training. Modules start releasing weekly after the sale ends. Finishing a week's work requires between 4 and 6 hours of coding for a senior developer.

Going with the cohort is optional. You can go over the exercises at your own pace.

See the full agenda below.

What you will learn
  • Set up your Go development environment
  • Write your first 'Hello, World!' program in Go
  • Understand the basic structure of a Go program
  • Use comments to document your code
You will implement
  • Install Go and configure your IDE
  • Create a simple Go program that outputs a greeting
  • Experiment with different ways to print output
What you will learn
  • Declare and use variables in Go
  • Understand Go's basic data types like strings, integers, and booleans
  • Know the difference between variable declaration and assignment
  • Use constants for values that don't change
You will implement
  • Declare and initialize variables of different types
  • Perform basic string concatenation and arithmetic operations
  • Convert an existing variable to a constant
What you will learn
  • Define and call your own functions in Go
  • Specify parameters and return values for functions
  • Understand how to structure a basic HTTP server in Go
  • Handle HTTP requests and return dynamic responses
You will implement
  • Create reusable functions to avoid code duplication
  • Implement functions that take parameters and return values
  • Build a simple HTTP server that responds to requests
  • Extract data from HTTP query parameters
What you will learn
  • Store collections of data using arrays and slices
  • Understand the differences between arrays and slices in Go
  • Initialize collections with specific values
  • Access elements in arrays and slices using index notation
You will implement
  • Declare and work with arrays of a fixed size
  • Use slices as a more flexible collection type
  • Retrieve the size of arrays and slices programmatically
What you will learn
  • Make decisions in your code using if/else statements
  • Evaluate boolean conditions to determine execution paths
  • Use comparison and logical operators in conditional expressions
  • Simplify complex conditionals with the switch statement
You will implement
  • Check if a number falls within a specific range
  • Handle different cases based on some input
  • Return error responses for invalid HTTP requests
What you will learn
  • Understand how Go handles errors using the error type
  • Return and check for errors in your own functions
  • Know when and how to panic to signal unrecoverable errors
  • Defer cleanup actions for better resource management
You will implement
  • Extend functions to return errors on failure
  • Check and handle errors returned by standard library functions
  • Ensure files are properly closed using defer
What you will learn
  • Store key-value pairs using the map data structure
  • Create variadic functions that accept any number of arguments
  • Manipulate slices by appending, merging and removing elements
  • Collect simple program metrics like request counts and timing
You will implement
  • Count occurrences of items using maps
  • Defining flexible functions using variadic parameters
  • Modify slices efficiently without unnecessary allocations
  • Calculate and print statistics about processed requests
What you will learn
  • Repeat code using Go's for loop construct
  • Iterate over the elements of slices and maps
  • Control loop execution with break and continue statements
  • Process collections of file system entries and paths
You will implement
  • Find elements in a collection matching some criteria
  • Generate sequences of values succinctly with simple loops
  • Traverse and filter nested data structures
  • Implement a simplified version of the "ls" command
What you will learn
  • Encapsulate related data in your own struct types
  • Define methods on your custom types for better organization
  • Pass complex values efficiently by passing struct pointers
  • Appreciate Go's approach of favoring composition over inheritance
You will implement
  • Define new struct types to represent meaningful concepts
  • Attach relevant functionality to types through methods
  • Modify structured data by passing pointers to functions
What you will learn
  • Manage data in memory using pointers
  • Understand how to check for null with nil values in Go
  • Allocate values dynamically using the new function
  • Modify variables through pointer parameters and receivers
You will implement
  • Implement data structures with internal references
  • Validate configurations allowing for optional fields
  • Adjust algorithms to allow modification of input data
What you will learn
  • Provide safe construction of structs using custom constructors
  • Understand how Go uses struct tags for reflection
  • Control access to struct internals with exported fields
  • Serialize custom types to JSON for use in APIs
You will implement
  • Ensure structs are always created in a valid state
  • Adapt JSON representations of types using struct tags
  • Process JSON requests into structs for easier handling
What you will learn
  • Define contracts for types using interface definitions
  • Implement functions and methods to satisfy interface contracts
  • Leverage the power of Duck Typing in Go
  • Organize code with the Repository pattern to abstract data access
You will implement
  • Expand programs to support different storage options
  • Generalize functions to operate on interface parameters
  • Implement a simplified version of the ls command supporting different options
What you will learn
  • Declare reusable anonymous function values
  • Access outer variables through function closures
  • Improve readability with named return values
  • Ensure resources are released using defer
You will implement
  • Isolate concerns using function types and interfaces
  • Build generator functions for sequences of values
  • Trace function execution time with defer statements
What you will learn
  • Organize related code into packages for better modularity
  • Control visibility of package contents with exported identifiers
  • Manage dependencies between packages and modules
  • Leverage third-party packages to expand functionality
You will implement
  • Structure projects to encourage clean separation of concerns
  • Document package functionality for other developers
  • Integrate external dependencies to add new capabilities
  • Clean up code organization applying package-oriented design
What you will learn
  • Speed up execution by introducing concurrency with goroutines
  • Communicate between concurrent processes using channels
  • Synchronize access to shared resources with mutexes
  • Coordinate background tasks in web services
You will implement
  • Parallelize workloads to improve efficiency
  • Implement concurrent pipelines passing data via channels
  • Protect data integrity in the face of concurrent modifications
  • Build a rate limiting middleware to protect APIs

Stay in your environment. Use your favorite tools.

Real-life projects don't happen in the browser. We let you stay with your favorite tools. VS Code, GoLand, Vim, Emacs? It's up to you.

You want to write all code by hand? Or use Claude, Copilot or Cursor? Our training is compatible with AI-assisted coding.

Our platform guides you through the training. It's a unique experience that helps you learn the fastest way possible: by doing. You won't learn this way anywhere else.

You can solve the exercises at any time that suits you best. You can start the training now, in a week, or a year.

Inside our training

Based on the example of our Go Event-Driven training.

What do graduates like about our platform?

The CLI tool they've got for hands-on exercises is a game-changer. The CLI tool functions like an interactive debugger, giving immediate feedback and validation as you work through coding exercises. I'm looking forward to using what I learned directly in my job.

The Discord community is also a big win. It's not every day you get to chat directly with the people who made the course. They're super helpful and quick to answer any questions. Also, they continuously take feedback and improve the course.

Damian Trzepała

Damian Trzepała

Software Development Engineer · Verified buyer
title

Created by

Miłosz Smółka & Robert Laszczak

Three Dots Labs logo Three Dots Labs founders

Over the last couple of years, we gained the trust of the Go community by sharing what we know. We are the authors of the Three Dots Labs blog (270K+ unique visitors per year), and our e‑book: Go With The Domain (60K+ downloads).

We are also authors of the Watermill library (9,598 ★ on GitHub), the most popular Go library for building event-driven and message-driven applications.

We worked in many fields, including infrastructure, complex and global financial domains, healthcare, and security. Along the way, we've built a few startups and led multiple teams. It gave us a broad perspective on software development across different organizations.

We've been building projects together for over 17 years. In 2024, we switched to working full-time on training for experienced software engineers.

When we meet in our free time, we like to cook and eat some steaks and burgers.

So far, 5,700+ Go developers have trusted us with their learning.

Reviews


See what professional developers say.

Review avatar

Luís Pinto

Backend Engineer

The content was really well put together, everything builds upon what we are learning along the way and the approach of the small projects where all the knowledge is tied up together works really well!

This was a really nice course - I'd say that's a 10/10 in terms of value for money. I'm eager to start the next course from Three Dots Labs as soon as it's available!

Review avatar

Fernando Munoz

Developer & Tech Chief, Microplan

I love this course! I was planning to learn Go but I find it very difficult since there was no single source where I could learn about Project structure... Base concepts of Go... Conventions... Concurrency...

All this in a fun and easy way! I think I came to the right place and I would recommend this course to anyone who would like to learn Go! And improve their skills as a Dev.

Thank you guys!!

Review avatar

Sebastian Will

Software Developer, Freelancer

I managed to break the training into smaller sessions to get a good overview about Go during my holidays. The individual topics contain concise information about the language's specifics and can be used as a short and handy reference later on.

The integration into VS code is working great; all in all it's a no fuss, hands-on primer that gets you up to speed.

Review avatar

Daniel Fenert

Architect, G2A.com

Very good training that systemizes essential Go knowledge with simple exercises. Good value for money.

Review avatar

Bilal Islam

Senior Developer, Freelancer

The Three Dots Labs team created a great training for all Go lovers. I had fun while I was guided to the next step every module. That is to say, I absolutely recommend it to everyone.

Review avatar

Andrés Uris

Software Developer, NaranjaX

Great training to learn and practice go fundamentals

I have enjoyed and learned a lot from this training. I feel more confident with my knowledge about programming Go and now I have a great foundation that will help me a lot in my journey with Go

Review avatar

Tobias Andersson

Site Reliability Engineer, ComeOn Group

What is often missing when learning new things is interactivity along with easy explanations for complex technical terms.

This course has all the elements that made it an incredible course, it is interesting, challenging but above all incredibly educational.

Review avatar

Juan Lasso

Del Valle University

This is one of the best programming courses online and Threedots way of teaching is awesome. The course is easy to setup and the exercises are ready to go!

Review avatar

Yehor Masalitin

Senior Software Engineer

I'm a Senior Software Engineer with experience in Java / Kotlin / Python / JS but I have never tried Go and didn't want to learn it the regular way as it was too boring to go over again of "Imagine that the variable is a box...".

This course was amazing for me, I just learned what is DIFFERENT in Go from all the other languages I worked with. Loved it. Highly recommended.

Fakhri Aunur

Master's Student of Informatics, Institut Teknologi Bandung

I enjoyed this byte-sized, incrementally challenging, concise learning. This really helped me learn new programming language effectively and efficiently as a student.

Max Wolffe

Sr. Software Engineer, Databricks

Go In One Evening is an incredible way to quickly get a working knowledge of Go!

The training is interactive and follows some excellent teaching patterns (spaced repetition, interleaving, etc). Highly recommend.

Ramzi A.

Software Engineer, Flex

This is really fantastic way to jump in head first using Go and understanding the key pieces of the language. You will use some of the key attributes that make Go unique and why you would grab it (concurrency, error handling, type safety). Can't recommend enough it is challenging at some points but I think its important to be challenged to get better at what you do.

I will be happy to purchase any other products by threedots!

Review avatar

Michal Kozák

SRE, Keboola

Practice beats theory! I have read some books to get me up to speed with Go, but there's nothing better than actually doing it. The AI mentor is goat, helped me get unstuck numerous times.

Review avatar

Mohamed Mirghani

Senior Backend Engineer, Tweeq

The hands-on approach was exactly what I needed it kept me truly engaged and accountable. Unlike passive video courses I could not just breeze through it without understanding the material. The practical exercises forced me to apply what I learned right away.

I highly recommend this training to anyone interested in learning Golang quickly and effectively.

Review avatar

Vladimir Stankovic

Engineering Manager, Code Reflect

This course is absolutely amazing! The course made complex concepts seem incredibly simple, and the explanations were crystal clear. I couldn't have asked for a better learning experience. Highly recommended!

Review avatar

Anirudh Nitin Bakare

Student, Northeastern University

The course is well curated to build enough confidence in you to start that next go project. It abstracts the concepts just enough for any developer to understand grasp the syntax and usage. Enjoyed the course.

Review avatar

Kirill

Senior Python Backend Developer, Compel

This course will be helpful for anyone who wants to quickly learn the basics of Golang. It's also great if you need to figure things out fast and solve a work-related problem using Go. The exercises are well-designed and very similar to real backend tasks you might face when working with Go. Overall, if you're just looking to get started with Go, this course is a solid entry point.

Review avatar

Geovanny Mendoza

Software Engineer, Geovannycode

The course exceeded my expectations. The combination of theory and practice helped me to acquire new skills and improve my job performance. I highly recommend this training to anyone looking to expand their knowledge and skills in the field. I believe it is invaluable for professionals at any stage of their careers, as it provides a solid theoretical foundation and practical applications.

In summary, I consider the course to be an invaluable investment in my professional development.

Freddy Fostvedt

Machine Learning Systems Engineer, Atlassian

I completed the go in one evening course. It's highly integrated into the IDE and terminal and course progress is easy, fun and fast. The course is comprehensive on basics, very hands-on and problem solving-oriented. I'd highly recommend this to anyone wanting to build experience with the basics of go.

Dave Chapman

Engineering Lead, Epic Games

Really well thought out hands-on approach to learning Go. Epic use Go quite a bit so it has been useful for me to learn the fundamentals. Highly recommend the training!

Himanshu Kandpal

Associate AI Engineer

If you are beginning your Go journey, this could be the best course for you. No spoon-feeding, text-based, and detailed enough to offer valuable insights even to experienced developers.

Nelson Gonçalves

Software Developer, Uphold

Great tutorial to quickly started with the language. Worth the price.

Naveen Reddy Kunareddy

Senior Software Engineer

Really practical course

Harold Portocarrero

Engineering Manager, PedidosYa

Amazing course.

Is it for you?


We want to build the best training possible for a specific group of developers.

This training is a perfect match if:

You already know one programming language.

You prefer to learn by doing.

You want to be productive within a few hours.

You want to learn real-life scenarios.

You like to work in your local environment.

You're ok paying to save your time.

You won't like it if:

You don't know any other programming language.

You're looking for a video course you can passively watch.

You want to learn advanced topics in depth, like memory management or performance improvements.

If you already know Go basics:

Start your journey with Go today for:

$40

This is a net price. Local taxes may apply at checkout.


24h money-back guarantee. Zero risk!

  • 17 exercises for free to try before you buy.
  • Private Discord channel access to learn with other Gophers.
  • Lifetime access to content and all future updates.

Do you want to buy more licences? Click here!

We are indie

Built by Engineers, for Engineers

We're a bootstrapped company building the training we wish existed. We answer to students, not investors.
By buying this training, you help us create more high-quality learning materials the community needs.

Still not sure?

We're developers ourselves, and we carefully pick our paid tools. We want you to be sure you've made a good career investment by buying our training.

If you change your mind, you can return it up to 30 days after purchase. Even if you finish the training within 30 days and don't like it. No questions asked. We'll just return your money.

I'm joining the training!
Gopher of trust

FAQ

We designed this training in a way that it's possible to achieve when you have entire, uninterrupted evening.

We know that it's luxury for some people to have an entire uninterrupted evening. If it's your case our training is also for you! You can continue the training the next day or month. The result will be the same.

No... just kidding. Of course, you can do the training whenever you like ;-). We're using evening to show that you can learn Go quickly, within a few hours.

We would really like to do that, but it's just not possible as long as there are 24 hours in a day.

Instead, we provide support in a private Discord channel. You'll receive access to private channels after joining the training.

Yes! It's an important part of our mission to provide access to free materials if you're not working in the industry yet.

Please contact us via contact@threedotslabs.com with a proof that you're a student. We'll try to reply ASAP.

Your satisfaction is our top priority. We're doing our best to make you satisfied with the training content. But it would be arrogant to think we'll be able to satisfy everyone.

Our return policy is super simple to ensure that you'll be happy with the training: you can return the training within 24 hours without any reason.

No questions asked. Of course, it would be great to know your reasons, so we're able to improve the training in the future.

We offer a 10% discount when you buy 10 or more training licences.

If you want to buy more licences, please follow this link.

One account can be used only by one user.

If you want to buy more licences, please follow this link.

If you want to buy more licences, please follow this link.

Yes. Please specify your TAX ID during checkout.