互联网围城(下):从技术奴隶到命运抗争
上篇文章中讨论了学习压力,年龄危机以及跳槽的风险等话题,稍显沉重。本篇文章书接前文,继续讨论剩下的话题:
- 技术真的重要吗?
- 以什么样的态度工作?
- 什么决定了职业发展?
以更积极主动的态度迎接行业起伏,虽说不能扼住命运的喉咙,但能挠一下命运的咯吱窝,也不失为一种抗争。
Fight against fate!!!
技术是否重要
什么是技术
要想讨论技术是否重要,我们最好先明确一下什么是真正的技术。计算机语言算不算?Spring 框架算不算?操作系统算不算?计算机网络算不算?要我说,算,也不算。
笔者刚入行的时候认为计算机语言简直是技术中的技术,根本中的根本。当时使用的开发语言是 C++,所以看过大量的 C++ 书籍,《C++ 高级编程》《Effective C++》《深入理解 C++ 对象模型》,每每用到一些 C++ 的高级语法技巧都颇为得意。现在回头来看,获益的不是对 C++ 语言本身的熟练,而是对 C++ 语言的底层实现的了解,这对后来的技能迁移起到了非常大的作用。
计算机语言是入行程序员的敲门砖,如果连计算机语言都搞不定,也很难从事互联网开发这个职务。但计算机语言也仅仅是个敲门砖。现在计算机语言的发展越来越高级,而高级的表现就是让开发人员将更多的精力聚焦到核心问题解决上。什么是核心问题?解决业务场景的问题是核心问题,而语言本身的使用不该成为问题。这就是为什么 Java、Golang、Python 等语言越来越流行的底层原因。虽然 C/C++ 的使用率也很高,但观察周围的团队在做技术选型时,除非是一直使用 C++ 作为技术栈,否则很少出现其他语言向 C/C++ 迁移的现象。刚入行的时候常常将自己限定在计算机语言上,说自己是某某语言研发,其实到后来,越是高阶一些的职务,对语言的要求会越来越低,更需要的是一种语言之上的技术能力。
回到刚才的问题,什么是真正的技术?笔者认为那些真正的技术必然是通用的技术。一项技术的迁移能力越强,其对个人发展的帮助就越大。所以计算机语言和 Spring 虽然都是技术,但是这些技术只聚焦在某个点上,是工具,是“术”。而一些计算机行业的基础知识,包括操作系统、计算机网络、设计原则、设计模式、数据库等基础知识,放之四海皆准,不论什么样的业务、什么样的场景都大概率会用到的技术,是真正核心的技术。
熟悉这些理论基础知识,相当于修炼了内功,理解了“道”,再看“术”的时候就会了然于胸,达到“草木竹石皆可为剑”的境界。
技术与业务的关系
经常有同学会纠结于业务与技术的关系,之前有团队内部的同学也向笔者提出过类似问题:觉得业务代码写起来没有技术含量,感觉不到进步,进而抵触了解业务知识,只想做一些低业务含量而高技术难度的事情。这种现象往往容易出现在那些特别关注自身技术成长的同学身上。
那么技术与业务孰轻孰重呢?我们首先来回答一个问题:技术的目的是什么?虽然不想承认,但技术本身其实没有目的,技术的目的是实现业务目标,而业务目标反过来要求技术实现更快、更稳、更强。一个强大到离谱却不产生任何业务价值的技术只能是一项无用的技术。所以技术和业务的关系其实更像是两条腿,一条腿迈得快,慢的那条腿就会形成拖累。只有高深的技术能力却不了解业务知识,那么这些技术能力就很难转换为业务价值;而空有丰富的业务知识却缺乏应有的技术能力,就会导致落地效果不佳,因为技术短板在竞争中失利。
有同学可能会问,那些聚焦于基础技术的职务不就是纯技术的工作吗?比如通信中间件、大数据组件、存储中间件等。笔者曾经在某互联网公司的基础架构部门工作过,这些中间件的最终目的还是要服务业务团队的业务目标。只不过因为公司足够大,大量的业务产生了相同的技术诉求,将这些技术点统一收敛到一个团队中维护。这个团队的业务就是这些公用的技术能力,其面临的更多问题依然是业务团队的使用场景问题。如果基础团队的同学丝丝毫不了解业务,也没办法开发出符合需求的基础设施,所以当年公司也要求基础架构团队了解所服务的业务。
我们再稍微将视野拔高一些,不论是技术还是业务都应该服务于公司和个人的发展。而对于个人发展,尤其是对于普通人而言,很难通过攻克某个技术难点而在业界产生巨大影响、拥有经济收益。多数人的路径是在一个公司或多个公司之间跳槽打工,以自己的知识技能和综合素质为基础,奔波于不同的业务场景问题解决上。
那么这个过程中什么样的素质对于个人发展帮助最大呢?我觉得最关键的是解决问题的能力,而纯粹的技术能力其实只是解决问题能力的一环。把一件事情做成与把一件事情做完相比,要求的能力往往不再局限于技术本身。可能要将复杂的现实问题转换为软件模型,这个过程涉及到行业的业务知识、客户的需求沟通、团队的洽谈合作。其次需要将软件模型落地,制定系统架构、设计组件交互、安排团队排期,再到测试、部署、实施、运维,以及业务能力的推广,甚至到最终业务的下线。在整个的业务生命周期中,技术可能仅仅是其中的某几个环节。
只有具备合格的技术能力和业务知识,才能真正有效地解决现实问题。
我对技术的态度
通过前面几节的讨论,不难看出我对技术的态度:技术更像是地基,技术能力越强,地基越扎实,地基越扎实楼就可以盖得更高。但夯实地基这件事本身并不会让楼变高,增高楼层需要额外的其他能力。这些能力可能是更高深的业务知识、更灵活的沟通技巧、风险控制能力、团队协作能力等。在 AI 能力越来越强的时代背景下,昔日那些独立且繁杂的技术难点将不再是问题,个人的竞争力就不再局限于单个的技术难点突破上,而是将现实世界复杂问题转换落地的能力。
技术是这个过程中的必要条件,而非充分条件。
技术不可谓不重要,但又切忌“技术是全部”。在埋头研究技术的同时,也将自己的视线往现实世界环顾,程序员的出路始于书本又不能限于书本,更需要一些入世的态度和能力。
工作态度
工作的目的
笔者之前在写过的文章《如何做好一个技术 Leader》《研发效率之殇》(注:已精简)中都提到过劳资关系以及公司的管理问题。那么站在个人的角度上如何看待工作以及劳资关系呢?
工作的目的是什么?这好像是个显而易见的问题:钱。但相对于普通的体力劳动而言,脑力劳动的收获如果只有钱的话,对于个人而言其实并不是一件好事。
脑力工作的内容往往需要一定的思考和创造性,不是机械式的重复,而思考和创造意味着能力是可以提升的。所以个人在工作中除了能拿到钱以外,更重要的是获得能力的提升。提升的能力又反过来为公司创造更大的价值,进而收获更多的钱和更多的成长,理想情况下是个螺旋递增的场景。但现实世界往往不那么理想,可能会在能力提升、做出更多贡献之后没有得到应有的回报。这就回到了之前跳槽与面试的话题上,为什么自由市场可以激活经济、激发创造性,因为市场会给创新者应有的奖励。对于个人而言,你的能力提升总会在其他公司得到认可。
我这么说并不是鼓励大家疯狂跳槽,不是提倡“此处不留爷,自有留爷处”的态度,而是要鼓励通过日常的反思、学习和积累掌握自己的选择主动性。知识技能、经验阅历并不会像树的年轮一样每年都自动地刻在身上,这需要反思、需要积累、需要刻意练习才能在身上形成烙印。笔者见过很多人虽然工作了很多年,但认知依然停留在刚毕业的时候,多少年来很少看书,只是被动地准备当前工作所需要的知识,缺少主动学习。虽然工作了很多年,干活儿也很熟练,但这熟练只是因为机械式重复练就的手熟,而非能力积累形成的成长。导致陷入了**“经历了很多,经验不多;工作了很多,成果不多”**的尴尬局面。
通过日常积累,时刻保证自己可进可退的选项,在公司不能给你应有回报的时候,依然可以通过市场的反馈掌握一定的主动权,避免落入“人为刀俎,我为鱼肉”的境地。
与同事的关系
参加工作后与同事共事在一起的时间甚至超过了家人,如何处理同事关系就显得尤为重要。
笔者在过去的工作经历中也与不少同事共事过,有些同事在公司时尚有联系,离职之后就形同陌路,而有的同事依然互通有无,偶尔还能组成饭局聊天侃大山,成了继同学关系之外的另外一段友谊。仔细思考一下与这些同事之间的相处过程,其实并没有什么特别的差异。但人与人之间的气场、沟通、相处有时候就很莫名其妙,说志趣相同可能有些飘渺,臭味相投也可能是关系融洽的原因。
所以也不需要太过刻意去维护一段同事友谊,讨好一个同事。很多时候就是因缘际会,自然而然。如果说非要有什么秘诀的话,笔者觉得真诚是最重要的。能在一个公司工作,智商上不会有太大的差距,一些相处手段可能让人在一些时间段内如鱼得水,但真正保持友谊长久的秘方,还是真诚。所谓:以利相交,利尽则散;以势相交,势败则倾。
无需刻意迎合,也不用太过意气用事。有同学可能会想到人情世故的用处,但根据笔者的观察和感悟,技术的特性在一定程度上保证了工作关系的纯粹性。人情世故固然有一定作用,但在互联网的技术行业里占比并不会太高。因为技术本质上要求的知识技能是构成技术本身的重要构件,这很难通过知识技能以外的手段来达成技术和业务目标。当然也可能有大神通的选手有瞒天过海的手段,这是笔者目前没有接触到的。
需要强调的是:不要带情绪到工作中,这是很幼稚的表现。大家因为工作聚到一起,根本目的还是在于工作产出。因为工作而产生私人情绪乃至上升到人身攻击,在笔者看来是很不成熟的职场表现。技术类的工作不像是文学艺术创作,其大部分内容都是理性的。将个人情绪带入工作会稀释掉理性的占比,最终沦落为口舌之争,于正事无补反而引来私仇,是真正的得不偿失。
职业发展
在文章的最后,再聊一聊职业发展这个更虚的话题。
说起职业发展,好像除了面试过程中会聊到,其他时间几乎很少提及。是什么因素在职业发展中发挥作用呢?笔者回顾自己的经历再结合参考周围的同事,发现运气往往至关重要。
这好像有违接受了这么多年的科学理性教育。但作为普通人,在时代的洪流中很多抉择都是在懵懵懂懂的状态下做出的。就单纯从职业发展的角度上来说,你进了什么样子的公司,从事了什么样的行业,结识了某个人,学习了某项技能等,都可能对你的未来职业产生深远的影响。而我们站在当年的时间点上,很难也几乎不可能看清哪个选择好一些。当初做出某个决定的那一天,其实命运已经站在了关键的十字路口,眼前风云变幻,而我们却视而不见,在日记上的记录都稍显沉闷,但命运齿轮的转动就藏在这些抉择背后。
古人谈及命理,常曰:一命二运三风水,四积阴德五读书。古代封建社会的阶级固化严重,社会风气上也更倾向于天命说;而近代的中国社会风云激荡,阶层固化尚未完成,人们常常相信“三分天注定,七分靠打拼”的豪言。但回头来看,普通人很难说能把握自己的命运,多数是被时代裹挟着前进。在什么时间点上做什么事情,进入了什么行业,成为什么样的人,通常是选择大于努力,而选择又伴随着运气。所以才有了“只有时代的企业,没有企业的时代”(注:引用)。
如果把人比做一个点,那么其所在的公司、所处的行业就是一条线,而整个时代背景、整个行业的周期就是一个面。蛰伏等待一个向上的周期,选择一个向上的行业,都对自身发展大有裨益。而如何选择,如何在命运的随机性中穿插一些自己的主动性,就需要个人掌握更多的知识和更高的认知水平。如果说命运的抉择决定我们踏上了某条道路,那么在这条道路上能走多远,还是在于个人的努力和操行。不论是古代还是现代,对个人努力的认可度不同,但都不否认个人努力的重要性。
说了这些,并不是让大家放弃抵抗,“生死有命,富贵在天”;而是要在莫测的道路上尽量多一些主动。回到我们职业发展的话题上,再言努力可能有些鸡汤,所以要多给自己加油。
这就是一个技术人眼中的互联网行业:既非烈火,亦非寒冰。有快速发展普遍高薪的靓丽一面,也有加班严重积劳成疾的黑暗一面。外面的人因为其靓丽而趋之若鹜,里面的人因为其黑暗而寻找退路。
新时代的赛博“围城”。