Skip to content

Go From Scratch - Beginner to OSS Contributor

This path takes you from "I have never written code" to "I can clone a real Go project, read most of it, and submit a pull request for a small fix." It is unhurried, honest, and assumes nothing.

Who this is for

  • You have never written code, OR
  • You have copy-pasted code from tutorials but couldn't explain it line by line.

That's it. No "you should already know X." If you need to know something, this path will teach it.

What you'll need

  • A computer (any OS - macOS, Linux, Windows all work).
  • A text editor. VS Code is a good free default. Notepad/TextEdit work too, just less comfortable.
  • A terminal. Built into every operating system.
  • About 5 hours per week. The path is sized for ~4-6 months at that pace. Twice the hours, half the time. Half the hours, double the time. The path doesn't expire.

Why Go (and not some other language)

A few reasons that matter when you're starting:

  1. The language is small. You can fit most of Go's syntax in your head. Other popular languages have more features than any person uses.
  2. Errors are blunt. Go's compiler tells you exactly what's wrong and which line. You'll spend less time confused.
  3. It's used in real things. Docker, Kubernetes, Terraform, much of cloud infrastructure is Go. The OSS projects you'll graduate to contributing to are real and important.
  4. You'll be productive in weeks, not months. People who pick Go as their first language tend to ship something useful within a month.

How this path works

Each page does one thing:

  1. Says what you'll learn this session.
  2. Shows you a small program.
  3. Walks through the code line by line.
  4. Gives you a tiny exercise.

Do the exercises. Reading without doing won't stick - I promise. Type the code yourself; don't copy-paste. Your fingers learning Go is part of how your brain learns Go.

The deal

  • I will not pretend things are easy when they aren't. When something is confusing the first time, I'll say so.
  • I will not send you to "consult the primary source" or "read the standard library." If you need to know it, this path will teach it.
  • There are no stupid questions, only stupid skipped exercises.
  • The goal at the end is real: a pull request to a real open-source project. We will work up to it.

The pages

The path is 16 pages, sized so you can do one or two per week.

# Title What you'll know after
00 Introduction What we're doing and why
01 Setup Go installed; "hello, world" printed
02 First real program Variables, numbers, text
03 Decisions and loops if, for
04 Functions Named reusable blocks
05 Making your own types struct, methods
06 Many things at once Slices, maps
07 Errors Go's way of handling failures
08 Pointers and memory Gentle introduction
09 Concurrency 101 Goroutines and channels
10 Tests Writing your first test
11 Packages and modules Using code other people wrote
12 Reading other people's code The bridge
13 Picking a project What "manageable" looks like
14 Anatomy of a small OSS repo Case study
15 Your first contribution Workflow + PR

Start with Introduction.

Print this path

Want to read offline or archive? Open the printable version — every section of this path concatenated into one page, styled for paper. Use your browser's Print → Save as PDF.