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

软件工程师成长之路

软件工程师成长之路

题记

这是我的一次知乎直播的文字版,有删改。

大家好,我是陈天,是 Tubi TV 的 VPE,或者说,研发副总裁。不要被这个头衔吓住了,我这个副总裁,虚的要死,绝不是师级单位,也就大致是个小排长,所以咱们这个 live,是对等的,我不会端着,你也没必要恭恭敬敬的 :) 大家都是为了传道授业解惑而已。我常常开玩笑说见面不如闻名,一切你感觉到神秘的,厉害的所谓牛人,接触多了,也就那么回事。

我在介绍这次知乎 live 的文章里大致介绍了我自己,这里再啰嗦两句:我 03 年本科毕业后去了联想系的神州数码,05 年跳槽到了 Juniper,一家做网络设备的外企。在 Juniper 期间,我出差去硅谷,从此心底就种下了一颗去硅谷朝圣的种子。在 Juniper 工作的那些年,我得到了很多锻炼 —— 内部换了三个团队,从 data plane,OS / kernel 一路做到了 application,期间发表了四个美国专利,做了不少有意思的事情,并接手了一支十五人的团队。11年我和朋友一起创业做途客圈,获得了创新工场和金沙江的投资。这段历史可以去看我的书:途客圈创业记,这里就不赘述了。13年我离开途客圈,回到 Juniper,并在一年后,relocate 到 Juniper 美国。15年底,机缘巧合之下,我成功拿下 O1 签证,转投 Tubi TV,一直工作到现在。去年我组建了 Tubi TV 的中国团队,办公地点在望京索尼大厦的 wework。我们现在还有前端,后端和算法工程师的职位空缺,如果大家感兴趣的话,可以关注一下我之前的文章。我们的待遇还算优厚,有去旧金山出差的机会,对于优秀的人才如果自己有意愿,我们也会努力为他办理工作签证,肉身翻墙。

好,广告时间结束,下面进入正题。大家都很关心的,成长二字。

自信

我把自信放在第一位,是因为作为一个工程师,你无论是成长为技术大牛,还是团队领导,自信,都是不可或缺的关键素质。我相信这是大家都认同的。我们都是从小读着唐诗长大的,尤其是李白的诗歌。有没有发现,李白同学是个超级自信的主儿。你看他写出来的都是这样的句子:

比如苦闷抑郁时,他会拔剑四顾心茫然,话锋一转就:长风破浪会有时,直挂云帆济沧海(行路难)。 再比如有机会施展抱负时,仰天大笑出门去,我辈岂是蓬蒿人

你看他心态多乐观。我们虽然没有李白的出身,也没有他的才气,但是,我们可以有他那种积极乐观的态度。

所以我常常跟身边的人说要乐观。做人要开心。我之前在文章中引用过 Nail Gaiman 的一段演讲,我把它再读一遍:

I’m serious. Husband runs off with a politician? Make good art. Leg crushed and then eaten by mutated boa constrictor? Make good art. IRS on your trail? Make good art. Cat exploded? Make good art. Somebody on the Internet thinks what you do is stupid or evil or it’s all been done before? Make good art. Probably things will work out somehow, and eventually time will take the sting away, but that doesn’t matter. Do what only you do best. Make good art.

大家有空可以去 youtube 上看这个视频。好好体味一下。

现在大家都说生活多么多么艰难,那是我们看到了不如意的地方,陷入了 tunnel vision,而忘却了好的一面。想想你小的时候,看到什么都会很开心,蹲在地上看蚂蚁爬行都能乐呵地看很久很久。前两天晚饭我吃饱了撑的,真的是吃饱了撑的,拉着女儿在小区走路消食,走了三公里。一圈一圈的,她总是蹦蹦跳跳,给自己找乐子,在她眼里,什么都是开心的事情。我小时候也是如此。我老家在甘肃,小时候来北京旅行,火车做了三天三夜 —— 对我来说那是美妙的三天三夜,看不完的风景,以及形形色色的人。现在我们大多数人坐超过十小时的火车都会心烦意乱。我父亲是个超级乐观的人,前两天他来天津讲课,顺道到北京看我。上周六他的航班离开北京,结果早上的航班一路拖到了傍晚。我焦虑地不行,他却乐呵呵地说他好久没锻炼了,正好闲下来可以锻炼身体,于是在机场大厅里绕圈走,谈笑间走了一万多步。这就是乐观,什么事情都能看到积极的一面。春上春树在他的书里说过,我也引用了很多次:pain is inevitable suffering is optional。

