当前位置

关于 "直觉"

认识这么一个程序员,工作挺努力,也乐于拓展自己的知识面,理论基础、开发经验什么的也算积累了一些了,但写起程序来就是给人一种有劲使不出的感觉;百思不得其解,终于一天想明白了,他的问题是缺乏"直觉"。

我认为,对于编程工作来说,大多数情况下程序员是在做选择:用 A 模式还是 B 模式?用 C 方法还是 D 方法?E 成员应该是公有的还是被保护的?用 gdb 跟踪还是 tcpdump 听包?... 乃至查找问题是用 google 还是百度一下?

我所观察到这个程序员的情况就是:可能有一半重大问题的选择上,他首先去尝试错误的方法,尝试失败了再去寻找下一个可能的方法,或者直接在这条错误的道路上继续前进。

什么是写程序的"直觉"? 直觉就是能下意识的做出正确的判断,或者能尽早醒悟到"我这样做是不是有问题?"。它是对以往经验的有效积累,能在很短时间内判断出最有效的路径的能力。

这种直觉能不能培养和训练?我想是可以的。后来私下和他就这个不足谈了谈,希望他以后能成为一个优秀的程序员。 :)

Topic: 

评论

领导就是领导

没错,直觉来自于经验的正确积累。用直觉去思考问题,有时候是讲不出理由的,过一阵子才能看出绝妙之处。

博主说的有道理。
窃以为这种直觉是经验、记忆、审美能力的综合体现。
有成功的经验,下一次碰到类似问题就可以照搬以前的方案。
但是这就需要有很强的记忆力,能从记忆的幽暗角落里把以前的经验发掘出来。
面临没有遇到过的问题时,从几个候选方案中选出那一个通常是符合你的审美观念的,而审美又和你的经验记忆有关。
除此之外,对待自己的代码的态度也非常重要,无法想象一个对自己代码要求不高的人能写出好的代码。

完全同意!

就好比有的人根本没有读过design pattern, 但是屏直觉写的应用也很合理并且健壮。而有的人虽然理论知识说起来一套一套的,但是设计出来的接口还是好看不好用或者既不好看也不好用。

我感觉所谓的有直觉,就是好比你需要预先知道你是在造一辆汽车,并且你能够下意识的按照汽车的轮廓和基本概念来做;而缺乏直觉就就好比把性能很好的两个轮胎装在机器人的两个腿下面。

培养直觉中。。。

这样的领导、师长我喜欢!

到底怎么样培养和训练呢?有没有具体的方案?急切关注中。。。。

老实说.... 我也不知道

回头俺改行开咨询公司的话说不定会做这项业务的,哈哈