- π Official GoLang Docs: Go Dev
- Go Tour
- Go Packages
- Go Blog
- Effective Go
- Go FAQ
- Go by Example - Learn Go with annotated example programs
- Learn Go with Tests - Learn Go by writing tests
- Gophercises - Free coding exercises for Go beginners
- Go Web Examples - Learn Go for web development with examples
- Ultimate Go Programming - Professional Go training by Ardan Labs
- The Go Programming Language - By Alan Donovan & Brian Kernighan
- Go in Action - By William Kennedy, Brian Ketelsen & Erik St. Martin
- Concurrency in Go - By Katherine Cox-Buday
- Learning Go - By Jon Bodner
- JustForFunc - Programming in Go by Francesc Campoy
- Gopher Academy - Go conferences and talks
- Todd McLeod - Go programming tutorials
-
cards: A simple Go program that defines a new custom type deck (a slice of strings) representing a deck of playing cards. It demonstrates creating, populating, and printing the deck using nested loops and receiver functions.
-
string_to_html: Converts a plain string into an HTML document using Go and writes the output to a file.
-
template_string_to_html: Defines an HTML template as a raw string in the Go file and renders it with inserted data.
-
template_pass_string_value_to_html: Passes a string value into an external HTML template and renders it dynamically using Go templates.
-
template_struct_data_to_html: Demonstrates how to pass structured data (using Go structs and slices) into an external HTML template and render dynamic content using Goβs text/template package.
-
template_with_custom_functions_to_html: Demonstrates how to register and use custom functions in Go templates to manipulate and display structured data dynamically.
-
template_with_pipelining: Demonstrates using function pipelines in Go templates to transform and render data step-by-step with custom functions.
-
template_safe_html_rendering: Demonstrates safe rendering of dynamic user input in Go templates using the
html/templatepackage, which automatically escapes potentially dangerous content to prevent XSS attacks. -
tcp_hello_server: A simple TCP server in Go that listens on port 8080 and sends a greeting message to any client that connects. Demonstrates basic use of the
netpackage for creating TCP servers and handling connections. -
tcp_echo_server_with_concurrency: A concurrent TCP server in Go that listens on port 8080 and reads text input from clients line-by-line. Demonstrates handling multiple client connections using goroutines and reading data from network streams with
bufio.Scanner. -
tcp_echo_response_server: A concurrent TCP server in Go that listens on port 8080, reads input from clients line-by-line, and sends back a custom echoed response. Demonstrates bidirectional communication using
bufio.Scannerandfmt.Fprintf, along with concurrent connection handling using goroutines. -
tcp_rot13_server: A concurrent TCP server in Go that listens on port 8080, reads input from clients, converts it to lowercase, and sends back a ROT13-transformed response. Demonstrates text transformation, bidirectional communication using
bufio.Scannerandfmt.Fprintf, and concurrent client handling using goroutines. -
photo_blog: A simple web application in Go that allows users to upload image files via an HTML form, which are saved with a SHA1-hashed filename. Uploaded images are stored in the
public/picsdirectory and displayed back to the user based on session-tracked cookies. -
hmac_hash: A simple Go program that demonstrates generating an HMAC using SHA-256. It takes input strings (e.g., email addresses) and returns a secure, consistent hash using a secret key. Illustrates the use of
crypto/hmac,crypto/sha256, andio.WriteStringfor keyed hashing. -
base64_encoder: A simple Go program that demonstrates Base64 encoding and decoding of a plain text message using Go's
encoding/base64package. Shows how to convert strings to Base64 format and decode them back, with basic error handling usinglog.Fatalln. -
json_marshal_vs_encode: A simple Go web server that demonstrates the difference between
json.Marshalandjson.Encoder. It defines a struct and shows how to convert it to JSON using both methods. Includes endpoints to serve basic HTML, marshal data to JSON, and encode data directly into the HTTP response, with proper headers and error handling. -
json_unmarshal: A simple Go program that demonstrates how to parse a JSON string into nested Go structs using
json.Unmarshal. It shows how to access nested fields, iterate over slices, and explains the importance of passing a pointer (&data) so the unmarshal operation modifies the original variable. Ideal for beginners learning how to handle JSON in Go. -
crud_mongodb: A basic CRUD API built with Go and MongoDB that demonstrates how to connect to a MongoDB instance using the official Go driver. The project follows clean structuring with models, controllers, and routing logic, making it a great starting point for developers looking to build RESTful services with MongoDB as the database layer.
-
crud_postgres: A simple CRUD API built with Go and PostgreSQL that demonstrates how to connect to a PostgreSQL database using the
database/sqlpackage andlib/pqdriver. The project uses a clean folder structure with separatemodelsandcontrollers, and includes standard RESTful routes for creating, reading, updating, and deleting user records. Ideal for developers who want to learn how to build robust backend services with PostgreSQL as the relational data layer.
- Gin - Fast HTTP web framework written in Go
- Echo - High performance, extensible web framework
- GORM - The fantastic ORM library for Golang
- Cobra - A Commander for modern Go CLI interactions
- Logrus - Structured logger for Go
- Testify - A toolkit with common assertions and mocks
- Gorilla Mux - A powerful HTTP router and URL matcher
- Resty - Simple HTTP and REST client library for Go
- Kubernetes - Production-Grade Container Scheduling and Management
- Docker - Moby Project - a collaborative project for the container ecosystem
- Prometheus - The Prometheus monitoring system and time series database
- Hugo - The world's fastest framework for building websites
- Grafana - The open observability platform
- Terraform - Terraform enables you to safely and predictably create and manage infrastructure
- Consul - Consul is a distributed service mesh to connect, secure, and configure services
- Vault - A tool for secrets management, encryption as a service, and privileged access management
- Etcd - Distributed reliable key-value store for the most critical data of a distributed system
- CockroachDB - CockroachDB - the open source, cloud-native distributed SQL database
- The Go Blog - Official Go team blog with insights and updates
- Dave Cheney's Blog - Go best practices and performance insights
- Ardan Labs Blog - Go training and development articles
- Golang Weekly - Weekly newsletter about the Go programming language
- Go Forum - The Go community forum
- Gophers Slack - Join via invite.slack.golangbridge.org
- r/golang - Reddit Go community
- GopherCon - Annual Go conference
Let's stay connected! Follow me on social media to stay updated:
Feel free to update the README.md or raise issues if any to enhance the project