所以我说乐观是自信的第一要素。在《少有人走的路》中作者说他在集中营那样恶劣的生存环境下,每天用玻璃片刮脸,保持衣服的立整,脸上挂着微笑,为的就是让自己看起来精神些,从而在内心深处不被击垮。

脸上挂着微笑。

乐观之外,要收获自信,还有一些重要的因素:

  • 不断尝试一些自己没做过的事情
  • 经历过足够多的失败
  • 面临各种各样的选择
  • 在某个领域让自己不可替代

我们先说尝试,去冒险做一些自己没有做过的事情。从我个人的经验来说,这种冒险,能极大地提升自信。我自己的职业生涯,一直在做冒险。从神州数码到 Juniper,从民企切换到外企的环境,是一种冒险。在 Juniper 内部,我先工作于 flow team,做最核心的 data plane。两年左右的时间,我把 flow 研究地非常透彻,把整个代码的脉络总结成了内部文档,那文档,被一个 director 戏称为葵花宝典,至今我的同事们也许还在使用。之后我主动要求换去了另一个团队,做 OS/Kernel,几乎是从头再来。我更深入地学习了 preemptive multitasking 和 cooperative multitasking,对系统的启动,内存管理,调度,中断处理,几款 CPU 的汇编代码都有了不错的掌握,之后机缘巧合,我从技术线转到了管理线,又合并了一个团队,从 OS 拓展到 application。

做技术我们需要拓展技术的广度。但这不是盲目地,蜻蜓点水般地拓展,而是在一个领域扎透后,再往下一个领域去扎。

在这个过程中,我还做过很多其他的尝试,我觉得写 patent 是一件很酷的事情,于是就尝试把自己工作中做的一些独创的解决方案提交了 patent。Juniper 内部有个技术委员会对 patent 先来个内部审理。在被拒绝好几次之后,终于,我的一个 hot patch 的 patent 通过了。很多事情是有偶然性的,就像网球运动员,不少一满贯选手,一辈子也拿不到下一个大满贯。为了证明自己不是个「一满贯」,我又陆续做了很多,最终第二个,第三个,第四个依此来临。

我以前是个很内敛害羞的人,对当众讲话极度不自信。所以我刻意在这方面做了很多尝试,从给自己的团队里做技术讲座,到给整个中国团队做 BBL,到去美国出差时,给美国的团队做 BBL。有次出差,我给我们美国的同一个部门的团队讲 systemtap,一个 linux 下面做 runtime tracing 的工具,定了一个二十人的会议室,结果来了好多人,站了一大圈,反响不错。有了这次的经验,一周后我订的一个主题讲 mesos,我决定干脆面向全公司做个大的,跟 training 部门特地定了在另外一个 building 里的全公司最大的一个培训室,可以容纳上百人,而且接了电话会议系统,我们其他 site 的同事也可以接进来,当然,由于时差的关系,也就是波士顿的团队可能会进来。我带着耳麦,站在讲台旁,身后是三个巨大的屏幕。结果 BBL 开始的时候,稀稀拉拉就坐了不到十人,电话会议上可能也就一两个人,我才讲了个开头,就走了几人,最后结束的时候,就剩下三四个华人同事捧场,尴尬地要死。不过我收获到的自信是:这么大的场地,我能 hold 住,这么大的场地下这么少的听众,我竟然还能厚着脸皮收放自如。

所以现在当众讲个技术话题,无论是中英文,我都没有太多问题。

我还做过很多很多尝试,比如创业,写书,跑马拉松,到美国工作。有些尝试,你需要做很多准备,征得家人的同意,把最坏的情况考虑清楚才能放手去做,比如创业,Relocate。但很多尝试,你可以立即去做。比如坚持每天写日记,锻炼身体等等。每次尝试,都能帮助我们收获自信,甚至,尝试之后的失败,也能帮助我们收获自信。

