Share E-Book

Go programming language The Ultimate Beginners Guide to Learn Go Programming Step by Step 1(John Bach, Alexander Aronowitz) (Z-Library)

Author John Bach, Alexander Aronowitz

Go
Language English

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.

Format EPUB
Size 327.9 KB
283
Views
0
Downloads
0.00
Total Donations

AI Guide

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

Full assistant
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. ##

Passage locations

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 ...
View in text
Excerpt 2
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...
View in text
Excerpt 3
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 ...
View in text
Excerpt 4
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...
View in text

Recommended for You

Loading recommended books...
Failed to load, please try again later

Tip the Site

Scan the WeChat Pay or Alipay code to tip. No login required.

WeChat Pay
Alipay
Back to List