
点击上方蓝字关注灸哥聊程序员职场

点击上方蓝字关注灸哥聊程序员职场
在当今这个超级“卷”的时代,作为长期奋战在一线的“老”程序员,深刻感受到作为一线程序员想成为一名优秀的技术人,不仅需要🐂🍺的技术能力,还要具备良好的底层思维能力。而我今天要介绍的这四个,正是一线程序员必须要关注和培养的最基础的四种思维能力,如果一名一线的程序员可以熟练运用这四种基础的思维能力可以帮助程序员快速进入新的行业领域,在分析、定位和解决问题上有着非常大的帮助。
抽象思维是程序员解决问题的基础能力,是指从具体的问题中抽象出普遍性的规律或模式。具有抽象思维能力的程序员能够从繁杂的问题中提炼出核心要点,将问题进行简化和抽象,从而更好地理解问题的本质,并设计出更加通用和灵活的解决方案。
抽象思维能力可以帮助程序员将相似的事物归纳为一类,可它们之间的细微差异。当遇到陌生事物时,运用抽象思维能力可以将它与已有的知识和经验联系起来,提高解决问题的效率。举例来说,当我们面对一个陌生的动物时,尽管我们不知道它具体是什么,但是通过抽象概念的比较,我们可以将它归类为猫科动物,而不会错误地将其视为其他动物,比如马。
抽象思维能力的重要性不可言喻,甚至是可以决定一个程序员能力水平的上限的,一个抽象思维能力强的程序员,往往能从复杂的需求或者问题中直击本质。这也就是在工作中常见到一些人总是能抓住需求或者问题的重点,总能看到很多人看不到的,总能快速给出有效的解决思路和方案。
程序员的本职核心任务就是写代码,而代码的本质是用来解决实际需求或者问题的,通过抽象思维能力把需求或者问题的本质抽象出来,然后再抽象到你的数据模型,代码结构,最后通过实际的写代码过程来实现需求或者解决问题。
结构化思维是程序员解决复杂问题的关键能力,是指把问题分解成更小、更易处理的部分,并组织成清晰的结构。具有结构化思维能力的程序员能够将复杂的问题分解成多个相对独立的子问题,然后分别解决,最终将各个子问题的解决方案组合成完整的解决方案。
下面是一组看似杂乱的数字和字母:
2, 4, f, 8, n, 4, 2, 3, 7, d, b, a, h, e, k, m, i, 3, g, j, 9, 6, 5, 1, 1, 0, c, l
如果要求你在一分钟内记住它们几乎是不可能的。但如果重新排列下这些数字和字母,变成以下形式:
0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n
你是不是就可以在一分钟内记住了呢?
这个过程就是结构化思维能力的运用。当面对大量杂乱信息时,人的处理能力有限,正常人更容易处理有规律的信息。程序员在平时的日常工作中,需要处理各种各样的信息,那如何将这些信息有序地吸收并整理成能够使用的知识就显得十分重要了。比如个人知识体系的构建就是结构化思维能力的应用场景。
结构化思维是一种层级分明的思考方式,它从整体到局部,让思维更加有条理。它会借助一些思维框架来辅助思考,将碎片化的信息进行系统化的思考和处理,从而扩大思维的层次,使思维更加全面。没有结构化思维的话,想法就会显得零散混乱,而结构化思维则能够帮助建立有条理、清晰的思维路径。
结构化思维最经典的学习书籍就是《金字塔原理》,同时这本书也被王兴列为美团四大名著之一,入职美团新人必读书籍之一。
归纳思维是程序员总结和提炼经验的重要能力,是指从具体的事实和案例中提炼出普遍性的规律或原则。具有归纳思维能力的程序员能够通过总结和归纳过去的经验,发现其中的共性和规律,从而为实际的工作提供指导和参考。
在解决问题时,很多程序员都常常急于追求快速解决方案,但这种表面性的方法往往只是治标不治本。他们习惯于处理表面问题,而忽视了问题的根本原因。尽管这种方法看似迅速,但实际上存在许多潜在隐患,一旦问题再次出现,或者出现技术债务的时候,所付出的代价将更加巨大。事实上,最快解决问题的方式是从根本上着手解决,尽管这样的方法可能不会立即见效,需要投入更多的精力和时间,但在问题尚未严重到无法挽回之前,提前介入并彻底解决问题才是最明智的选择。
当了解事情的前因后果,且掌握了事情的全貌和结构时,就已经基本了解了事情的真相。归纳思维就是一种能够从具体事例中总结出一般规律和共通结论的思维方式,它帮助找到问题的根源,并采取有针对性的解决方案。在生活中也经常运用归纳思维能力,比如乌云密布、蚂蚁搬家就可以推断要下雨了。
持续不断地归纳总结,不仅能提高程序员的工作效率,而且还能够积累经验和提升能力。程序员在日常工作中,要从问题的本质出发,多问几个“为什么”,需求根因才行。
分层思维是程序员设计和开发软件系统的重要能力,是指将复杂的系统分解成多个层次,并在不同层次之间建立清晰的关系和接口。具有分层思维能力的程序员能够将系统的功能和责任分配到不同的层次中,从而更好地组织和管理系统的开发和维护工作。
程序员在做系统架构和设计时,现在常用的就是分层思维,比如基于 DDD 的 COLA 就是经典的四层架构,比如最早的 MVC 经典三层架构,都是基于分层思维逐步演进和设计出来的。

当然在运用分层思维进行系统架构设计时,也是离不开抽象思维能力的,是需要用抽象思维能力先提取出共性的层次来。

你可以一无所有
但决不能放弃学习
关于程序员底层思维能力这方面,建飞兄的《程序员底层思维》一书写的非常棒,程序员朋友们,可以基于这本书逐步关注和培养自己的底层思维能力,欢迎留言交流各种底层思维能力!
原文作者:灸哥漫谈;如有侵权,请联系管理员删除。