FREE COURSE / REAL PRACTICE
Go for Python & C++ developers
Native Go language practice from typed values and shared slices to explicit errors and a deterministic JSON log-summary capstone.
What you’ll work toward
Write and test small standard-library Go programs with deliberate copying, interface boundaries, explicit failures and stable JSON reports.
Read an explanation, inspect the diagrams and work through the available checks, debugging exercises and builds. Feedback and prerequisite links guide the next step.
Before you start
The entry lesson has no earlier CodeRigor skill prerequisite. Start there and follow the sequence.
Individual lessons can add prerequisites. The course map shows your actual readiness.
A look inside the first lesson
Go values, types & zero values
package main
import "fmt"
func main() {
var ready bool
total := 125
fmt.Println(ready, total/60, total%60)
fmt.Println(float64(1)/float64(4), float64(1/4))
}Your course outline
Follow the lessons in curriculum order. Open a unit to preview the ideas you’ll work with.
Go language and storage
- LESSON 01.01
Go values, types & zero values
Read Go declarations, distinguish typed arithmetic, and make conversions before information is lost.
Open lesson - LESSON 01.02
Functions, loops & explicit outcomes
Use multiple returns, early exits and range loops without losing a search result or sentinel boundary.
Open lesson - LESSON 01.03
Slices, maps & shared storage
Separate a slice descriptor from its backing array; build independent snapshots and deterministic map reports.
Open lesson
Go program contracts
- LESSON 02.01
Struct methods & small interfaces
Choose value or pointer receivers deliberately and consume behavior through an implicitly satisfied interface.
Open lesson - LESSON 02.02
Errors as values & useful context
Return explicit failure values, preserve error identity when wrapping, and avoid publishing partial results.
Open lesson - LESSON 02.03
Packages, modules & contract tests
Design a small exported API, keep parsing helpers internal, and verify its contract with native table-driven tests.
Open lesson