Learn Go in one evening
The most efficient way to learn Go for Experienced Software Engineers - no programming basics
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
Backend Engineer · Verified buyerYou 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.
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".
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.
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
Software Development Engineer · Verified buyer
Created by
Miłosz Smółka & Robert Laszczak
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.
LuÃs Pinto
Backend EngineerThe 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!
Fernando Munoz
Developer & Tech Chief, MicroplanI 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!!
Sebastian Will
Software Developer, FreelancerI 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.
Daniel Fenert
Architect, G2A.comVery good training that systemizes essential Go knowledge with simple exercises. Good value for money.
Bilal Islam
Senior Developer, FreelancerThe 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.
Andrés Uris
Software Developer, NaranjaXGreat 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
Tobias Andersson
Site Reliability Engineer, ComeOn GroupWhat 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.
Juan Lasso
Del Valle UniversityThis 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!
Yehor Masalitin
Senior Software EngineerI'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 BandungI 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, DatabricksGo 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, FlexThis 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!
Michal Kozák
SRE, KeboolaPractice 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.
Mohamed Mirghani
Senior Backend Engineer, TweeqThe 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.
Vladimir Stankovic
Engineering Manager, Code ReflectThis 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!
Anirudh Nitin Bakare
Student, Northeastern UniversityThe 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.
Kirill
Senior Python Backend Developer, CompelThis 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.
Geovanny Mendoza
Software Engineer, GeovannycodeThe 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, AtlassianI 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 GamesReally 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 EngineerIf 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, UpholdGreat tutorial to quickly started with the language. Worth the price.
Naveen Reddy Kunareddy
Senior Software EngineerReally practical course
Harold Portocarrero
Engineering Manager, PedidosYaAmazing 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.
- Learn to build Modern Business Applications in Go with our free e-book.
- Sign up for our upcoming training on Event-Driven Applications and Microservices.
Start your journey with Go today for:
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!
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.
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.