TED 上面有个很赞的片子,叫 what I learned from 100 days of rejection。很多人缺乏自信,不过是害怕经历失败,害怕被拒绝,或者说,不知道失败的滋味是什么样子。我奶奶跟我说过,毛主席要不行的那年,他们都觉得天都要塌下来了,那真是发自内心的绝望 —— 中国怎么能没有红太阳呢?结果,他老人家逝世后,天也没塌下来,日子还是照样过,后来还越过越好。所以,提升自信的一大方式就是经历它,经历失败。我在这次 live 的引文中说过:experience is what you got when you didn’t get what you wanted.

片中的主人公逼迫自己去做一些肯定会失败,肯定会被拒绝的一些事情。比如说问大厦的黑人保安,一个素不相识的大块头,借 100 块钱。他以为自己会挨揍,或者被骂,结果保安大哥就是很不解的问了句 why。所以你看,当事情没有想象那么糟糕时,再做类似的事情就不那么害怕了。他还做过一些有意思的事情,比如捧着一盆花,敲陌生人的门问能不能把这花种到你们家后院;在汉堡店问店员汉堡能不能像饮料一样续杯(在美国,软饮一般是免费续杯的)。这个视频我吐血推荐,大家这次 live 之后一定要看看,就当消遣也行。

当一个人自信的时候,他的身上会散发出强大的气场。你会觉得,我靠,他怎么这么牛逼啊。其实就是经历的多了,失败的多了,脸皮厚了,得失利弊看的淡了。

最后,不断让自己不可替代也是提升自信的一种手段,尤其在职场中。职场中,公司和个人在这一点上是对立的。公司希望每个人都可替代,不存在系统性风险;而个人希望自己不可替代,才能有足够的议价空间。让自己不可替代有很多方式,你可以成为某个领域最精通的那个人,比如门前抢点世间无二的因扎吉;你可以成为 team 里大家最愿意与你一起工作的人,你的存在能让其他人变得更好,比如NBA 勇士队的库里;你也可以让自己成为一个万金油式的人才,干什么都不赖,比如尤文图斯的赞布罗塔,可左可右,可上可下,可萝可御;或者成为那个被依赖的人,离了你大家玩不转,比如骑士队的詹姆斯。

这是自信。天生我材必有用。我们在数万亿颗小蝌蚪的竞争中脱颖而出,本来就是一件可以骄傲一辈子的事情了 :) erlang / OTP 号称自己的稳定性是 9 个 9,我们也是击败了 9 个 9 的对手,才屹立在这世间。

自律

接下来讲自律。苏东坡同学说:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。自律是什么,就是坚忍不拔的意志。我不知道在座有多少人看过梁启超先生写的李鸿章传,我对这段文字特别心有戚戚焉:

李鸿章之治事也,案无留牍,门无留宾,盖其规模一仿曾文正云。其起居饮食,皆立一定时刻,甚有西人之风。其重纪律,严自治,中国人罕有能及之者。不论冬夏,五点钟即起,有家藏一宋拓兰亭,每晨必临摹一百字,其临本从不示人。此盖养心自律之一法。曾文正每日在军中,必围棋一局,亦是此意。每日午饭后,必昼寝一点钟,从不失时。其在总理衙门时,每昼寝将起,欠伸一声,即伸一足穿靴,伸一手穿袍,服役人一刻不许迟误云。

这是自律的极致。

自律有什么好处?对我而言,它能让我节约很多时间,「下意识」地做一些事情。比如说我近十多年来一直早上都是五六点钟起床。最早北京没那么堵的时候我六点起床,六点半出门,后来太堵了,我就五点半起床,六点出门。这个习惯一直带到硅谷。我在 Sunnyvale 上班时,由于家和公司距离太近,经常不到7点我就到公司了,同事们十点十点半才上班,于是我有至少三个小时的大块时间,可以用来学习一些有意思的技术。那时我基本上把 github 上面的 awesome tech talks,还有 NDC,strangeloop,erlang solution,clojure west 等各种会议上我感兴趣的视频都看了个遍,然后有意思的内容再深入研究。就这样,我每天凭空比大多数人多了几个小时的时间。现在我在旧金山上班,依旧每日不到 7:30 到公司,有两到三小时完全属于自己的时间。这次出差回北京,我依然每天很早起床,在酒店游半小时泳之后,还常常在七点左右出现在办公室。

雷锋叔叔说,做一件好事不难,难的是做一辈子好事。自律是个很反人性的事情,如果没有「坚忍不拔之志」,很难坚持下来。但是坚持下来之后,你会发现,就像牛顿第一定律说的那样,一切都会惯性运作下去,就好像它是你生命中的一部分一样。

