当能力达到顶峰时,
会有两极分化。
您是哪一种?
当您刚刚学习技术时,特别在编程行业,您是不知道将来的发展情况的。编程是一门大类,有着不同的编程语言和不同的程序员。但是,并非所有人都是大师,只有少数人可以得此殊荣。
通常,有两种类型的编程大师。
第一类工程师
对于一个复杂的程序,例如7个局部变量,5个循环层以及if嵌套,他可以赤手空拳地迅速了解程序意图、来修复漏洞,甚至不需要任何工具以及纸笔。
给出一个复杂的问题,可以在一个函数中完成,并立即给出正确的实现。该函数可能具有七个变量,5层循环以及if嵌套。没有废话,简洁到极致的代码就能解决,但是单个函数的复杂度很高,而且普通人可能看老半天才能理解。
////
///
//
第二类工程师
对于一个复杂的程序,例如7个局部变量,5个循环层以及if嵌套,他无法立即看出程序的意图,但他可以使用纸笔进行书写绘图,最后解决它。
提出一个复杂的问题,需要花费很长时间来解决。通常通过组合几个功能来实现。这些函数功能单一且清晰,通常是一个或两个变量,循环嵌套不超过2层。单个函数的复杂度很低,因此大多数人都可以轻松理解它。
////
///
//
两类工程师有什么区别?
第一类的软件工程师天生就很聪明,他们处理复杂事物的能力是与生俱来的。
根据认知负载理论,这些人的工作记忆能力超过了普通人。他们可以将多种因素整合到大脑中进行思考,而不会造成大脑超负荷。他们编写复杂的程序,普通人会觉得没有分而治之的编程风格。事实是他们的脑子太好了,以至于普通人为了克服认知超负荷而发明的编程方法,对他们来说完全就是多余的。
当面对更复杂的问题时,他们自然会逐步解决。缺点是他们没有刻意训练,他们根据自己的认知能力编写的程序对于普通人来说很难维护。
第二类工程师是具有正常才能的正常人。工作记忆的容量可能是少了很多。但是他们已经掌握了认知负载的解决方案。当阅读复杂的代码时,他们用纸和笔写下对小片段的分析,避免大脑缓冲太多的东西,然后分析这些问题的中间结果,始终让大脑不会负载太多的东西。
编写代码时,他们无法一次找出所有细节,因此需要分步进行,或者可以一步一步地实现关键步骤,然后集成整个解决方案。或者编写一个庞大而完整的框架,然后拆分实施细节。编写完后,经常会发现有些不完美,因此必须对其进行调整。
其特点是,无论采用哪种方法,大脑在任何阶段都不会超负荷。以这种方式编写的代码,也不会使读者的大脑负担过多。
////
///
//
团队需求
对于团队而言,我们希望工程师具有第一位工程师的天赋,与此同时,也希望编写出的代码应该与第二类工程师一样容易理解。
尤其值得关注的是第三类工程师,他们缺乏第一类工程师的才能,也没有掌握第二类工程师的技能,并且经常自己被自己编写的代码弄晕。
end.
领取专属 10元无门槛券
私享最新 技术干货