之前写过一篇文章,讲合格程序员应该具备的能力,你是合格的程序员吗?—合格程序员应该具备的12种能力。
里面提到了抽象能力,就我看来,抽象能力是软件从业人员最应该具备的能力。因为软件开发领域涉及到的概念太多。正如Brooks所说,为了获得概念完整性,需要我们具备很强的抽象能力,需要我们运用抽象能力去简化场景,屏蔽复杂性。
那么究竟什么是抽象能力?举个例子,我们所说的人,就是一个抽象的概念,不是指具体的男人,女人,高矮胖瘦什么东西都不具体。但比如“奥巴马”就是一个具体的人。
如果我来定义,抽象能力就是发现事物之间相同点或隐含联系的能力。
我们经常说软件复用,就是因为我们发现了不同场景下相同的东西,抽象出来而成为共用的组件,框架,平台。
那么如何培养这种能力的,抽象能力本身是一种思维能力,也就是说你只有不断的进行思维锻炼才能获得。
我现在总结出的一个技巧就是:随意挑选两个事物,可能是软件领域中的概念,也可能不是。竭尽所能的去找出他们之间的联系。我写的两篇文章就是关于这个方面的尝试,大家可以试一下。不要浅尝辄止,努力去思考,也可以google查一些资料。锻炼最好选取软件领域的概念。下面是我思考的两个例子:
足球与软件开发
厕所与网站
要想去打铁,就得去打铁。
这是一句法国谚语,要想提高抽象能力,就得不断的思考。
分享到:
相关推荐
2. **编程语言**:《程序员提高班纪事》涵盖了多种编程语言的相关知识。每种编程语言都有其独特的语法和设计理念,如C++的面向对象特性,Python的简洁语法,JavaScript的动态类型等。理解不同语言的特点,能帮助...
这类题目有助于评估应聘者处理抽象问题的能力。 ### 知识点三:如何准备程序员面试中的逻辑题 #### 1. 复习基础理论知识 扎实的基础理论知识是解答逻辑题的前提。建议回顾数据结构(如链表、栈、队列)、算法...
3. 抽象能力:软件开发中经常需要处理抽象概念。课程可能会教授如何将复杂问题简化成易于管理的部分,如何建模,以及如何使用类、对象和接口等面向对象的抽象。 4. 认知潜能开发:这可能涉及到大脑科学、记忆力训练...
7. **问题解决能力**:试题往往通过设计实际问题来测试候选人的分析和解决问题的能力,这包括理解问题、抽象问题、设计解决方案和实现代码的能力。 8. **编程实践**:实际编程题目的出现,可能是让你编写一段满足...
“逻辑”、“思维”、“益智”和“测试”这些标签进一步强调了这套题目的性质,它们不仅有助于提高程序员的逻辑分析能力,还具有娱乐性和挑战性,对大脑的锻炼有益。而“100”则表示题目的数量,提供了一个全面的...
它深入浅出地介绍了如何运用程序员的思维方式来解决日常生活和工作中遇到的问题,旨在培养逻辑思维、分析能力和抽象思维技巧。 书中首先阐述了程序员思维的基础——逻辑与推理。逻辑是编程的核心,学习如何构建有效...
C++黑马程序员学习资料,附赠《InterviewGuide第四版By阿秀》、《LeetCode刷题手册》、《背包问题九讲》、...C++拥有计算机运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
通过《软考程序员辅导 程序员考试辅导教材》,考生可以系统地学习到以上各方面的知识,并通过大量练习题加深理解,提高解题能力。这本书对于准备参加软考程序员考试的人员来说,是不可或缺的参考资料。
代码重用是提高效率的关键,它是指将具有共性的部分抽象成方法或类,而不是简单的复制粘贴。测试是程序发布的重要环节,通常包括开发者自测、交叉测试和公司内部评审,确保程序质量。在估算工作时间时,要坚持...
文中提到“我能抽象出整个世界”,表达了作者作为程序员具备很强的抽象思维能力,能够将复杂的世界用简洁、清晰的模型来表示。 ### 2. 重载与覆盖(Overloading and Overriding) “我可以重载甚至覆盖这个世界里...
C++还引入了STL(标准模板库),包括容器(如vector、list、map)、迭代器、算法等,极大地提高了开发效率。同时,C++11及后续版本引入的新特性,如auto关键字、lambda表达式、右值引用等,也使得C++更加现代和简洁...
《程序员的思维修炼》这本书是为那些希望提升自身思考能力和编程技能的程序员量身打造的。书中主要探讨了如何通过有效的思维方式和学习方法,来提高解决问题的能力和代码质量。在这个数字化时代,程序员不仅需要掌握...
Java程序员面试是一个全面考察应聘者技术能力、问题解决能力和沟通技巧的过程。面试通常包括投递简历、电话通知、笔试、一轮或多轮面试等步骤。在面试中,表现出积极主动的态度和解决问题的决心非常重要。 面试题...
作为程序员,面试不仅仅是技术技能的展示,也是沟通能力、问题解决能力和个人职业素养的综合体现。这样的文章可能会包含以下几个方面的知识点: 1. **技术准备**:面试前的准备通常包括对常用编程语言的深入理解,...
理解并熟练掌握这些数据结构的特性,能帮助程序员设计出更优化的算法,提高程序性能。 2. **高级程序员**:作为高级程序员,不仅需要精通至少一种编程语言,如C语言,还需要理解软件工程的整个生命周期,包括需求...
10. **软技能**:除了技术能力,良好的人际交往、表达和领导能力也是程序员不可或缺的素质。书中可能会探讨如何提升这些软技能,以在团队中更好地发挥作用。 通过深入理解和实践这些知识点,程序员可以逐步提升自己...
人类能够在没有直接经验的情况下通过想象力和推理来理解和操作抽象概念,而AI程序员的抽象思维能力大多依赖于事先编程的规则和模式,限制了其在复杂决策和原创理论发展中的应用。 ##### 3.3 情感理解局限 情感理解...
抽象思维能力有助于程序员从宏观的角度去理解系统架构,更好地控制和优化程序的性能。 5. 问题分析与解决能力:在日常工作中,程序员经常要面对各种技术难题。具备良好的问题分析和解决能力,能够迅速定位问题所在...
例如,在“数据结构”部分,可能会出现关于链表、树、图的题目,考察考生对于这些抽象数据类型的理解和操作能力;在“算法”部分,可能会有排序算法(如冒泡排序、快速排序)、查找算法(如二分查找、哈希查找)的...
模式编程是一种将常见问题的解决方案抽象化、模板化的方法,旨在提高代码的可读性、可维护性和重用性。这种编程方式可以帮助程序员在面对复杂系统设计时,借鉴已有的成功经验,避免重复发明轮子,从而提升开发效率。...