工作9年了!

Posted 程序员小灰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作9年了!相关的知识,希望对你有一定的参考价值。

小灰的一位朋友是微软的技术大牛,到现在已经在微软工作了九年。今天,我带来了他的一篇文章,里面归纳了他这九年来工作的思考与感悟,希望对大家有所帮助。文中的“我”不是小灰,而是这位朋友。

不知不觉间,我已经工作整整九年了,对于这九年的工作历程,我想总结成两点:第一,职业生涯很长,不必急于一时。第二,要时刻保持充足的精力。

如果只用一句话,那便是过去多次提及的自己作为职场人的自我要求——要做一位身心健康的专业人才。在此,再一次分享下面这幅老图,我一直以此践行并觉得受益匪浅。

我试着发散地回顾过去九年来的职业发展历程来谈谈感悟,一时间思绪万千,难以收敛,便用纸笔记下了脑海里涌现的观点,然后简单整理写出了这篇文章,一篇充满了大量碎碎念观点的文章。

实话说,我并不认为这些观点新颖和震撼,或者说我不希望你们读了之后是这样的感受,我希望你们读了之后更加坚定地相信和践行一些朴素的观念。

我不认为我所有的观点都正确,或者适用于所有的具体场景,甚至未来自己可能会推翻某些观点我也不会惊讶。我希望将当下认知水平认为正确的表述出来,同时,非常欢迎不同的观点来帮助我突破思维定势。

关于职业能力(专业、技术和技能)

相比程序员。我更加喜欢被称作软件(开发)工程师,因为它更准确地描述了我的工作和职责。

软件(开发)工程师不熟悉软件工程,甚至低估或忽视,是一件很不称职的事情。要记住,功能始终是集成的结果,而不是实现的结果,而集成更多关乎工程。

我不钟爱特定的编程语言、工具和技术,也不想当它们的布道者,我主要关注怎么利用它们能够解决所在领域的问题。这并不妨碍我佩服那些优秀的布道者。

编程语言真的发展很慢,如果从语言范式的角度看。担心编程语言太多学习不过来的可能都没认真学习和使用过一门语言。

研发通常是一个繁杂问题而不是复杂问题只要踏实细致地做好编码、构建、集成、发布,以及每个环节应该有的测试,这便成功了大部分。如果你对这些一知半解,那就尝试认真设计和实现一个应用。

帮助理解软件系统复杂性和不确定性的Cynefin模型

了解一个人的技术能力,要从他/她使用过什么技术栈实现过什么程序、服务或应用出发,而不是知道多少技术栈。

算法和数据结构很重要,地位如同学科里的数学。然而,偏科肯定是只适合于最顶尖的那一小撮人,目前技术面试普遍侧重考察“奥数题”肯定也是大错特错的事情。

测试很重要,因为目前软件的正确性还需要通过测试验证。然而,从这几年的面试经验看,拥有测试好习惯的人真的很少,足以形成优劣的分水岭

每一个优秀的软件工程师都应该追求工程卓越(Engineering Excellence)简单来说,即追求敏捷(快、稳和安全)。 

代码写得频繁并不一定是一件好事,尤其当这部分代码不该那么不稳定的时候。

别陷入自动化陷阱。只有成熟稳定的流程才能有效地自动化。自动化不能天然解决流程混乱问题,反而更容易增加执行的成本。现在机器还无法比人更灵活,它只是比人做得更快,前提是它做的事情是正确的,它无法去修复错误的事情。

如果能够熟悉且解决手头的大部分技术问题,那便已经成为专家了。

如果觉得做的事情没什么技术难度,那想想如何实现非功能性指标的2/5/10倍增长。如果一筹莫展,那表示还没真的熟悉所在的技术领域。

完成比完美更重要,尤其对于软件世界。因为软件的“软”便于以更小的代价通过迭代逼近完美,而一开始追求完美更有可能偏离正确的方向。

无论是功能性需求还是非功能性需求,以量化的指标来衡量和跟踪目标很重要。如果指标不可信,它带来的问题可能比没有指标差不多严重。

不该割裂地看待职业能力,尤其是对于硬技能和软技能。完备的职业能力肯定是需要软硬兼备的。其中,最核心的是问题解决能力

要有技能心态——任何有价值的技能都有相当长的从入门到精通的发展过程。

Multi-Tasking是一种能力,而不是一种好的状态。好的Multi-Tasking能力并不表现能够同时进行多少任务,而表现在能够持续完成一个接一个的任务。

许多优化电脑效率的策略同样适用于人脑,比如整理碎片。

无论是人还是系统,持续进步的关键是建立一个稳定和高效的反馈环路——执行、反馈、反思和调整。

控制自己能控制的,观察能影响自己的并且建立足够灵敏的风险检测和应急机制。

