零、前言
一边听着窗外的雨声,人生的第三个十年已经转瞬即逝。人生果然是如白驹过隙。
今年是比较有重大意义的一年。原本举国期待的经济大复苏并没有到来,人口增长率、老龄化趋势不断加强,而此时国际形势也愈加复杂:全球军事冲突扩散、即将到来的全球选举年。这给后续的 2024 年的中国经济发展带来了很多不确定性。
人口出生率对公司的业务影响比较大,急需扩展业务,同时将本增效会是多次拿出来的法宝。市场上的候选人增多,面对各大公司都缩减岗位,开发者之间的竞争毫无疑问加大了。
本博客的宗旨是“用笨办法来应对不确定的未来”。在这个有特殊意义的时间点上,准备写一篇给过去的建议,送给十年前的自己,也为了给未来十年打好基础。
一、心态篇
1.1 降低预期,保持低消费
在人类历史中,动荡和战乱是长久的,而和平只是短暂的偶然。同时,高收益也不会一直持续,居安思危是永恒的话题。可能现在薪资还可以,但是可能并不会持续下去,要有行业消失的准备。
记得要保持低消费、不要大手大脚,或者至少控制不要有大额的贷款。
不要在大钱上豪放,而在小钱上抠馊。每个月随便几百一千花花娱乐一下,一年也花不了 1 万,但是搞个车贷房贷就轻松几百万花掉了,每个月还要还几千上万的房贷。
1.2 用普通人的方法一点一点积累自己的本钱
人的一大错觉就是觉得自己很特别,有时会觉得自己跟别人不一样。然而过往几十年的经历已经证明,你的智商、耐力、家世其实都没有什么特殊的地方。
可能个性也不是社交达人,技术上没有知名的开源项目,手上也没有什么知名的博客\自媒体。就是一名普普通通的人。
既然自己只是普通人,那么普通人的成长方式或许对你也适用。这也是本博客的宗旨。用笨办法,用普通人的办法来应对困难。
用笨办法,所谓慢即是快,一步一个脚印,投入最大的精力。或许能够有所收获,也许只是自我安慰,缓解一下焦虑。若是侥幸能够碰到一两个志趣相投的网友,也是不错的。
1.3 每一天都是新的开始,但最好是有成果的一天
如果每一天都在焦虑中过去,那么三个月后可能会更焦虑。
如果每一天都能够有所产出,写了一篇文章、增加了 5 公里跑步记录、打游戏又过了一关、又完成了几个编程训练,和家人打了一通电话……
这样的每一天都是令人感到欣慰的,也是任何人看到都会觉得非常充实羡慕的。
1.4 信息安全很重要,尽可能在网上保持匿名
近年来的一些事情表明在网上公开表明身份并发表自己的意见,有时候是一件有风险的事情。
可能并不需要去研究信息安全,仅仅是做到不使用真名来申请域名、账号不使用相同名称密码,不使用真实信息注册就能够避免很很多问题了。
但是话又说回来,只有千日作贼,哪有千日防贼的,百密一疏就有万劫不复的可能。
1.5 开发者也是普通人,并不存在任何超出常人的特质
人们谈到软件开发、程序员,往往会觉得这是一群聪明而有智慧,性格独特并且具备普通人不具备的能力,拥有一些神奇的技能。
普通人对一名程序员的印象可能是『格子衫、苹果全家桶、眼镜』、『不善言辞』、『与社会脱节』、『钱多话少死得早』这些刻板印象。我还记得刚毕业那会,觉得程序员应该人人都能访问国际互联网,掌握通向无阻碍信息的密钥。熟练掌握很多种编程语言,能够解决各种问题,在软件构成的世界中呼风唤雨。
当然,现在我作为一个开发者,可以说这些并不是事实。现在依然有一大批互联网从业者满足于百度搜索,只会工作岗位上使用的编程语言、框架,仍然会卷入互联网上各种非此即彼的论战,被缺乏论证的短文激荡起情绪。而中文社区也越来越充满似是而非的争论,更何况在日益严峻的互联网公共空间中,出现越来越多的举报、谩骂、互相攻击。
这么一说开发者/程序员跟普通人其实没有什么区别,只是程序员由于职业特性,对于『熟练操作计算机来解决问题』这项技能更为熟悉而已。他们的大脑与普通人没有什么区别,同样会被自小的教育所局限,被宣传蒙蔽,无意中使用各种逻辑谬误,写出的文章也未必充满逻辑与智慧,甚至编程能力也是千差万别。
可能这也是生活的混沌性,不同的经历造就了不同人的人生轨迹,我自己也是人类多样性的一份样本。因此倒也不必对他人抱有不切实际的期待,保持一颗平常心就好了。
二、财务
2.1 尽力赚能赚到的钱,然后努力早点退休
以往有人说如果一个人短期内薪水升得很高,后续会对自己的发展不利,因为心理上会无法接受更低的薪水。
既然我现在已经知道现在是什么情况,我会建议现在才 20 岁的你,尽可能的优先提升薪水、其次是提升职位。
如果有两份 Offer,一份薪资高但是职位平级,一份职位高但是薪资低,怎么选呢?很简单,职位是不花钱的,想给你专家也好,还是高级专家也好都是 OA 上改一下的事情,名头嘛。但是给你一个中级的薪水想升级到高级那可是真金白银的成本,会舍不得的。
更何况现在奉行的晋升逻辑是你得先证明自己有更高一级别的能力,作出贡献后才有可能被列入晋升名单。
所以比较合适的逻辑是尽可能的赚钱,把未来的钱都赚了,然后去研究怎么理财。
2.2 开始学习理财,进行投资、给自己、家人、宠物配置保险
程序员在工作一段时间后,互联网公司的员工大多数能达到薪资过万的水平。而且会不自觉的认为未来也能继续升职加薪下去。
但是就算不理会所谓的 35 岁魔咒,你确定工作到 30 多 岁了身体能够一点毛病都没有吗?
记得保险是越早买越便宜的,注意对个人来说买保险肯定是亏钱的,买的不如卖的精。买保险是为了在意外发生时能够兜底,不至于长时间没收入甚至返贫。
保险和贷款可能是普通人能够合法撬动的杠杆了。
2.3 对待金钱的方式,可能也决定了对待自己的时间、精力的方式
继续前面讲的,金钱其实是获得幸福的一种筹码,积累的金钱越多,就有更多的机会获得快乐。手上的筹码越多,选择的自由也更多,越没有负担,最后也就更容易幸福。
三、健康
3.1 强壮的身体和充实的头脑能够给自己极大的自信
运动的习惯不要丢掉,每天起床去小区外面跑几圈,周末去健身房撸撸铁,有时候就是一个激灵就蹦起来穿起衣服冲出门了。
不要熬夜,没有什么事情值得熬夜去写代码,如果有,那只能说明效率低或者工期安排不合理,或者是公司的系统架构太烂了需要到晚上去发布。
享受美食的同时也要注意你吃的东西最终将组成未来的你。经常在公司忙碌时往往会忽略饮食,经常是点外卖、或者在公司楼下随便对付一下,而周末就出去吃大餐,胡吃海塞,吃到扶墙。
有人说这是在用满足食欲来填满内心的饥渴,或许我本身不是内心十分充足的人。新谢随着年龄的增长不断减弱,这样饮食习惯会加重肝脏脾脏的负担,积累内脏脂肪,危害健康。
3.2 忽略身体反应而沉浸在工作中的最终结果可能是工作没做好,身体也垮了
现在工作中会觉得腰部麻木,头晕脑胀,这时候就要定时起来走走。而在 10 年前的你就要注意劳逸结合,好好使用番茄工作法,隔一段时间起来休息下,工作久了还得去逛一逛。
广大网友都说一天专注工作的时间最多只有四个小时,如果你从上班坐到工位开始,就持续工作到下班,是不是已经在透支健康来支付工作呢?
也许是时候花时间去研究一下工作方法了。
四、工作
4.1 设定自己的目标,以自己的目标为优先,利用平台增长自己的能力
最好不要把当前的工作仅仅当作是糊口的方式,不然每天都在纠结下一顿在哪里。
并且做事情需要聪明一点,尽量去总结自己的东西,在平台上积累自己的能力。
例如公司的工具链、组件等很好用,但是你一旦离开了这家公司,这些跟你都没关系了。
同时在这家公司里可以有可靠的同事,合理的流程,但是下一家碰到的可能是妥妥的草台班子,甚至你下一个团队可能根本没有流程,一切都是草草了事。
那这时候事情推进速度可能就非常慢,体验非常差,无法发挥你的实力。
一种可行的方式是搭建自己的工作流程,公司里有什么好用的东西,自己尝试实现一遍,放在自己的 1 人公司里。
4.2 想清楚谁给你评绩效,一件任务应该做到什么程度,你能从中获得什么
公司中可能有很多人会给你派任务,有例如需要排查问题、同事协作、直接领导甚至直接领导的上级也会给你派任务。
但是这里有个问题,你需要思考你能从中获得什么?或者专业一点,你在这个过程中的角色是什么?
如果仅仅是作为一个“前端资源”,照着别人画的方案来做实现,我想实习生也能做到。那么你大可不必去趟这混水,做好了显示不出你功劳,但是被挑出点问题就会被鄙视。
工作中是讲究投入产出比的,如果一件事情是无法衡量的,无法衡量你的投入的精力、也无法计算产出的内容、甚至无法在生产上验证最终效果,那最好不要做,即使要做,也要跟直属上级讲清楚时间、范围,并且绝对不要影响到已经定好的目标,并做好定期汇报。
杜绝为爱发电的行为,你想想自己花了时间精力不说,导致承接的业务需求降低,过程中的投入、最终的效果也不好衡量,最后还影响了绩效评估,最终直属领导给你评价的时候你觉得能给你打高分吗?
要知道这种额外的事情,本身就是计划外的事情,要消耗你更多的精力,还潜在的影响别的事情,不拿高分就是亏了。
如果有一个项目拉你进去,要想想你在其中的作用是否是不可替代的,这个项目有没有亮点,是否做成了能给你加分。如果都不行的话,等于是想白嫖你劳动力的,这时候要去干嘛,如果已经参与了,及早止损吧。
4.3 想清楚当前最重要的事情,并在这上面投入最大的精力
接上一个问题,我想在职场中需要时刻牢记的是,自己当前最重要的任务是什么。
- “有需求评审”,当然很重要,但是可以提前规划好评审会议,也要尽可能不参加临时的需求。
- “有线上问题”,当然属于紧急且重要,但是要想想这个问题是否只有你能排查?同时平时对工程的分析、重构、监控机制、良好的代码风格也能够减少出问题的机率。
- “协助排查问题”,是否只有自己能完成?是不是可以找其他人来处理,有没有简单的方式让他自助操作
“优先支付自己,有余力再支付他人”,我想这就是 20 岁的你需要了解的首要原则。
4.4 值得在效率工具、方法上投入时间,但重要的是需要执行起来
现在很多人都有效率成瘾现象,例如碰到跟效率相关的话题就忍不住打开、收藏。一年结束收集了很多这类文章,甚至是很多总结“总结知识整理文章”的文章,但是其实没有什么收获。
而且现在写的这篇文章本身就有一点效率成瘾倾向。
也就是说你计划要做的事情,可能并不是你真正想做的事情。
4.5 在职场中,想清楚自己的价值,然后不断的强化它、对外展示它
职场是非常现实的,也是能够碰到很多种人的地方。有的非常功利、有的非常热心,这都是很常见的。在复杂场景下尤其重要的是搞清楚自己的定位,而定位莫过于想清楚自己对他人的价值在哪里,不断地强化它,不断的公开展示它。
倒是不需要谈到价值就觉得很羞耻,看到别人的功利态度就想鄙视。你迟早也会学习这种做事方式的。职场中最核心的就是互相提供价值。
职场中大家都很忙,不大可能无缘无故的去跟你“交朋友”,搞清楚他想要什么就行了。以前那种等待社交恐怖份子发现自己,然后跟自己交朋友的桥段已经难以发生了。这时候需要提前想办法去展示自己。
很多人并不能简单的称呼为好人坏人,可能有好奇的询问,如何应对套话、如何对待诘问等,都是需要练习的内容。
4.6 最好每天都写工作日志,把每一件事情都写清楚,方便事后分析和回溯
虽然网友都说“正经人谁写日志啊”,不过在工作中随时记一下当前工作进度,被打断的原因,问题分析记录等,不仅仅在后续回顾的时候有用,就在写下来的的那一刻就能减缓很多心理压力。就像定期把脑子里的思绪 dump 到硬盘中,就可以专注于当前的任务了。
4.7 学习一些项目管理方法,虽然不一定有管理的岗位,但是这些技术都是有用的
比如可以看了解一下 PMP 的知识,不一定要去考认证,但是能够知道更正规的流程是怎样的,在项目开发中出现的问题知道怎么处理。
4.8 分清楚什么是技术细节,什么是上层抽象,以及警惕哪些试图说服你把技术当作细节的人
细节与抽象有时候是一个相对的概念,如果将做架构设计、画蓝图定义为上层抽象,那么做规划也是上层抽象,但是一行一行写代码就是是技术细节,模块之间的关系也是技术细节,以及具体使用哪一种语言也是技术细节。
在不同的场景下面,有时候需要侧重技术细节,例如在开发过程中必须关注细节,因为很可能因为一个符号拼写错误就会导致严重的 bug。但是在项目开始之前以及项目结束后的项目总结中,则必须要从尽可能顶层的视角来看待。
技术细节很重要,我们有时候可以不求甚解只关注要做出来的效果,可是在一切都上线后就需要回过头来整理留下来的技术债务。但是如果有人说技术是细节,业务才是核心,可能他也不知道业务究竟是什么。业务往往需要有一个载体来呈现,这个载体在互联网公司可以是代码、可以是系统、也可以是团队。
对公司来说当然要这么讲,问题是作为技术人员如果真的把技术当作“细节”不屑一顾,技术细节不应该是略带贬义的细枝末节的缩写,而是指掌握了核心技术之后,同时能够很好的理解业务,支撑业务,甚至可以提升业务发展。
4.9 业务是什么
业务 > 技术 > 实现细节
工作中常常听到说“要懂业务”,“业务是核心”,“业务是公司的重点”,“技术要服务于业务”。唯独没有解释一下业务究竟是什么。仿佛是一种不言自明的真理。
在我的理解中,业务要解决的是“客户是谁”,“用户是谁”,“我们能给客户提供什么”,“如何更好地服务我们的客户”,顺便解决“怎么收钱”的问题。业务最终是需要赚钱的。
*业务逻辑可以很简单*,但是业务价值可能不在于简单还是复杂,而在于有多少人愿意花钱买他的产品。
业务是可数名词。通常会按照大板块来区分,然后分为更细节的部分。
业务是有载体的,可以是销售团队,但是销售团队并不能凭空变出东西来卖;可以是售后团队,但是售后团队同样也需要有商品卖才能谈到售后;可以是平台系统,但是平台系统又不能自己出现;于是还需要产研团队,但是产研团队有时候也不能独自拍脑袋想一个使用场景,而是需要收集用户需求、分析痛点,设计产品并将其按质按量实现出来。
这么一说好像公司的每个部分都跟业务相关,但是并不存在单独某一个部分能够等价于某一业务的情况。
懂业务,有时候既指知道怎么让公司赚钱,也是指这个开发人员对业务代码非常熟悉,对整个操作流程了如指掌,更关键的是知道为什么要这么做,不那么做。
五、最后
偶尔将视线投往过去,占的较多篇幅的还是工作上的,是不是说明这十年之间有所成长,在职场有一点点自己的心得体会呢。
最后祝 10 年前的自己吃好、睡好,身体好。
晚安