Skip to content

Joe-Bresee/gophercises

Repository files navigation

Gophercises by Joe Bresee

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.


📁 Projects I've Done

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.

🛠 Technologies

  • 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

🧠 What I Want To Learn

  • 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

🧠 What I’ve Learned So Far

  • 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.)


📚 Resources


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published