VI//7 分钟/2,346

我为什么从 Java 转向了 Go

三个不太理性但都真实的理由:一只名叫 Gopher 的吉祥物、写代码时大脑明显更清晰的体感,以及一个真的拿到 Go 实习的学长。

本页目录 · 4

最近半年我把主要学习精力从 Java 转到了 Go。这个决定不是某天突然做的,而是几件小事叠在一起,慢慢把天平压向了一边。

记下来一方面是给自己一个交代——以后哪天动摇了能回来看看当初是怎么想的;另一方面也想和同样在选语言、选方向上犹豫的朋友聊聊:技术选型未必全是理性,那些"不那么理性"的理由,往往才是真正能让你坚持下去的理由


一、前途未知,所以我选了自己喜欢的

先说第一个原因,这个原因听起来有点搞笑:我转 Go 一个很重要的理由,是我非常喜欢它的吉祥物 Gopher

是的,就是那只圆头圆脑、龅牙、棕黄色、看起来又呆又欠揍的小地鼠。

你可能会笑,但我先认真讲一下背景。

作为一个网络工程专业的学生,我每天都能从各种渠道——B 站推送、知乎热搜、Java 群、学长口中——听到类似的话:

  • "Java 太卷了,岗位还在缩"
  • "学 Go 不如学 Rust"
  • "搞 AI 才是未来,后端再过几年要被 AI 写完了"
  • "你这个学校投简历根本没人看"

每一句听起来都很有道理,每一句又都互相矛盾。你越想"做出理性选择",越会陷进信息过载里——因为没有人能真的预测三年后哪条路是对的。所有信誓旦旦说"未来一定是 X"的人,其实自己也是在赌。

那既然怎么选都是赌,我为什么不选一个自己看着就开心的?

Go 的吉祥物 Gopher 是 Renee French 设计的。它没有 Java 那只蒸汽朋克味的咖啡杯那么"严肃",没有 Rust 那只精明的蟹子那么"硬核",也没有 Python 那条简洁的蛇那么"工程感"。它就是憨憨地站在那里,配色温暖,表情友好,看一眼心情就好一点。

这听起来像个玩笑式的理由,但选一门要花几年时间深耕的语言,情感联结其实远比想象中重要。打开 IDE 第一秒的心情、看官方文档时的亲切感、参加社区活动的归属感,这些细碎的好感会在你卡 bug、加班、自我怀疑的深夜里,悄悄地把你拽回来。

还有一件事推了我一把:我刷算法的时候关注了灵茶山艾府(俗称"灵神"),他题单里很多解法都是用 Go 写的。我一直觉得这种长期在算法和工程两栖跑、能稳定输出高质量内容的人,眼光不会错。他能选 Go 当作日常题解语言,说明这语言至少在他这种水平的人手里是趁手的。

那我跟着学,至少不亏。


二、写起来真的舒服——这个不是错觉

第二个原因更"体感"一些:我用 Go 写了几道题之后,发现我的思维明显比写 Java 或 C 时清晰

一开始我以为是新鲜感,写久了就会消失。但写了一段时间之后,这个感觉非但没消失,反而越来越明显。仔细想,我觉得它来自几个具体的地方:

1. 没有那么多"仪式"挡在思路前面。

写 Java 解题时,光是把 public class Solution { public int[] twoSum(int[] nums, int target) { ... } } 这一坨骨架敲出来,思路就被打断一次了。Go 直接 func twoSum(nums []int, target int) []int { ... },类型在右、关键字 func 在前,读起来像句子,写起来像说话。

2. 类型系统该有的都有,但不会强迫你证明给它看。

Java 的泛型类型推断在 2017 年才用 var 救了一下,至今还要写 Map<String, List<Integer>> m = new HashMap<>(); 这种重复劳动。Go 的 m := map[string][]int{}——就这么一行,干净。

3. 错误不藏在背后。

