好为人师

补记于 8 年后

这本是一篇 2018 年的旧文,写完觉得自己有点矫情,就归档了。如今翻出来重读,反而觉得当年那点矫情未必都是矫情——只是世界应它的方式,残酷得有点出乎意料。

当年我反对的是”用 code 逃避表达”,主张表达比 coding 更让人走得远。如今 AI vibe coding 兴起,”show me the code” 反倒不再有意义——大概 “show me your AI code to my AI” 才有意义吧,毕竟代码已经没人看了。可代码不再被推崇,并不是因为思想被推崇了,而是因为代码本身被廉价化了:原本要花一晚反复推敲的事,AI 眨眼就跑出一个像样的实现。匠心散了,匠人也不太需要了。

更难受的是别人看代码的眼神也变了。再精巧的实现,换来的多半只是一句冷冰冰的”哦,挺好的”——反正 AI 也能写。代码里那点”人味儿”,正在被一种”反正都差不多”的氛围悄悄抹平;曾经一段代码可以是一个人的签名,现在更像流水线上下来的零件,没人在乎是谁拧的螺丝。

8 年前那句”编程语言只是工具”,今天再听,反倒是个温柔的提醒:工具被取代是早晚的事,而你作为一个能想清楚、说清楚、选择走哪条路的”人”,才是那个还不太容易被取代的东西。但愿吧。

12 年毕业,不知不觉,已经参加工作 6 年了,这本是一篇应该去年写完的文章。距离上一篇博文已经快 3 年了,期间总念叨着不能让博客长草,但是写出一篇完整的文章真的是特别耗时的事情。

写代码可以让重复的事情固定下来,写文章则可以让重复说的话给沉淀下来。每当有新人向我请教一些问题的时候,如果可以先让他过目一下自己写好的文章,再做一些交流,那教育的效率以及节省下来的时间都是很可观的。

编程语言只是工具

在软件行业,5 年的工作经验被视为一条有象征意义的分界线。前两年的时候,有个架构师朋友跟我说,一个工程师,当他有了 5 年经验以后,才称得上是一个完整的作战单位。我表示了认同,尽管那时的我也不过刚满 5 年经验。

第一家工作单位的老板是技术出身,虽然我在职期间能偶尔感受到他希望介入技术开发决策的躁动心情,但直到我 17 年离职之前,”编程语言只是工具”这样的话,他也只对我说过一次。尽管初听时情绪被搞得很低落,但现在想来,他其实已经很克制了。

对,编程语言只是工具,接受这句话总有点向现实妥协了的意思,这个道理对于新人来说总是难以接受的,更不用说是热爱技术的小年轻了。但随着你接触过的语言增多,接触到的问题变多,你可能会发现,真的不存在银弹。问题是无穷的,但总是存在更好的解法,当解法不再频频涌现的时候,其实我们是在等待下一个思想家,而不是下一个编程语言。

Show me the code?

我喜爱 Linux,这个世界提供了一大箱子的工具来帮你完成一些琐碎的、重复的工作,同时也架起了一座与机器沟通的桥梁,带给你一种世界尽在掌握之中的满足感。而 Linux 的创作者 Linus 说过的最著名的一句话”Talk is cheap, show me the code”,我想在这个行业里没听过这句话的人应当不存在吧。尽管我很想遵从他的理念,只是我最好的能力似乎不在 code 上,所以很遗憾,也很惭愧,没能为这个世界贡献多少我的代码。

Linus 曾经在 TED 上表达过他对这个世界的看法,我大致总结一下:这个世界的伟人分为两种,一种如爱因斯坦,他们负责打开人类的想象力,带领我们往天上看;一种如 Linus,他们负责造桥铺路,引领人们在地上走。Linus 是个热爱生活的实干家,带动了技术风潮也许不是他的目的,但至少他为此感到欣慰。

他的那句名言正是反映了他的实干态度,可我认为,这应当是你的一种主动选择,而不是一种逃避方式。”Show me the code”之前,有几个人能说得清自己是在写什么?为了写代码而写代码,为了逃避表达而写代码,这都不是正确的态度。毕竟,值得欣赏的代码总是短小又精妙的,大多数人写的代码更多的只是在完成一件事情,而说清楚一件事情,总比让人花大量的时间去阅读你的代码才能搞清你在做什么要强得多吧。

无论生活里还是工作中,请我帮忙解决技术问题的次数都很多,在这个过程中我感受到了一个现象:很多人并不能较准确地表达出自己到底遭遇了什么问题,更糟糕的是,很多时候他们会”误导”你。于是,在给出你的解决办法之前,你不得不先花大量时间帮助他们理解清楚他们究竟碰到的问题是什么。

所以,能否表达清楚自己在做什么,以及表达清楚自己遭遇到了什么问题,我觉得这样的表达能力可能比 coding 的能力更能让人走得远。

摆渡人

好为人师是我的一个毛病。我帮别人解决问题,从来都不喜欢给结果,总喜欢给方法。问题解决了的时候,我也是会习惯性地为提问者进行一次”问题 - 原因 - 解决方法”的总结。偶尔也有提问者只关心结果,你说方法说理论他都心不在焉,出于对这类人的失望,他们下一次的帮忙请求,我选择不帮的概率要高于直接给结果的概率。

我想做个小小的摆渡人。比起直接给结果,我选择多写点文章讲讲理论和方法论。尽管”Talk is cheap”,但如果可以帮到一些人,给这个世界带去一点点回馈,也好过什么都不做吧。