You may have heard in the last few years about a new programming language that originated from within Google called Go (or Golang as a searchable term for search engines), through this book we will try to identify this language, its advantages, disadvantages and what makes it different from others. The first chapter of this book will be a verbal lesson only, focusing on the points of difference of language with the rest of the languages, and is directed to those with some programming background with the rest of the languages, but the rest of the lessons will be directed to beginners.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
# Go Programming Language: The Ultimate Beginner's Guide to Learn Go Programming Step by Step
## 【One-Line Pitch】
A practical, opinionated introduction to Go for programmers and complete beginners alike, covering the language's philosophy, installation, workspace setup, and first programs—with an honest look at both its strengths and its controversial design choices. If you want to understand *why* Go looks the way it does before you write your first line of code, this book gives you the context most tutorials skip.
## 【Book Arc】
- **Opening (~0%–6%)**: The book opens with a frank discussion of Go's origins at Google (2007, by Ken Thompson, Rob Pike, and Robert Griesemer) and immediately sets a no-hype tone—the authors deliberately list what you might *dislike* about Go before telling you what's good, so you can decide early if the language fits your mindset.
- **Early (~6%–31%)**: A detailed "things you may not like" list covers Go's lack of classes/inheritance, no exception handling (errors as values instead), no default/optional arguments, no overloading, no generics (at the time of writing), its "boring" simplicity, the stubbornness of its designers, and the fragmented package-manager ecosystem. This is followed by the "things you may like" list: goroutines, fast compilation to standalone executables, productivity through simplicity, cross-platform builds, a rich standard library, Unicode-by-default strings, built-in tooling (godoc, gofmt, go test), and Python-like syntax with multi-value returns.
- **Middle (~38%–50%)**: The book shifts from philosophy to practice, explaining the two Go compilers (gc and gccgo), why you'll likely use the standard gc, and how to install Go on Windows, macOS, and Linux (including the Ubuntu PPA approach and Arch's pacman).
- **Middle (~50%–63%)**: A thorough walkthrough of the Go workspace model—the GOPATH environment variable, the required `src`, `bin`, and `pkg` subfolders, and why Go expects your code to live in a path mirroring your repository URL (e.g., `work/src/github.com/yourname/project`). This section explains how `go get` fetches libraries and why the import path equals the repository path.
- **Late (~63%–69%)**: Configuration details for setting GOPATH permanently on Linux/macOS (via `.bashrc` or `.zshrc`) and Windows (via System Properties → Environment Variables), preparing you for the hands-on chapters that follow.
## 【Key Takeaways】
- **Go is deliberately minimal, and that's the point** (Early): The language removes classes, inheritance, exceptions, overloading, generics, and optional arguments—not because the designers were lazy, but because they believe these features create unstable APIs and unpredictable behavior. If you're coming from Java or Python, expect to unlearn habits.
- **Errors are values, not exceptions** (Early): Go returns errors as normal values (an `error` type like any other), with `panic` and `recover` reserved for truly exceptional cases. This forces you to handle failure explicitly rather than letting it bubble up invisibly.
- **Goroutines make concurrency accessible** (Early): A single `go` keyword launches a lightweight parallel thread, letting you run tens of thousands of concurrent tasks (versus hundreds with traditional threads). This is Go's killer feature for high-performance applications.
- **Compiled to a single standalone binary** (Early): Unlike Python, Ruby, or PHP, Go compiles to a self-contained executable with no external dependencies—deploy by copying one file to a server, no runtime installation needed. Cross-compilation for other platforms works from any OS.
- **The workspace layout is non-negotiable** (Middle): Go expects a specific folder structure (`src`, `bin`, `pkg`) under a GOPATH, and your project paths must mirror your repository URLs (e.g., `github.com/yourname/project`). This feels rigid at first but makes importing and sharing libraries trivial.
- **The standard library punches above its weight** (Early): Go ships with HTML templating, JSON encoding, password encryption, and more—the authors advise relying on it as much as possible before reaching for third-party packages.
- **Unicode is the default, not an afterthought** (Early): Go uses a `rune` type (an alias for `int32`) for Unicode code points, and strings are rune strings by default—a relief for anyone who's fought with byte-level encoding in C or older languages.
## 【Reading Tips】
- **Skim the "things you may not like" list if you're a beginner** (Early): If you've never programmed before, some criticisms (no generics, no overloading) won't mean much yet. Read them lightly, then return after you've written a few programs—they'll make more sense with context.
- **Deep-read the workspace chapter** (Middle): The GOPATH structure and repository-mirroring convention is the #1 source of confusion for new Go developers. Take your time here; getting this right saves hours of debugging later.
- **Don't skip the "why" sections**: The authors spend unusual effort explaining *why* Go makes the choices it does (e.g., no optional arguments → explicit behavior → fewer human errors). This context will help you write idiomatic Go instead of fighting the language.
- **Note the book's vintage**: The text references Go 1.5.2 and notes that generics don't exist yet. Go has evolved since—generics were added in 1.18, and the module system has replaced GOPATH for many projects. Read the philosophy as history, and supplement with current docs for modern practices.
- **If you're a complete beginner, start at Chapter II**: The first chapter assumes some programming background. If terms like "inheritance" or "overloading" are unfamiliar, jump ahead to installation and workspace setup, then circle back.
## 【Coverage Limits】
The excerpts cover the book's opening through the workspace configuration (~69% of the book), including the "things you may like/dislike" lists, compiler overview, installation instructions, and GOPATH setup. The later chapters on writing your first program, language rules, and creating a backend are not covered in this guide—the excerpts do not include their content.
##
Excerpt 1
, but the rest of the lessons will be directed to beginners. Chapter One General concepts As usual every decade, there are new tools and techniques that try ...
anguage and nothing new, many consider it a boring language. The number of keywords and their original types is small compared to other languages, and they g...
even smartphones and ARM architecture. Even after version 1.5 of Go you can create an executable file for all platforms through the platform you are in, for ...
An environment variable called GOPATH refers to this folder. Suppose you name the work folder as work, which should also contain three other subfolders: A su...
ything! Even your own executive programs you write yourself. For Linux or Mac OS users, this is possible by adding the bin folder path within the working fol...
vascript and other languages,} opens the function body. fmt.Print ("Welcome to the world \ n") Here we used the "fmt" package we imported above, to use any p...
/ YOUR_USER / sayhelo / sayhello.go Now, open the sayhello.go file with your favorite text editor and then start writing our amazing function.You are not sup...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
Go programming language The Ultimate Beginners Guide to Learn Go Programming Step by Step 1(John Bach, Alexander Aronowitz) (Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
Go programming language The Ultimate Beginners Guide to Learn Go Programming Step by Step 1(John Bach, Alexander Aronowitz) (Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment