Skip to content

Postscript ​

Before You Start

  • Applies to: Go 1.21+ (examples verified with Go 1.22) · Prerequisites: none · Read time: about 10 min

If you have carefully read through both the Syntax and Advanced sections and typed out the code, you will realize that Go's syntax is not difficult and doesn't have many features. Experienced developers can get started in just a few days. It is completely a language oriented towards engineering, which you will gradually realize in your future coding. If you feel like you have nowhere to apply what you've learned after completing your studies and want to learn more deeply, I can provide several learning paths and example projects for your reference.

Web Development ​

Web development is a very common application scenario in Go language. You can try the following open-source web frameworks:

If you want to develop microservices, I recommend the following open-source frameworks:

Then you need to interact with databases. I recommend the following open-source libraries:

You can refer to the following projects for learning:

IM Communication ​

For IM development using Go, I recommend the following open-source projects:

Network Programming ​

Go also has many applications in network programming. Here are some reference open-source projects:

Game Server ​

In the game server domain, more and more enterprises are switching to Go:

Database Development ​

Database development requires a certain level of technical expertise. There are also quite a few databases or engines based on Go language. Just reading their source code takes a lot of time:

  • badger, high-speed KV database
  • dgraph, graph database
  • cayley, graph database
  • etcd, distributed key-value database
  • rosedb, key-value database, best choice for beginners
  • nutsdb, key-value database
  • prometheus, time-series database
  • tidb, time-series database
  • cockroach, distributed SQL database
  • rqlite, distributed database based on SQLite

Command-line Tools ​

Go is very suitable for command-line CLI tool development. Here are some recommended command-line development frameworks or libraries:

  • flag, flag standard library
  • cobra, strongly recommend using cobra for CLI development. Many famous projects are based on cobra, such as Docker, K8S, etc.
  • go-pretty, for beautiful output in command line
  • cli, lightweight command-line framework
  • kingpin, powerful and flexible command-line parsing library

Since cobra is very commonly used, there are many projects based on it for command-line development. You can find them easily. Here are just some reference projects:

The above only lists relatively common fields. You can see that Go is widely used in the server-side domain, but less in the client-side. In fact, Go also has many applications in other fields, such as webrtc, blockchain, object storage, cloud computing, etc. If you're interested, you can learn more on Github.

Finally, if you want to understand the implementation details of Go language more deeply, such as the underlying data structures of slice and map, the implementation of the goroutine scheduler, the process of GC garbage collection, etc., go to the Implementation Principles chapter to learn more.

Complete Example ​

The program below runs as-is: copy it into a file and execute go run main.go, or paste it into the Go Playground.

go
package main

import (
	"encoding/json"
	"fmt"
)

type Lesson struct {
	Chapter string `json:"chapter"`
	Done    bool   `json:"done"`
}

func main() {
	lessons := []Lesson{
		{Chapter: "base", Done: true},
		{Chapter: "impl", Done: true},
		{Chapter: "advance", Done: true},
	}

	data, err := json.MarshalIndent(lessons, "", "  ")
	if err != nil {
		panic(err)
	}
	fmt.Println(string(data))
}

Expected output:

text
[
  {
    "chapter": "base",
    "done": true
  },
  {
    "chapter": "impl",
    "done": true
  },
  {
    "chapter": "advance",
    "done": true
  }
]

Common Pitfalls ​

  • Reading is not enough. Type the examples; muscle memory is what survives.
  • Do not chase frameworks first. The standard library covers HTTP, JSON, testing and profiling — start there.
  • Pick one project and finish it. A small polished tool teaches more than ten abandoned demos.
  • Read the source of the libraries you use. Go's standard library is readable; grepping it answers most questions.
  • Keep upgrading. Go releases every six months; patch releases are safe, minor releases deserve a test run.

Change Log ​

  • 2026-10-14: Added "Before You Start" notes, a complete runnable example with expected output, common pitfalls, and this change log.

Golang by www.golangdev.cn · Adapted in part from Golang 中文学习文档 (MIT, © 寒江蓑笠翁)