手写是一个奇妙的却容易被低估的方法。想不清楚就试着写下来,哪怕只是些关键词。包括代码。

沟通是一门核心技能,需要持续去学习和提高的。

当抱怨沟通太多影响正常工作的时候,问题的根源通常更可能是有效的沟通太少了。这个时候首先要做的是更多更充分的沟通,而不是刻意去减少沟通时间。后者通常并不能解决问题,而只是将问题藏起来,甚至会酝酿成更恶劣的后果。

关于职业发展

职业生涯理应很长,我们应该可以从身边的人知晓。如果不能,那么我建议换个环境。

面临新工作的抉择应该选择跟人还是跟事?虽然我过去的经历偏向于跟人,但是我并不认为应该有一个固定的答案,甚至不认为两个选择肯定是一正一负。也许选择一条自己不后悔的便足够了。

影响晋升的三要素包括绩效、匹配下一个职级的能力,和预算/位置。三者不可或缺。然而,唯有能力是自己能控制的,同时我们总容易高估自己对绩效的影响力,并低估预算有可能的变动。

软件工程师职业发展模型

别让职级的高低定义和限制自己。职级的变化通常都是滞后于能力和职责的。

要关注自己的业务掌控力多于自己实际上承担的职责。当你的业务掌控力大于职责范围,你便有机会做出更多的贡献,以及承担更大的职责。如果你的业务掌控力少于职责范围,好消息是你会有一个非常明确的改善方向,坏消息是你在当前职责下做得不够好(你必须承认这一点)。

每次被问到,自己在工作中学习不到知识怎么办,我都惊叹他们怎么都不担心工作上的问题。我想,单单是解决工作上遇到的问题通常已经足够保证学习了(有效的持续学习70%源于解决工作中的问题)。

关心平均水平的,通常都是在平均线以下的。

关于职场

职场问题本质上还是人际关系问题。我们的生活六七成时间都在工作,人际关系不愉快是一件非常痛苦的事情。

唯有建立起一个良好的心理安全环境,人们才愿意分享想法和问题。

建立信任至关重要,首要的便是要坦诚对自己坦诚,对他人坦诚,他人才可能对自己坦诚。

斗争精神和合作精神并不冲突,最根本还是利益问题。要懂得寻求共同的更大的利益。查理芒格说,“如果你要说服别人,要诉诸利益,而不要诉诸理性。”

随着mentor的人越多,便越有机会感受到助人的快乐,同时越有机会从别人身上学习到好的方面而快乐。

当你为别人的不可理喻的言行而愤懑,先冷静下来,考虑对方是否有自己所不了解的情况,要用于和别人沟通,澄清和解决真实存在的冲突。这一点真的帮助我化解了许多不必要的误会。

不能将管理看作控制,我们能管理好的从根本上看只有自己,无论是在向上、向下或者平级管理中。

要做好自我管理无非要管理好能力和期望的匹配:知道自己能帮助别人什么,别人能帮助自己什么,自己希望别人帮助什么,知道别人希望自己帮助什么。 

多思考自己怎么做得更好,如何做得更少但获得一样好的结果,既包括让自己少做一些,也包括让客户和合作伙伴少做一些。

关于生活

身体健康高于一切。要抽出时间锻炼心肺和力量,要保持规律和均衡的饮食习惯,要有充足的休息,以维持良好的体适能。

工作生活平衡(WLB)说的并不是时间分配上像天秤两边那般平衡,它说的是时间分配和自我期望之间的平衡。每个人所期待的平衡点各不相同,甚至同一个人不同时间点所期待的平衡点也不同。追求所有人一致的平衡是不现实的,也不有利于多元化和包容性。

WLB是良好的时间管理或精力管理的结果,而不是加入了某公司或某部门就能自然而然获得的状况。

要定期自问自己想成为什么样的人或不想成为什么样的人,这有助于我们更自信地做出许多重大决策。

成长并不是知道的越来越多,而是做到的越来越多。这就好比人生大道理,知道却做不到的时候是鸡汤,从知道到做到才能明白且坚持践行。

要践行增强学习的策略去生活和工作:大部分时间从既定的机制获取反馈,而保留少量的试错去探索更多可能性。


工作九周年的碎碎念便到此为止。虽然真的很杂碎,还觉得还有许多方面没谈到,但完成比完美重要。

感谢你能够耐心阅读到最后。如果上面有只言片语对你有所帮助,我便觉得这篇文章值了。

如果有什么感想和意见,欢迎留言区交流。

以上是关于工作9年了!的主要内容,如果未能解决你的问题,请参考以下文章

阿里巴巴和腾讯的职级体系与对应的待遇是啥样的

公司对不同职级能力抽象要求的具体化

因为加班少,我竟然被劝退了!

最新 955 不加班的公司名单(2022版)

印象 2017 工作篇

大厂P6职级提升攻略