This 12-week Golang curriculum is designed as a journey to take a developer from a novice level to proficiency. The course is structured into distinct modules that build upon each other, combining theoretical knowledge with practical application.
- Weeks 1-4: Foundations: The curriculum starts with the fundamentals of Go, including environment setup, basic syntax, variables, and data types. It then progresses to control flow, functions, and essential data structures such as arrays, slices, and maps.
- Weeks 5-8: Core Features & Concurrency: This phase covers intermediate concepts like error handling, pointers, and interfaces. Following this, the curriculum dedicates significant time to Go's hallmark feature, concurrency, teaching students about goroutines, WaitGroups, and channels.
- Weeks 9-12: Tooling & Application: The final section focuses on practical skills, including package management with Go Modules, testing and benchmarking, file I/O, and JSON handling. The course culminates in learning how to build a simple web server using the
net/httppackage.
A central part of the learning process involves building four detailed mini-projects that allow students to apply the concepts they've learned:
- Go-Do: The Terminal Task Tracker: A command-line application to practice fundamentals and data structures.
- Gopher Links: The Personal URL Shortener: A project focused on using maps and structs to manage data efficiently.
- Go-Pher: The Concurrent Web Crawler: An application designed to teach the practical use of goroutines and channels for high-performance tasks.
- Project Zenith: The Wisdom API: A final project where students build a live web service that serves data as JSON, covering web server creation and routing.