论逻辑思维和理解能力对程序员的重要性
我带开发团队,喜欢把手底下成员分为4种类型。
- 1、逻辑思维厉害且理解能力好的人
- 2、逻辑思维厉害但理解能力差的人
- 3、逻辑思维一般但理解能力好的人
- 4、逻辑思维一般且理解能力差的人
这样分有助于更好的分配任务和控制风险,比如:
- 第一种逻辑思维厉害且理解能力好的人,这种一般都是高级程序员了,团队的骨干,那么一般会把核心的复杂的模块安排给他完成,过程中的设计、编码都无需操太多心,只需最后检查一下完成成果即可,给他更多的自主空间。
- 第二种逻辑思维厉害但理解能力差的人,这种一般都是刚毕业不久,工作经验不多,那么可以由简单的模块到复杂的模块来培养他,过程中的设计和编码习惯要合适的点拨一下。
- 第三种逻辑思维一般但理解能力好的人,这种一般都是工作经验丰富,但开发能力又一直提升不上来的,一般把一些类似的模块,有参考的模块给他做就行,基本上都能保质保量的完成,不用操太多心,但千万不要把一些复杂的状态多的模块安排给他,后果就是会留下一个深坑在这里。
- 第四种逻辑思维一般且理解能力差的人,这种人一般在团队呆不了多久,留团队中也可能只是一些苦活累活,像报表开发、文档编写、BUG修复等。
一个团队中不可能所有人都是第一种人,这四种人基本都会存在,所以通过这种方法还是能够有效控制风险保证研发项目按时完成,但是所操的心还是不会少,太累人,一个团队还能支撑,要是同时多个团队那肯定是一场灾难,直到遇见了敏捷开发,才感觉自己在技术团队管理上提升了一个台阶。
逻辑思维是什么?
- 1、逻辑思维是人的理性认识阶段,人运用概念、判断、推理等思维类型反映事物本质与规律的认识过程。
- 2、逻辑思维放在编程中就是数据库状态字段设计得好不好,代码中的ifelse运用得好不好。
- 3、如何提升逻辑思维能力,可以读数据结构和设计模式两本书,反复训练自己的逻辑能力。
理解能力是什么?
- 1、理解能力是指一个人对事物乃至对知识的理解的一种记忆能力。
理解,有三级水平:
低级水平的理解是指知觉水平的理解,就是能辨认和识别对象,并且能对对象命名,知道它“是什么”;
中级水平的理解是在知觉水平理解的基础上,对事物的本质与内在联系的揭露,主要表现为能够理解概念、原理和法则的内涵,知道它是“怎么样”;
高级水平的理解属于间接理解,是指在概念理解的基础上,进一步达到系统化和具体化,重新建立或者调整认知结构,达到知识的融会贯通,并使知识得到广泛的迁移,知道它是“为什么”。 - 2、理解能力放在编程就是理不理解代码规范,理不理解代码分层。放在业务中就是理不理解这个功能,理不理解这个业务场景。
- 3、如何提升理解能力,通过学习积累建立属于自己的知识体系,编程技术体系、业务知识体系等,不能只是知道它“是什么”,而是要知道它是“怎么样”,还要知道它是“为什么”,通过这个过程才能转变为自己的知识体系。
真实经验:
当年在开发HIS系统的时候,我们老板给团队招了一个牛人,研究生毕业,还在学校当过老师教过计算机课程。所以当初在分配任务的时候把住院护士站模块的开发安排给他,因为住院护士站业务最复杂,要对接各个子模块的数据。最后在系统将要上线,进行系统间各个模块的集成,才发现他做的是什么玩意,根本跑不起来,特别是医嘱执行生成费用的算法,因为医嘱的类型很多,包括药品、材料、说明性医嘱、项目、检查检验等不同类型的医嘱生成的费用是不同的,做得一团糟,逻辑混乱,真是剪不断理还乱,最后没办法只能把这个算法重写,浪费了大把时间和精力。从此看人的技术绝对不再以单纯的学历和经验来判断了。