TL;DR:本篇简单介绍了学Golang的原因,顺便也简单讲了写本系列的动机
为什么是 Go?
学编程之前有个问题绕不开:该学哪门语言?
这个问题没有标准答案,但有决策框架。不同语言有不同的设计目标,选语言本质上是在选一种工具,工具只有合不合适。
所以与其告诉你”All in Golang”,不如先说清楚 Go 适合什么人,不适合什么人
Go 优势在哪
简单
Go 的设计者包括 Unix 的创造者 Ken Thompson,他们在 Google 内部看到了一个问题:公司在用 C++,但没人能快速看懂别人写的代码,新人上手要好几个月。他们设计 Go 的时候做了一个激进的决定:把所有聪明的语言特性砍掉,只留下够用的
没有继承,没有泛型(最新版加了但很克制),没有异常,没有隐式类型转换
刚开始你会觉得受限,后来会发现这让代码极其好读。一个 Go 项目,任何人打开都能快速理解,因为足够简单
并发
现代服务器软件的核心问题之一是:怎么同时处理大量请求?
Go 的 goroutine 是它最被低估的特性。开一个 goroutine 的成本极低,几 KB 内存,比系统线程轻几百倍。配合 channel 做通信,并发代码写起来逻辑清晰,不需要引入复杂的框架。Go 把这件事做得非常简单且极致
部署
go build 一个命令,出来一个二进制文件,扔到任何 Linux 服务器上直接跑,不需要安装任何依赖,不需要配置运行时环境
用 Docker 打包,基础镜像可以用 scratch 这种纯空镜像,最终镜像几 MB,启动时间毫秒级。对比 Java 动辄几百 MB 的镜像和几秒的启动时间,差距相当明显
工程生态成熟度
Go 的标准库非常完整,HTTP 服务器、JSON 处理、文件操作,不需要装第三方库就能做大部分事情
工具链统一,go fmt 格式化,go test 测试,go build 编译,简洁明了
什么人适合学 Go
如果你想做后端服务、API、Cli、运维工具…Go 是目前最顺手的选择之一
如果你对云原生感兴趣,Docker、K8s、Terraform、Prometheus,这些你每天可能都在用的工具,底层都是 Go。看得懂 Go,就能读源码,出了问题不只能等别人修
如果你是有 Linux 基础的人,Go 写的程序部署方式和 Linux 工具的设计思路很相近,没有太多额外的负担
什么人不适合现在学 Go
想做机器学习 / 数据分析 /AI,先学 Python
想做 web 和 nodejs 全栈,先学 JavaScript
对底层系统和极致性能感兴趣,可以直接去学 Rust,Go 满足不了你
没有一门语言能一招鲜吃遍天,Go 也不是
但如果你现在的目标是:写出能直接跑在服务器上的程序,理解现代基础设施是怎么运作的,同时不想在语言本身的复杂度上耗费太多精力,那 Go 是一个相当合理的起点
它足够好用,也不会让你在入门阶段就陷入无谓的复杂度里
为什么市面上教科书 / 教程这么多,我还要额外写系列
市面上的教程大多有几个通病:要么太学术,新人不友好;要么太碎,东一块西一块没有体系;要么是翻译腔,读着别扭
但别人写得不好不够有说服力
我曾经在入门 Go 的时候遇到过很多问题,都说照着教科书看但总找不到方向,东一块西一块零零碎碎不成体系。我想以我当初刚开始学 Go 的角度,把自己当时的困惑,踩坑记录等写下来,来带每一个想学 Golang 但是找不到地方下手的人
这就是这个系列存在的理由
从零带你学 Golang -目录
基础入门
- 第 0 篇:为什么要学 Golang << You are here now
为什么是 Go,和其他语言横向对比,适合什么人
- 第 1 篇:环境配置 << 已发布
三平台安装,编辑器选择,跑通 Hello World,看懂报错
语言基础
- 第 2 篇:程序是怎么跑起来的 << 待发布
从源代码到运行,编译和解释的区别,Go 程序的结构,package 和 main
- 第 3 篇:变量 << 编辑中
声明方式,
:=和var,多变量声明,零值,变量必须被使用,作用域
- 第 4 篇:基本数据类型 << 已立项未编写
整数(int、int8、int32、int64),浮点数,布尔,字符串,类型的本质是什么
本系列作者就我一个人,更新频率可能不固定,有闲杂时间就写到哪里
不会烂尾,我也不会承诺每周一定要更新几篇。如果您在跟着学,建议收藏hub页或者使用 rss 订阅本站,有更新自然会看到,感谢阅读
Auth_Verified: 2026.05.01