QIAOPANG.COM · 陈天(TYR CHEN)2013–2026 精选技术与随笔文集 · 共 260 篇按时间顺序浏览(2013 → 2026)↗
程序人生 · 陈天文集QiaoPang · Systems, Craft & Agentic Era
时间轴 ↗

技术人的视野

技术人的视野

对我而言,周末要比平时忙碌得多。陪孩子上课,读书,玩耍是我的必修课程。这也是周末为何我有时比平时还要早发文章。有朋友曾经提醒我,新闻上说了孩子这么小,上各种早教课没用,只会给孩子带来不必要的压力。我不这么认为。我觉得评判一个课程有用没用,要看孩子是否喜欢,大人说了不算。对我而言,我只能提供各种机会和必要的引导,如果她不喜欢,不强迫就是了。为什么要听信和我毫不相干的专家的话试都不试,就一杆子打死所有的早教?我上音乐课的结果就是,女儿现在听着音乐就开始有节奏地翩翩起舞。有次去朝阳大悦城,有个化妆品专柜请了个美女拉小提琴。一听到悠扬的小提琴声,她就在我怀里欢快地舞动,于是我循着声音找了过去,在那个化妆品柜台附近把她放下,任她跳舞。于是小家伙就在众目睽睽之下跟随乐曲的旋律跳了好久,连拉琴的美女也为之动容,专门拉了首jingle bells助兴。

最近我在干一个让我比较窝火的「重新发明轮子」的活。为了更好地阐述这件事又不透露细节,我暂且比较笼统地说我在做系统层的某个非常基础的组件。这是个典型的我们可以用现有的实现(包括非常完善的开源项目)去完成,没必要自己从头去写的功能。然而,项目的技术老大指出了现有实现的很多不足,如太复杂,不符合项目的特定需求,所以要我们自己重头去写。

在此问题上,我的观点一直都是鲜明的:只要已有的成熟的实现没有本质上的无法利用的问题,那么我们就不该重写。尽管几百行的代码在开发阶段不是个什么事,但是测试呢?维护呢?以后的扩展呢?几百行代码也许是一周的工作量(实际不止几百行,我在上面也part-time工作了不止几周了),但以后带来的工作量可不止这么简单。

可惜我说了不算。我强烈地反对过,但我无法影响对方,所以只能收回我的反对,乖乖地按着既定线路走。其实从个人的角度来说,重写这样的代码对我能力的提升很有好处,但对项目而言,真心没有太大益处,反而把时间和资源花在了本不该花的地方。

这个问题尽管只是个技术问题,深层次看是视野的问题。技术人往往容易沉浸于细节不能自拔 —— 我们太熟悉,太热爱我们所做的东西,所使用的工具,而忽略了更大的世界。此外,技术人员太高估自己的能力而忽视全局的后果 —— 我们对我们的能力和对进度的把控太自信(自负),以至于耽误了项目。

相对互联网人,这种视野的局限性发生在通信人身上的机会要大很多,我认为有以下原因:

(1) 通信人在一个封闭的生态圈,而互联网人在一个开放的生态圈。

在通信界,整个生态圈里使用到的知识产权很多都是需要购买的,而在互联网界,整个生态圈构建在开源,开放知识产权的基础上。在封闭的生态圈里,人的思维也容易封闭。当你使用「封闭」建立起护城河,拱卫你的城堡时,那么,除了自己的一亩三分地,你就会很少关心外面的世界。比如说我们做freebsd的做久了,都不知道linux系统下有那么多新鲜的工具,内核里有那么多先进的功能。反观互联网,开放使得产品有了百花齐放的态势,大家都赤膊上阵,敞开了竞争,结果是你必须不断关注最新最好的技术,这样一旦有需求,你会尽快验证。

(2) 做通信是大规模集团作战;做互联网是特种部队的「斩首行动」。

当然这个不是绝对的,只是一般而言。做通信很少有一个项目就几个人做的情况,至少几十人,而互联网项目起初几个人就够。当你只有很有限的资源时,你会尽可能「站在巨人的肩膀上」干活,整合一切能整合到的资源,把好钢用在刀刃上;而当你有很多资源可以使用时,如果没有一个清醒的认识,很可能会把资源整合到不必要的场景下。

视野的问题,如果只是出在执行层面,问题还不算大;但如果出在了决策层,则对项目会有严重的影响。现在做产品的思路和十年前大不相同了,很多时候比拼的是个整合(开源)资源的能力。instagram,whatsapp如果不去整合各种已有的资源,一上来就什么都要自己做,那必定无法快速地开发出供市场检验的产品。

MORE IN 工程管理与职场

同专栏延伸阅读

查看「工程管理与职场」全部文章 →

暴走的程序员

今天一篇 "a sad day for rust" 霸榜了 hacker news。actix-web 的作者 fafhrd91 在无法忍受 "unsafe shitstorm" 之后,决绝地将这个在各大评测网站名列第一的 web 框架下线了。一时间社区叫苦不迭,所有使用了 actix-web 作为依赖的项目,都受到影响。这件事的影响力虽然不如之前让半个互联…

天叔奇谈 (2013–2020)2,451 字 · 5 分钟

实习生娜娜

我对实习生的要求,除去学习能力外,便是足够长的实习时间。所谓「足够长」,我的定义是至少两三个月。小于这个长度,往往还没有开始贡献有价值的工作,实习生便带着写满好话的评定拍屁股走人了。 娜娜本来原定是六月初来实习的。然而因为她学校办理 EAD(Employment Authorization Document)令人发指的低效,她最终八月初才来报道。这个暑期,我…

程序人生 (2015–2019)4,528 字 · 10 分钟

ArcBlock 一周年

(一) 这是我开过的最艰难的一次长途了。从家到 springfield(中转站)570 英里,我早上 8:30 出发,下午 4:50 到。进入 Oregon 之后,天就跟漏了似的,一路时断时续的暴雨,有的山路已经形成洪流,车驶过的时候,轮胎被水流带着,方向盘都有些不听使唤。好在一路车少,有惊无险。 - 程序君 04/28/2018 岁月如梭,光阴似箭,湾区的…

天叔奇谈 (2013–2020)6,593 字 · 15 分钟