NeilKakkar译者
张健欣策划
陈思身为软件工程师,你要如何进一步成长?
年的时候,我开始在彭博社(Bloomberg)工作。从那之后,事情发生了很大变化。我不再是公司里最初级的成员了,而且我还指导过几个工程师,这真是太棒了。这有助于我观察自己与其他人的差别,吸收他们的最佳实践,并发现我不知不觉中已经做得很好的事。
每年的工作回顾是一个很好的方式来提炼我学到的经验教训。它们对于模式匹配也很有价值。只有我从特定模式观察时,才会发现问题。然后我就开始有意识地跟踪这些模式。
今年的宏观主题是扩大眼界并挑战边界。它还涉及到聚焦视野,以及向去年的章节中增加细微差别。如果你预先读过我去年的评论就更有意思了:你就可以区别出我的成长。
这些回顾都从一个问题开始:我如何进一步成长?
借助不同的抽象阶梯成长进入第二年的时候,我已经准备好所有的基础知识了。我已经摘完了所有低垂的果实,我的成长速度开始变慢。这种感觉很不好。我脑海中的最大问题就是“我如何进一步成长?”
我能做来提高我的编码技能的事情有限。大部分博客都讲,要编写简洁的代码、重复练习、不要重复等等,都是比较细微的建议。几乎没有任何一个博客的建议能对我产生立竿见影的效果。
不过,我确实发现了一些有见地的东西。我在软件开发周期内工作,但是这个周期是更大的一个周期的一部分:产品和基础设施开发周期。我决定接触得更广泛而不是更深入。令人惊讶的是,这种广度使得了解得更加深入。
我从三个大的方向展开:学习我周围的人在做的事情、学习良好的思维习惯、获取新的思考工具。
学习我周围的人在做的事情由于我不是在一个封闭的系统,这使得我能够更好地理解产品经理、销售人员和分析师的工作。最终,这是一门通过产品赚钱的生意。我们的目标不是编写代码,而不是做一门能盈利的生意。
大多数大公司并不是只做一件事,这意味着在同一家公司有几种不同的赚钱路径。每个人至少在一条路径上——如果他们不在,那么他们不会在这家公司。
跟踪这些路径以及自己所在的路径是非常有价值的。这帮助我明白了自己有多么重要,以及我可以利用哪些杠杆来提高效率。有时候,这是为了让销售工作更简单,这样他们就可以做更多的销售。还有一些时候,这是关于为客户构建一个新功能。还有一些时候,这是关于改进一个不断崩溃的功能。
产品经理是最好的来源。他们知道企业如何赚钱,谁是客户,以及客户需要什么。
在过去的一年里,我与我路径上的每个人都安排了几次会议。这给我的另一个好处是了解其他人的工作的上下文。这使得我可以更好地进行沟通。以正确的方式构思事物的作用是很强大的。
例如,一次谈话帮助我理解了销售部的Sarah想要一个批量更新工具。一些公司有许多员工,一个一个地更新他们的信息是一件痛苦的事情。我编写的代码可以减轻Sarah的痛苦。
学习好的思维习惯软件工程需要善于思考并作出正确的决策。编程就是实现这些决策。
思维习惯就是你的大脑经常做的事情。这可能是你看见Y发生的时候想到X,或者将思维工具X应用到问题Y。简而言之,思维习惯有助于更好地思考。
我怀疑自己如果早学会了这些一般技能,我应该能够更好地将其应用到软件工程中。
善于思考软件工程是一个很好的实践善于思考的领域。反馈回路更短,测量正确性不会花费太长时间。
我潜心研究认知科学。这是一项值得探索的永久技能——无论我最终做什么事情,它都能够帮助我,并在我的一生中都会带来回报。其中一个产出是批判性思维的框架。这是复合的,而复合是强大的。
这其中有很多好东西,我会稍后再谈。它们值得各自单独的章节。
提高日常工作效率的策略硬币的另一面是让你善于思考的习惯。它开始于注意一天中的小麻烦、会议的低效,然后找出避免这些问题的策略。这些策略性的改进是被低估的。
你决定要做什么,然后让它自动运行,解放大脑来思考更多有意思的事情。当然,那也是一种习惯。
我注意到的一些好习惯:
开会一定要做出决定或着有下一步行动,否则不要离开会议决定事情由谁完成。没有负责人的事情很少被完成的。记录项目期间做出的决策。这种模式是在回顾期间发现的,因此我很想