A collection of Go (Golang) mini-projects and exercises based on the Gophercises course by Jon Calhoun. These exercises are designed to help developers build practical Go programming skills by working through real-world examples. Please note some code/packages is provided through this course - but for my learning, these projects are largely written by me to satisfy the requirements of the course.
| Exercise | Name | Description |
|---|---|---|
| 01 | Quiz Game | A timed CLI quiz that reads questions from a CSV file. |
| 02 | URL Shortener | A web server that redirects paths to URLs using YAML/JSON. |
| 03 | Choose Your Own Adventure game | Run a game defined in a json file |
| 04 | html link parser | A package that parses html links to return hrefs. |
| 05 | sitemap | An application that takes a website as input and creates a sitemap of it using the html link parser package. |
| 06 | CLI Task Manager | A CLI task manager using boltDB. |
| 07 | phone number normalizer | Testing, normalizing, and processing phone numbers with a postgres database |
| 07 | Deck of Cards | Creating a package that allows you to write card games using Go. Includes cards (suits and ranks), shuffling, etc. |
- Go
- Standard library (focus on no external frameworks unless needed)
- CSV, YAML, JSON parsing
- Web development (
net/http,mux) - File I/O and CLI interfaces
- Go modules
- boltDB
- Postgres DB
- SQL
- html
- css
- Improve Go fluency by building hands-on projects.
- Understand and use interfaces, structs, slices, maps, channels, and goroutines.
- Build both command-line tools and web servers using Go's standard library.
- Become competent enough to effectively contribute to open source Go projects
- Write readable, maintainable, idiomatic Go code.
- Get more fluent with database operations
- How to structure a Go project and how Go packages and modules, and dependency management functions
- Parsing CSV and YAML files into Go Structs
- JSON handling
- Channels
- Webserver: URL redirection/handling, using mux, net/http
- Logic for working with maps and slices
- error handling and debugging in Go
- programming with html templating (I've already learned templating though through Helm Charts)
- recursive html tree traversal
- DB operations using boltDB & PostgreSQL
- OS operations
- (Separate) Terraform provider SDK semantics and provider structure (While working on terraform-provider-talos)
- Go testing
(This section will grow as I complete more exercises.)