Skip to content
🐹 Free & interactive Go tutorials

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

1

Getting Started with Go

Install Go, set up VS Code, and write your first Hello World program.

beginner
2

Variables & Data Types

Learn how to declare variables, understand Go's type system, and work with strings, numbers, booleans, and constants.

beginner
3

The fmt Package

Master Go's fmt package β€” printing, formatting, format verbs, and reading input.

beginner
4

Control Flow

Master if/else statements and switch in Go to make decisions in your code.

beginner
5

Loops

Master Go's for loop β€” the only loop keyword you need for counting, iterating, and repeating.

beginner
6

Arrays & Slices

Understand fixed-size arrays and dynamic slices β€” Go's primary tools for ordered collections.

intermediate
7

Maps

Learn to use Go's maps for key-value storage, lookups, and data organization.

intermediate
8

Functions

Define functions, use parameters and return values, and master closures and defer.

intermediate
9

Pointers

Understand pointers in Go β€” memory addresses, dereferencing, and when to use them.

intermediate
10

Structs

Create custom types in Go by grouping related data together with structs.

intermediate
11

Methods

Attach functions to types in Go using methods, value receivers, and pointer receivers.

intermediate
12

Interfaces

Define behavior in Go with interfaces β€” implicit implementation, type assertions, and real-world patterns.

intermediate
13

Error Handling

Handle errors the Go way β€” the error type, if err != nil, custom errors, wrapping, and panic/recover.

intermediate
14

Packages & Modules

Organize your Go code into packages, manage dependencies with modules, and use the standard library.

intermediate
15

Concurrency

Harness Go's goroutines and channels for concurrent programming.

advanced
16

Testing in Go

Learn how to write tests, table-driven tests, and benchmarks to ensure your Go code is correct and fast.

intermediate
17

HTTP in Go

Work with HTTP handler functions, URL parsing, status codes, and query parameters using Go's net/http and net/url packages.

intermediate
18

JSON in Go

Encode and decode JSON using Go's encoding/json package β€” struct tags, marshaling, unmarshaling, and pretty printing.

intermediate
19

Select & Channel Patterns

Master Go's select statement β€” non-blocking operations, timeouts, done channels, and fan-in patterns for concurrent code.

advanced