Java 的 try-catch 让我经常忘记某个调用会不会抛异常、抛什么、要不要往上传。Go 把错误当返回值,val, err := xxx()——你必须在那一行就决定怎么处理它。一开始觉得啰嗦,写多了之后发现,这种"必须当面处理"的设计让控制流变得完全透明,调试时几乎不会再有"诶它怎么就跳到这里来了"的瞬间。

4. 并发原语在语言层面,而不是在第三方库里。

go func()chan 是关键字,不是 ExecutorService.submit(...)。这让你在脑子里建模的时候不需要先穿过一层 SDK 抽象——想到什么就能直接写出什么

我不是在贬低 Java,Java 在大型企业系统里的统治地位、生态成熟度、JVM 调优空间,Go 短期内追不上。但是对于当下的我——一个还在打基础、刷题、做小工程的本科生——Go 把我的脑力更多地留给了"问题本身",而不是"语言本身"。

这一点很重要。


三、身边有人真的靠它拿到了实习

最后一个理由最现实,但也最关键:我有一个直系学长建了一个有点规模的 GoClub,更重要的是,他真的拿到了 Go 方向的实习

这件事的意义比"他成功了"本身要大得多。

很多时候我们做学习路线决策,是基于网上一些虚无缥缈的"行情"——招聘网站的搜索量、各种博主拍脑袋的预言、信息差催出来的焦虑帖。但当一个你认识的、你能联系上的、和你来自同一所学校的人,用某种技术栈拿到 offer 的时候,整件事就突然具体了起来:

  • 路径是可走的——他走过了。
  • 资源是可问的——他踩过的坑你可以直接问。
  • 社群是可加入的——他建的 club 就在那里,进去就能找到一群正在做同样事情的人。

这种**"具身的可达感"**,是任何招聘报告、薪资统计、行业趋势分析都给不了的。它把一个抽象的"Go 在国内有没有前途"的问题,变成了一个具体的"我走这条路下一步该怎么走"的问题。

所有抽象的恐惧,都是被具体的下一步消解的

学长的 GoClub 里有刷题的、有做项目的、有分享面经的、有内推的。我加进去的第一周就被一个学长甩了三个项目仓库让我读源码,第二周参加了一次线上分享,第三周开始有人催我把读完《Go 语言圣经》的笔记发到群里。一个有节奏的环境,会自动把你往前推

我现在已经读完了《Go 语言圣经》和枫枫的 Gin 框架教学,正在搭一个 Gin + GORM 的小型后端项目练手。如果一切顺利,明年这个时候我应该也能像那位学长一样,在简历上挂上一段真实的 Go 工程经历。


写在最后

回头看,这三个理由——喜欢吉祥物写着舒服身边有成功案例——没有一个是"Go 在 2026 年的市场份额上升了 X%"这种数据驱动的硬理由。

但我越来越相信,对一个还在选方向的学生来说,"软理由"才是真正能支撑你走过冷启动期的东西

数据告诉你"这是对的",但只有热爱、舒适感和身边的同行者,能让你在凌晨两点还愿意打开编辑器,把那个折磨了你三个小时的 bug 一行一行地拆开。

如果你也在 Java、Go、Rust、Python 之间犹豫——我的建议不是"选最有前途的",而是:

  1. 去看每门语言的官方吉祥物、社区氛围、文档风格,挑一个你看了就舒服的。
  2. 每门都用同一道算法题写一遍,体会哪一门让你脑子最清晰。
  3. 看看你身边有没有人在做这个方向,能不能加入一个具体的、活跃的小圈子。

三个问题答案都偏向同一门的时候,就别犹豫了。

至少对我而言,那个答案是 Go。

也是那只圆滚滚的、有点蠢萌的、棕黄色的小地鼠。

顺便一提,如果你也是 Henu 网工的学弟学妹,想加 GoClub,可以来找我。

留言 · 来聊聊

滚动到这里时再加载评论…