我们平时做很多事情,如果能「下意识」去做,那是最不耗神的。就好像饿了就要吃饭,困了就要睡觉 —— 你不用做选择,习惯的力量就帮你做出最好的选择。我去旧金山上班,每日要坐火车打个来回,在火车上,有 110 分钟,近两小时的,基本无打扰的时间供我享用,或者,浪费。大部分人在火车上玩游戏。Pokemon Go 红火的时候,前后左右全围着小怪物们作战。这是很无效地时间的利用。

我倒不是对游戏有太大偏见,吃饭等位的时候,陪老婆逛街老婆在试衣间的时候,拿出手机撸上两局,愉悦心灵,这是对碎片时间的有效利用。

一开始我在上下班的通勤火车上没有固定做一件事,有时候听 TED radio hour,有时候写代码,有时候看书,所以上车后先要花不少时间考虑和选择这样一大段时间,自己要干什么。这一想问题就来了。头脑中有不少值得做的事情,做选择就像西游记中四圣试禅心时猪八戒和黎山老母的对白 —— 不知大家是否记得 —— 观音普贤文殊分别化身真真,爱爱,怜怜:

把大女儿许配给你,二女儿会怪我 二女儿许配给你,三女儿会怪我

这就是非常形象的选择困难综合征。我们即便选了一件事去做,做这件事情的时候会为其他的事情没做而感到焦虑。

猪八戒怎么说?他说那就把三姐妹都招了吧,就算再多几个,你女婿也笑纳了。这就更要不得了,一心多用,贪多嚼不烂。

所以呢,后来我干脆把这时间固定下来写作。都是写的动作,足够单一,很容易形成习惯。

久而久之,我上火车后会很下意识地戴上耳塞,打开 atom,然后开始思考和码字,没有多余的想法,精神高度集中。这就是下意识的好处。

那么怎么做到自律呢?第一,先从严格的作息做起。你不必像我一样每日五点二十五起床,但你可以找一个最适合自己的节奏。把每日的时间切成大块,然后为每块时间赋予一件事情。举个例子:

早 5:25 起床。 6:00 - 7:30 上班。 7:30 - 5:00 工作。 5:00 - 7:00 回家。 7:30 - 8:30 工作。 8:30 - 9:00 哄孩子睡觉。 9:00 - 10:30 其它。 10:30 睡觉。

大的作息确定并形成习惯,再考虑进一步细分。就跟软件设计一样,大的接口没有敲定,过早优化没有意义。

第二,放下手机。这个其实我做的也不好。但我意识到了,最近在努力改。以前总觉得手机刷内容是碎片时间的有效利用,但其实这很容易矫枉过正,为了利用碎片时间而分散了注意力,进而碎片时间吞噬了大块时间。程序员或多或少有这个问题。我们在 build 的时候,deploy 的时候,不得不停下来等待这个步骤完成,所以会拿出手机刷刷朋友圈公众号什么的,本来想节约一两分钟的等待时间,却花了几倍的时间刷手机,反而大大浪费了时间和精力。

如果这两条做好了,已经算是自律做的比较好了。可以击败99%的用户了。

康德说:所谓自由,不是随心所欲,而是自我主宰。自我主宰不是一件简单的事情,人是受本能,欲望和冲动支配的,所有那些让人变得更好的选择,执行起来都不会太容易。

如果想进一步修习自律,我建议大家学习曾国藩的五勤六戒(择其善者而从之):

第一戒:久利之事勿为,众争之地勿往 第二戒:勿以小恶弃人大美,勿以小怨忘人大恩 第三戒:说人之短乃护己之短,夸己之长乃忌人之长 第四戒:利可共而不可独,谋可寡而不可众 第五戒:天下古今之庸人,皆以一惰字致败,天下古今之才人,皆以一傲字致败 第六戒:凡办大事,以识为主,以才为辅;凡成大事,人谋居半,天意居半 五勤:身勤(以身作则),眼勤(观察),手勤(习惯),口勤(相处),心勤(意志)

自信和自律是能够持续成长的基础。在此基础上,我们要学会自我学习,建立自己做事的方法论,学会做尽可能正确的选择,以及学会问有价值的问题,多问问题。

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 分钟