工作 6 年的成长和思考
引言
前段时间收到了公司的一封邮件,告诉我入职四周年快乐。突然发现自己已经「很老了」,回头一看已经大学毕业快 6 年,算上之前大三就开始实习的经历也就是差不多工作 7 年的时间。想起早在 2018 年的时候我在 Google Calendar 上标记了一个 2021.1.1 提醒的未来日程,列出了一些未来三年应该达成的事项并到期发生邮件提醒。在 2021 年那个时间节点上看了下过去,整体感觉自己做得还不错。但最近这几年似乎缺少了对未来的思考和规划,这也是为什么要写这篇文章的原因,回顾一下这 6 年谈下自己的一些思考,基于当下这个时间节点下的认知,期望自己未来变成一个怎样的人。
过去与现状
自 2016 年大三的时候开始在 MIUI 实习,到 2019 年离开小米,我的第一段工作经历大概三年不到的时间。在未参加工作前,由于在高中时代和大学工作室的一些经历,让我对互联网大厂是充满期待的。那个时候比较纯粹也比较技术,想通过 coding 能改变这个世界,改变很多人的生活习惯,做一个伟大的产品。真正工作后发现其实就是在做一些「互联网打螺丝」的工作,挑战性不足做的产品影响力也不够。于此同时心态也逐渐发生了一些改变,变得更加的现实,会觉得自己当前赚钱不够多,不能满足自己未来的一些物质欲望。稚嫩但一些现实的想法,在 2019 年我还是离开了小米去了字节。
当时的字节大家更愿意称之为「头条」,那个时候抖音已经成型但还没有当下这个阶段成熟,我仍然做着电商相关的业务。在字节的四年主要做了三件事,刚加入时参与电商 C 端交易链路的开发,之后去负责做了国际化电商相关的 B&C 侧业务,再之后也就是现在做低代码相关的事情,每一段经历都有一些不同的感受。
从 0 到 1 再到 N
在之前的工作经历中作为核心研发/负责人,完成了 2 个从 0 到 1 的产品都是在字节。第一个是 2020 年的时候国际化电商也就是现在的 TikTok Shop,从用户侧交易链路到商家侧工作台,负责带领一些同学完成了第一版开发。但由于当时一些政治因素国际形势的原因,TikTok 被美国和印度等封杀导致实际业务最终没能上线(虽然代码已经上线了),这里也勉强算成是到 1 了。整个过程我们大概花了 4 个月的时间。
第二个产品也是我现在在做的事情,由于 TikTok 电商当时一直生死未卜,我又回到了国内电商业务开始负责做页面可视化搭建投放平台。这也是一件从 0 到 1 的事情,我们大概花了 2 个月的时间完成了第一版上线。目前这个平台已经平稳运行了两年多的时间,从某种角度来看算是一个成功的产品。
现在再回头去看这些事情,和当初会有不同的一些感受。以前总会觉得从 0 到 1 是一件很艰难的事情,要做很多的事解决很多未知的困难。现在当我把这个事情已经做到了 1,反而觉得这个过程是最简单的。当初我们用了 2 个月或者 4 个月就能把一个大型产品做上线,确实非常有成就感。现在为了把这个 1 做到 N 我们已经用了两年多的时间,很多问题其实在 1 的时候就已经已知,但是到现在还是没有很好的解决。在这个漫长的过程中自己的耐心和一些想法,以及当初的一些成就感会被逐渐的消耗,逐渐意识到几个问题:
- 从 0 到 1 很简单,难的是从 1 到 N;
- 面对和解决一些已知的问题或风险可能要比解决一些未知的问题或风险可能更难;
- 面对复杂问题只有判断力是不够的,与之对应强的执行力也同样重要;
第一点很好理解,就好比做题从 0 分考到 60 分大部分人都会,但考到 90 分 100 分却需要一个很艰难努力的过程,期间需要花费的精力远多于 0 - 60 的过程。所以我现在并不觉得从 0 到 1 做了一个产品是一个值的骄傲的事情,值的骄傲的是把这件事情做到了一个什么样的高度上并能说服自己。
第二点有点抽象但也好理解,比如开发一款产品,前期就调研好了需要做什么样的能力,以及要提供怎么样的性能和体验。其中非常明确的问题就是功能问题、性能问题,不明确的就是过程中遇到的一些产品或者技术问题。但后者在实际过程中可能会并不会那么棘手,反而那些已知比如初期规划完整的产品功能、优秀的性能,最后是长期难以解决的问题。
第三点和第二点是结合起来看的,在字节关于领导力原则方面有一条是讲在复杂问题上有判断力。我的理解上这句话只有前半段,实际对应的执行力也是相同重要的。结合第二个例子,在复杂产品规划的初期可能我们做了很多方案和功能,也判断了哪些地方应该重点去做,但最后实际效果是做了一个大而全的产品,只有宽度缺少高度。这不是一个好的结果,造成这个问题很大的因素还是关键事情上的执行力不太够。这里需要重复强调的是在关键事情上的执行力,对于整体而言我们可能执行得不错,但在核心的地方缺少关键的投入和结果是比较容易致命的。
如何看待技术能力
现在的我对「技术」的看法对比刚进入互联网行业时候的我有了很大的改变。在高中时代就自学编程以及运营技术社区的我对技术最开始是有比较多的执念的,大学志愿全部计算机专业,励志做出伟大的技术产品。现在我甚至认为数年后可能不会从事纯粹的互联网行业,以研发的身份作为长期的职业,不过写代码一定会是一生的爱好和习惯。
这个转变我认为和国内的技术土壤以及自身想法有一定的关系。国内的科技公司大部分是互联网公司,而国内互联网基本是做技术产品应用,很少有基础技术的研究。短期看不到「商业价值」的基础技术研究是很难行通的。另一点是在这个行业时间长了后,发现真正专心做技术的人其实非常聪明,自己投入度和他们在这方面差距较大,长期这样发展自身在这方面不会有优势。同时在国内的环境也不能持续得到发展,那还不如加入应用技术的行列,通过现有的一些技术和方案做些有意思的产品,也是很有意义的事情。但是作为一名工程师在任意技术级别上,持续提升自身技术能力和技术判断力仍是一件让自己保持核心竞争力的关键。
如何提升软素质
「软素质」是一个很抽象的概念,在职场中非常重要,在一定阶段之后它甚至比个人技术能力更重要。如何提升「软素质」在之前给我带的一些同学讲的时候,总是感觉缺少一些方法论或者可实操的路径。后面在 catchen 的一篇博客中发现了一个好的解释,这个方法不仅适用于提升软素质,理论上这是一个通用模型,对于全方面能力提升都适用。
整体而言,软素质提升是没有可以明确实操办法的,如果有那就相对于一个「纯函数」了,有着确定的输入输出大部分人都能轻松的掌握,但实际并非如此。但可以把这里类比成 AI 中的「模型训练」每个人关于软素质的认知和模型不一定是完全一致,但模型是接近的、相似的,最后做一件事情的结果也会是类似的。比如我们要让 AI 识别图片中的猫,只要保证最终识别出来的是猫而不是狗就行,至于模型可以不断的训练。而训练模型在初期比较关键的一环就是人工的数据标注,用于初期训练的原始数据。
人工标注就是问题的关键了,也就是过程中需要有及时的反馈。在实操的过程中就会变成遇到一件拿不准(当前模型无法准确识别)的事情时需要让更高一个维度的人(你的 mentor/leader)帮你做判断(人工标注和反馈),基于此不断反复的做训练,训练次数上升后就会形成一个比较完备的模型得到正确的输出。这个过程非常的形象并且可被实操,对于其他方面的能力提升也是比较适用的。
未来会是怎么样
如上面所提到,我不认为自己会一直呆在互联网大厂,如果需要一个时间期望是在 35 岁前,对于时间更重要的是想做好的事情有没有做成。并不是如圈内所说的 35 岁危机,对此也一直不认为这是个问题。但未来还是期望人生能有更多的可能性,现状还是需要努力工作能让未来的这种可能性发生,未来也不一定是去赚更多的钱。但目前确实也没有想好之后要做什么,这只是一个长远的规划,如果那天想明白了就离职。
这会和每个人的人生观有很大的关系,还记得多年前面试美团,终面的面试官不聊技术问题,一直在和我聊哲学问题,关于「人活着的意义是什么」。当时我给他的回答是「为了快乐」,虽然时间过了很久,一些认知也发生了变化,但对于这个问题上的思考,我仍然会和当年一样。于此也问了下最近很火的 ChatGPT 关于这个开放性问题,得到的答案和我的想法是非常契合的。
短期内还是希望能一直把当下的事情做好,就会是一件快乐的事情,也算是给自己一个交代。不期望自己工作 10 年后发现只是打了 10 年工,没有做出一个完整且出色的事情来说服自己没有浪费人生中如此宝贵的 10 年。