Learn Go with uByte
Beginner-friendly lessons with real code you can edit and run in the browser. From βHello, World!β to goroutines β learn by doing.
Read
Short, focused lessons
Code
Edit real Go in the browser
Check
Instant feedback on your answer
Earn XP
Track streaks & achievements
All Tutorials
Getting Started with Go
Install Go, set up VS Code, and write your first Hello World program.
Variables & Data Types
Learn how to declare variables, understand Go's type system, and work with strings, numbers, booleans, and constants.
The fmt Package
Master Go's fmt package β printing, formatting, format verbs, and reading input.
Control Flow
Master if/else statements and switch in Go to make decisions in your code.
Loops
Master Go's for loop β the only loop keyword you need for counting, iterating, and repeating.
Arrays & Slices
Understand fixed-size arrays and dynamic slices β Go's primary tools for ordered collections.
Maps
Learn to use Go's maps for key-value storage, lookups, and data organization.
Functions
Define functions, use parameters and return values, and master closures and defer.
Pointers
Understand pointers in Go β memory addresses, dereferencing, and when to use them.
Structs
Create custom types in Go by grouping related data together with structs.
Methods
Attach functions to types in Go using methods, value receivers, and pointer receivers.
Interfaces
Define behavior in Go with interfaces β implicit implementation, type assertions, and real-world patterns.
Error Handling
Handle errors the Go way β the error type, if err != nil, custom errors, wrapping, and panic/recover.
Packages & Modules
Organize your Go code into packages, manage dependencies with modules, and use the standard library.
Concurrency
Harness Go's goroutines and channels for concurrent programming.
Testing in Go
Learn how to write tests, table-driven tests, and benchmarks to ensure your Go code is correct and fast.
HTTP in Go
Work with HTTP handler functions, URL parsing, status codes, and query parameters using Go's net/http and net/url packages.
JSON in Go
Encode and decode JSON using Go's encoding/json package β struct tags, marshaling, unmarshaling, and pretty printing.
Select & Channel Patterns
Master Go's select statement β non-blocking operations, timeouts, done channels, and fan-in patterns for concurrent code.