In the projects, in which I work, it comes up that I am asked what I recommend for xyz. So that I don't forget half of the information, I'll started to collect it thematically and in a more or less structured way and publish it here. Here my hopefully helpful ressoures for the Go language.
- research!rsc Thoughts and links about programming, by Russ Cox
- Bitfield Consulting friendly, professional go mentoring
- Boldly Go
- Eli Bendersky's website / Golang tools
- Three Dots Labs
- Go 101 Blog
- The Go Blog
- Redowan's Reflections
- Over-Engineered
- Practical Go A collection of real world advice for writing maintainable Go programs.
- willem.dev
- Sameer Ajmani
- my recommend books on golang can be found here
- The Zen of Go
- Go Proverbs
- Coroutines for Go
- A Guide to the Go Garbage Collector
- Getting to Go: The Journey of Go's Garbage Collector
- Writing and Optimizing Go code
- Implementing WebSocket Protocol in Go
- Common pitfalls in Go benchmarking
- Avelinos awesome-go: A curated list of awesome Go frameworks, libraries and software
- Rob Muhlesteins awesome-go
- Quick tip: A time-saving Makefile for your Go projects
- 🌶️ Picnic-TUI - Where Go and Groceries Create a Command-Line Feast
- Use Abstraction to Improve Function Readability
- Disagreeing with "best practices"
- Linear code is more readable ➡️ There is always the danger that with time compact functions become real "monsters" that are hard to read or understand. one of my last experiences was a function where the indented code was only visible, without scrolling, on the last 20% of the monitor (49" Samsung CRG 9) on the right side. Not my code, should help to debug, will we need a 49" monitor for debugging or two of them side by side in future? A healthy balance would suit us all.
- Go Code Review Comments This page collects common comments made during reviews of Go code, so that a single detailed explanation can be referred to by shorthands. This is a laundry list of common style issues, not a comprehensive style guide.
- A curated list of awesome Machine Learning frameworks, libraries and software.: https://github.com/josephmisiti/awesome-machine-learning?tab=readme-ov-file#go
- Go Forum: https://forum.golangbridge.org/
- Go Forum: https://godev.com/
- r/golang: https://www.reddit.com/r/golang/
- golang-nuts: https://groups.google.com/g/golang-nuts
- golang-dev: https://groups.google.com/g/golang-dev
- Go vs. Python: an introduction to Go for senior (Python) developers
- Learning Go as a Python Developer: The Good and The Bad
- Go for Python Programmers
- Go Style
- golang-standards
- Tools for Go projects
- How to start a Go project in 2023
- Go gotchas, surprises, puzzles
- Do you make these Go coding mistakes?
- golangci-lint, fast linters Runner for Go
- 🌶️ JSON-to-Go, convert JSON to Go struct
- Hands on exercises with real-life examples to study and practice Go concurrency patterns. Test-cases are provided to verify your answers.
- Google I/O 2013 - Advanced Go Concurrency Patterns
- Mastering Concurrency: Unveiling the Magic of Go's Scheduler
- A powerful little TUI framework
- 🌶️ Charm libs Everything you need to build great stuff for the terminal.
- Terminal UI library with rich, interactive widgets — written in Golang
- Struct-based argument parsing in Go
- A simple, fast, and fun package for building command line apps in Go
- A Commander for modern Go CLI interactions
- 🌶️ Kong is a command-line parser for Go
- Simple, extremely lightweight, extensible, configuration management library for Go Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
- The simplest config loader for Go that reads/watches from file, env, flag and clouds (AWS, Azure, GCP)
- Config file validator: Cross Platform tool to validate configuration files:
https://github.com/Boeing/config-file-validator
- Cup o' Go Stay up to date with the Go community in just 15 minutes per week.
- Ardan Labs Podcast This podcast features intimate conversations with engineers who are in the forefront of building or teaching technology.
- go podcast()
- Go Time
- Build desktop applications using Go & Web Technologies.
- bubbletea, A powerful little TUI framework
- gocui - Minimalist Go package aimed at creating Console User Interfaces.
- React-like desktop GUI toolkit for Go: https://github.com/roblillack/spot/
- Cogent Core - A free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web with a single Go codebase, allowing you to Code Once, Run Everywhere.: https://github.com/cogentcore/core
- nucular: https://github.com/aarzilli/nucular
- Trending Go Projects
- grank.dev tries to help to choose the right dependencies for your next golang project.
- Go packages
- A curated list of awesome Go frameworks, libraries and software
- Awesome-go list with stars. Automatically updated.
- Golang Jobs - OnSite and Remote Golang Jobs: https://golangjob.xyz/
- A curated list of awesome remote jobs and resources. Inspired by: https://github.com/lukasz-madon/awesome-remote-job
- goreleaser - Deliver Go binaries as fast and easily as possible: https://github.com/goreleaser/goreleaser
- The ultimate justfile for any golang project: https://github.com/crazywolf132/ultimate-gojust
- What do you use as build system?: https://www.reddit.com/r/golang/comments/196cowu/what_do_you_use_as_build_system/
- task/taskfile - task runner/simpler Make alternative written in Go: https://github.com/go-task/task
- just - a command runner: https://github.com/casey/just
Based on a question from my team mate who is used to Pythons line_profiler (%lprun) and memory_profiler (%mprun).
- The Busy Developer's Guide to Go Profiling, Tracing and Observability
- Debugging Go Code: Using pprof and trace to Diagnose and Fix Performance Issues
- Profiling Go Programs
- Profiling Go programs with pprof
- How I investigated memory leaks in Go using pprof on a large codebase
- Go pprof – How to Understand Where There is Memory Retention
- 🌶️ felixge's notes on the various go profiling methods that are available.
- Package collectors provides implementations of prometheus.Collector to conveniently collect process and Go-related metrics.
- Parca is a continuous profiling project.
- Grafana Phlare lets you aggregate continuous profiling data with high availability, multi-tenancy, and durable storage.
- Package trace contains facilities for programs to generate traces for the Go execution tracer.
- 🌶️ Go by Example: Testing and Benchmarking
- my recommend books on golang can be found here
- Five Go Projects: https://github.com/dreamsofcode-io/goprojects Not only five ideas to start with also includes code!
- List of Golang books
- Go go-to guide: https://yourbasic.org/golang/ by Stefan Nilsson
- Golang tutorial series: https://golangbot.com/learn-golang-series/ by Naveen Ramanathan
- Practical Go: Real world advice for writing maintainable Go programs:
https://dave.cheney.net/practical-go/presentations/gophercon-singapore-2019.html - Concurrency vs. Parallelism:
https://www.thecoder.cafe/p/concurrency-is-not-parallelism - 🔉 Jumping into an existing codebase
- 🌶️ Algorithms and Data Structures implemented in Go for beginners, following best practices.
- Effective Go
- Building an application with go and sqlite
- Building a web app with go and sqlite
- Building a web app with go and sqlite part 2
- Building a web app with go and sqlite part 3
- Building a web app with go and sqlite part 4
- Building a web app with go and sqlite part 5
- govulncheck Govulncheck reports known vulnerabilities that affect Go code.
- Crash Course on Go Interfaces
- Deliver Go binaries as fast and easily as possible
- Structured, pluggable logging for Go. ➡️ Go 1.21 will offer the new slog package
- AI on the command line
- A language for writing HTML user interfaces in Go.
- Go by Example
- 📺 Learn Go Programming - Golang Tutorial for Beginners
- 📺 Go Programming – Golang Course with Bonus Projects
- 📺 Learn Go Programming by Building 11 Projects – Full Course
- On Udemy I can recommend the golang courses from Trevor Sawler
- 📺 Golang UK Conference 2017 | Achilleas Anagnostopoulos - Can you write an OS Kernel in Go?
- go_assessment, a port of Rebecca Murphey's js-assessment for Go. This is a tool for assessing or practicing beginner level programming in Golang.
- Tutorial: Getting started with fuzzing
- Go Excellence: A Deep Dive into Error Handling
- Visualize Go slices and arrays Explore the connection between slices and arrays by generating diagrams from Go code.
- Go Tutorials & Examples
- 📝 go-form Render forms in go based on struct layout
- An overview of Go syntax and features.
- cheat sheet GO PDF
- Go Programming (Golang) Cheat Sheet
- Go cheatsheet
- ♨️ Stream: Go 10 Week Backend Eng Onboarding
- Companies using Go
- Roadmap: Go Developer
- Roadmap: Backend Developer
- Roadmap: DevOps Roadmap
- Roadmap: System Design
- Find your remote work here ➡️ it's backend on github Collection of remote job opportunities from around the world.
- Remote Jobs
- Remote Software Engineering Jobs
- echojobs
- German tech jobs
- We Work Remotely
- Go / Golang Jobs & developers
Starting projects to learn from source and to get ideas what to build to learn and improve your skills.
- ♨️ Generate invoices from the command line
- ♨️ Simple command-line snippet manager, written in Go.
- ♨️ A small ecomerce site for buying books
- Browsers Extensions Finder (BEXfinder) is a portable and cross-platform (Windows, Linux and MacOS) command-line tool to find out all web browsers (Google Chrome, Microsoft Edge, Brave Browser, Mozilla FireFox, Opera, etc.) extensions installed on system.
- Command line tool written in Go. It allows developers to scan their local Git repositories and generate a visual contributions graph.
- CLI for interacting with the recreation.gov API
- Repositories in Golang by Mitchell Hashimoto
- Storing IP addresses for quick CLI access
- A practical event-driven microservices demo built with Golang. Nomad, Consul Connect, Vault, and Terraform for deployment
- What are your favourite, opensource golang projects from a code quality perspective
- Live collaboration tool built with Go backend and Next.js, Typescript, & Tailwind frontend
- htmx-hackernews Hackernews made with htmx and Go
- gotes-mx This is a teeny tiny template repo for my own personal use. This setup meant for a fullstack Go project with templating support with HTMX.
- cli generator for .ignore files
- Go-based web crawler for data extraction
- Simple CLI tool for working with Gitlab issues
- Telegram bot
- Language Server (LSP) für die Deutsche Programmiersprache
- YouTube description and information downloader.
- A TUI app for finding anime scenes by image.
- clipboard for golang
- Making it easy to write shell-like scripts in Go
- Self-hosted file converter server
- A CLI tool for displaying data related to the English Premier League.
- Airbnb scraper made in Go
- Amazon crawler made in Go
- A commands bookmark for terminal
- Bookmarking CLI tool with automatic sync
- minesweeper cli
- Terminal dictionary for English Learners
- Go programs for interacting with Mastodon
- A reddit multimedia downloader
- Reddit Top Posts Scraper
- A CLI based daily timer
- HTTP status codes on speed dial
- graft is a tool to find and transfer files written in go
- This command-line application generates random words based on user preferences and allows you to save them to a file.
- ♨️ A highly customisable CLI tool for writing conventional commits
- Spotify TUI player, written in Go
- Create GIFs on the fly with ffmpeg
- Cemetery Escape is a game that you can play in your terminal.
- A CLI tool for importing and utilizing exported social media data from popular services on Hugo websites.
- To find open source projects to contribute to check good first issue
- Explore open source projects and jump in!
- Community-Powered, Connecting you with Open-Source
- Go Class by Matt KØDVB
- Go Programming – Golang Course with Bonus Projects by Freecodecamp
- Learn Go Programming - Golang Tutorial for Beginners by Freecodecamp
- Learn Go Programming by Building 11 Projects – Full Course by Freecodecamp
- GPN18 - Go für Programmierer
- Advanced Golang
- Golang By Example For Beginners
- 10x Golang Engineer
Some resources to find recorded talks from GopherCon Conferences:
- https://www.youtube.com/@NicJackson/videos
- https://www.youtube.com/@MarioCarrion
- https://www.youtube.com/@nicolasparada
- https://www.youtube.com/@ChamiViews
- https://www.youtube.com/@anthonygg_
https://www.youtube.com/@NerdCademyDev/featuredno longer active- https://www.youtube.com/@bmdavis419
- https://www.youtube.com/@ThomasLanghorst
- https://www.youtube.com/@MelkeyDev
- https://www.youtube.com/@codeheim
- https://www.youtube.com/@TiagoTaquelim/
- https://www.youtube.com/@joshrosso/ (seems inactive, but anyways interesting)
- https://www.youtube.com/@programmingpercy/
- https://www.youtube.com/@AkhilSharmaTech/
- https://www.youtube.com/@DonaldFeury/ (dated, but interesting)
- https://www.youtube.com/@samxsmith9102/
- https://www.youtube.com/@samvcodes
- bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS
- How I write HTTP services after eight years.
- go-app: A package to build progressive web apps with Go programming language and WebAssembly.
- chi - lightweight, idiomatic and composable router for building Go HTTP services
Drop by and learn!
- https://github.com/Jeffail
- https://github.com/TotallyGamerJet
- https://github.com/aarzilli
- https://github.com/alecthomas/
- https://github.com/benbjohnson
- https://github.com/bradfitz
- https://github.com/chewxy
- https://github.com/fogleman
- https://github.com/jackc
- https://github.com/kelseyhightower
- https://github.com/klauspost
- https://github.com/lesismal
- https://github.com/mattn
- https://github.com/mr-karan
- https://github.com/nalgeon
- https://github.com/robpike
- https://github.com/rs
- https://github.com/rsc
-
📝 age: A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
https://github.com/FiloSottile/age -
mage: a Make/rake-like dev tool using Go
https://github.com/magefile/mage -
📝 go-winres: Command line tool for adding Windows resources to executable files
https://github.com/tc-hib/go-winres -
go-sqlite-bench: Benchmarks for Golang SQLite Drivers
https://github.com/cvilsmeier/go-sqlite-bench -
go-fswatch: Go bindings for libfswatch
https://github.com/dunglas/go-fswatch -
Copier: for golang, copy value from struct to struct and more
https://github.com/jinzhu/copier -
lo: Iterate over slices, maps, channels...
https://github.com/samber/lo?tab=readme-ov-file -
dblab: The database client every command line junkie deserves.
https://github.com/danvergara/dblab -
anyquery: Query anything (JSON, CSV, GitHub, Notion, Airtable, etc.) with SQL
https://github.com/julien040/anyquery -
formulosity: Self-hosted Surveys as Code platform.
https://github.com/plutov/formulosity -
📝 gocron: Easy and fluent Go cron scheduling.
https://github.com/go-co-op/gocron -
prs: Stay updated on PRs from your terminal
https://github.com/dhth/prs -
📝 sqlc: Generate type-safe code from SQL
https://github.com/sqlc-dev/sqlc -
conc: Better structured concurrency for go
https://github.com/sourcegraph/conc -
testify: A toolkit with common assertions and mocks that plays nicely with the standard library
https://github.com/stretchr/testify -
color: Color package for Go (golang)
https://github.com/fatih/color -
tb.go: Tasks, boards & notes for the command-line habitat
https://github.com/araaha/tb.go -
gofumpt: A stricter gofmt
https://github.com/mvdan/gofumpt -
modfmt: Tidy up your go.mod files by merging the require blocks
https://github.com/abhijit-hota/modfmt -
koanf: Simple, extremely lightweight, extensible, configuration management library for Go. Support for JSON, TOML, YAML, env, command line, file, S3 etc. Alternative to viper.
https://github.com/knadh/koanf -
📝 Kong is a command-line parser for Go
https://github.com/alecthomas/kong -
env: A simple, zero-dependencies library to parse environment variables into structs
https://github.com/caarlos0/env -
cleanenv: Clean and minimalistic environment configuration reader for Golang
https://github.com/ilyakaznacheev/cleanenv -
konf: The simplest config loader for Go that reads/watches from file, env, flag and clouds (AWS, Azure, GCP).
https://github.com/nil-go/konf -
📝 bubbletea: A powerful little TUI framework
https://github.com/charmbracelet/bubbletea -
📝 rod: A Chrome DevTools Protocol driver for web automation and scraping.
https://github.com/go-rod/rod -
📝 goawk: A POSIX-compliant AWK interpreter written in Go, with CSV support
https://github.com/benhoyt/goawk -
📝 miller: is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON
https://github.com/johnkerl/miller
- pulse: Like a fitness tracker for your coding sessions
https://github.com/creativecreature/pulse
If you find this notes helpful and want to support me, you can do so by Buy me a coffee! ☕ it will keep my motivation high and I will be really thankful.