Skip to content
Block or Report

Block or report go101

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Go 101 is a series of books on Go programming. Currently, the following books are avaliable:

  • Go (Fundamentals) 101, which focuses on Go syntax/semantics (except custom generics related) and all kinds of runtime related things.
  • Go Generics 101, which explains Go custom generics in detail.
  • Go Optimizations 101, which provides some code performance optimization tricks, tips, and suggestions.
  • Go Details & Tips 101, which collects many details and provides several tips in Go programming.

These books are expected to help gophers gain a deep and thorough understanding of Go and be helpful for both beginner and experienced Go programmers.

To get latest news of Go 101 books, please follow the official twitter account @go100and1 and join the Go 101 Slack space.

Install, Update, and Read Locally

If you use Go toolchain v1.16+, then you don't need to clone the project respository:

### Install or update.

$ go install

### Read. (GOBIN path, defaulted as GOPATH/bin, should be set in PATH)

$ go101
Server started:
   http://localhost:55555 (non-cached version) (cached version)

If you use Go toolchain v1.15-, or you would make some modifications (for contribution, etc.):

### Install.

$ git clone

### Update. Enter the Go 101 project directory (which
# contains the current `` file), then run

$ git pull

### Read. Enter the Go 101 project directory, then run

$ go run .
Server started:
   http://localhost:55555 (non-cached version) (cached version)

The start page should be opened in a browser automatically. If it is not opened, please visit http://localhost:55555.


-theme=light # or dark (default is auto)

Some HTML files are generated from their corresponding markdown files. If a markdown file is modified, we can run go run . -gen to synchronize its corresponding HTML file.


Welcome to improve Go 101 by:

  • Submitting corrections for all kinds of mistakes, such as typos, grammar errors, wording inaccuracies, description flaws, code bugs and broken links.
  • Suggesting interesting Go related contents.

Current contributors are listed on this page.

Translations are also welcome. Here is a list of the ongoing translation projects:


Please read the LICENSE for more details.


  1. go101 Public

    An online book focusing on Go syntax/semantics and runtime related things

    HTML 4.6k 342

  2. golds Public

    An experimental Go local docs server/generator and code reader implemented with some fresh ideas.

    Go 421 21

  3. gotv Public

    A tool used to manage installations of multiple Go toolchain versions

    Go 7 2

  4. go-skia Public

    A Go skia binding based on skia C library through cgo

    C 18 4

  5. A proposal to support read-only and immutable values in Go

    2 1

  6. A list of Go GUI projects

    937 50

228 contributions in the last year

Aug Sep Oct Nov Dec Jan Feb Mar Apr May Jun Jul Mon Wed Fri

Contribution activity

August 2022

Created 1 repository

Created a pull request in golang/go that received 12 comments

expvar: use atomic types+methods instead of atomic functions to guarantee 8-byte alignments for Int and Float values

If the Int and Float types are embedded in other struct types, the alignments of the Int and Float fields might be not always 8-byte on 32-bit arch…

+13 −13 12 comments
Reviewed 2 pull requests in 2 repositories
go101/go101 1 pull request
golang101/golang101 1 pull request

Seeing something unexpected? Take a look at the GitHub profile guide.