每个程序员都应该掌握的 9 个高级开发人员思维模型
“高级开发人员不是一个头衔,而是一种思维方式。”—— Bogdan Nedelcu
如果您之前曾与优秀的高级开发人员合作过,您就会知道这是事实。
然而,与此同时,这里的大多数教程和课程都侧重于教你最新、最炫的框架,而不是教你如何思考。
但是,尽管技术一直在变化,但原则和思维模式却很少发生变化。
例如,“己所不欲,勿施于人”在 2000 年前是有效的,在 2000 年后仍然有效。
不用担心,我会在这里帮助你😊
在本文中,我整理了一份清单,列出了我作为一名高级开发人员日常决策时使用的 9 种心智模型。请记住,这些是非技术性的心智模型。它们不包含任何架构或设计模式(这些内容留待另一篇文章讨论)。
以下 9 种思维模型可以帮助您像高级开发人员一样思考:
1. 帕累托原则- 20% 的原因会带来 80% 的结果。作为一名开发者,你 20% 的工作会给你带来 80% 的影响力。你开发的 20% 的功能会给你带来 80% 的认可。20% 的公司值得你为之努力。等等。帕累托原则适用于你生活中的方方面面。你必须识别并专注于那 20% 能带来回报的事情。
2. 帕金森定律——你会倾尽所有时间去做某件事,无论它需要多长时间才能完成。给自己100个小时去做一个副业,你最终也会花掉100个小时,即使它本来只需要10个小时就能完成。你正在学习的任何课程、正在开发的任何功能,甚至是你正在找工作,都是如此。这就是为什么你需要设定明确的截止日期。否则,你就会受帕金森定律的束缚,永远无法完成。
3. 类型 1 与类型 2 的决策(单向门决策、双向门决策)——类型 1 的决策不可逆,所以请慢慢来。类型 2 的决策很容易撤销,所以不要想太多。例如,在 SQL 和 NoSQL 数据库之间进行选择更像是类型 1 的决策。一旦所有数据都以某种方式构建,就很难迁移回来。但在 React 应用中,选择使用 Axios 还是 Fetch 获取数据则更像是类型 2 的决策。你随时可以切换回来,而且可以循序渐进地进行。
你的职业生涯也一样。你专注于哪个 JavaScript 框架,通常属于第二类决策;你可以随时切换回来。但是,在继续做个人贡献者和成为工程经理之间做出选择,通常属于第一类决策,因为保持你的技术优势并不容易(像“软件精通”这样的项目可以帮助你)。
4. 康威定律——软件系统的结构往往会模仿创建它的团队和组织的设计。更好的组织,更好的结构。如果你观察软件团队,就会发现它们是围绕每个成员的技术技能构建的。团队中有前端工程师、后端工程师、数据库管理员和 DevOps 人员。他们开发的软件将反映他们的沟通结构。例如,前端和后端将由两个团队必须同意的 API 分隔开来。等等。
无论何时,当你加入一个软件团队时,都要留意他们的沟通和组织方式。他们生产的软件的结构和质量都会与之相似。
5. 能力圈——这个概念出自查理·芒格。意思是知道自己知道什么,不知道什么。坚持你所知道的,直到它不断扩展。芒格提倡保持在你的能力圈内,精通你的学科。
大多数开发人员都拥有足够的天赋和智慧来达到最高水平,但很少有人能够真正做到。为什么?因为他们不了解自己的能力圈,也不努力去提升它。他们被各种炫酷的框架所吸引,从一个领域跳到另一个领域,最终把自己的职业生涯变成了一个怪兽。通往专业的道路其实很简单:专注和坚持。找到你的能力圈,坚守其中,并坚持不懈地拓展它!
6. 第一性原理思维——这种思维模式因埃隆·马斯克而闻名。即使你并不完全认同他的观点,他也一直在创造大多数人认为不可能实现的东西。马斯克声称,深入理解事物最简单的方法是将其分解成基本原理,然后从中推理。
就像物理学家一样。在这个软件开发被各种炫酷的框架和库所主导的时代,那些能够透过这些框架和库,理解其背后原理的开发人员,将能够轻松地驾驭这片疯狂的领域。
如果你研究 JavaScript 框架,你很快就会被它们那些花哨的功能(从钩子到上下文 API,再到 tree shake 等等)所吸引,而最终,你讨论的不过是一堆把虚拟 DOM、声明式编程、基于组件的架构等应用到同样经典的 JavaScript 上的范式。一旦你这样看待它,掌握它就变得非常简单了 :) 第一性原理才是王道!
7. 二阶思维——总是尝试思考后果(二阶思维)。这意味着在你做完每件事之后,都要问自己:“然后呢?” 例如,你对自己的工作很满意,但公司面临财务问题。他们可能会解雇你,所以你应该现在就去市场面试。
这意味着首先要克服恐惧,其次要提升技能。你可以告诉自己一切都会好起来,什么也不做。但二阶思维会让你意识到这是最危险的选择。高绩效者总是会考虑其行为的二阶后果,并采取行动。
8. 逆向思维——查理·芒格的另一个观点(我记得是某位德国数学家提出过这个原则,他只是借用了)。这个原则指出,一个问题的解决方案是问题的逆过程。所以,要找到解决方案,不要思考如何解决问题,而要思考如何创造问题。例如:我想提升到更高的开发水平。我应该怎么做?让我们思考一下,如何才能保持目前的水平。
不提升你的技能,为了不被解雇而尽可能少地完成工作,混日子,不要求更多,不去其他公司面试,你就会停留在那个水平(或者更糟,被解雇)。现在,把我说的反过来,你就找到了问题的答案!
9. 做正确的事 vs 做正确的事——这是清单中最后一个心智模型,但或许也是最重要的。我认为彼得·德鲁克是这个模型的创始人。这个原则也被称为效率与效益之间的区别。你可以做到最好。如果你做错了事,你就永远无法达成目标。
举个例子,一位前端开发者听说了 Kubernetes,就尝试学习它。他们疯狂地工作,晚上和周末都在写代码,还在云认证上投入了数百个小时。但他们仍然以前端开发者的身份工作,所以无法在实际工作中实践。在接下来的面试中,他们被问到应该精通的前端主题(TypeScript、测试、性能、架构),但他们却一无所知。他们所有的时间都花在了 Kubernetes 上。
这是时间问题还是纪律问题?都不对。这是用正确的方法做错误的事情。记住,效果比效率更重要。
就是这样。
在您的开发生涯(和日常生活)中应用这 9 种思维模型,您将拥有一种快速、直观的方式来快速做出正确的决策。
你想成为高级思维大师吗?这样你就能自信地交付成果,并获得高级开发人员的职位和高薪?
在此查看我们的免费培训,看看您是否有资格,我们也许能够帮助您!
PS:如果您希望我跟进有关高级设计模式、技术和心理模型的电子邮件,请告诉我:)
鏂囩珷鏉ユ簮锛�https://dev.to/dragosnedelcu/9-senior-developer-mental-models-every-programmer-should-master-1jlk