最近看了一篇文章(来自http://www.csdn.net/article/2013-08-19/2816613-Programmer%E2%80%99s-dilemmamer%E2%80%99s-dilemma),篇名为程序员困境:底层编码能力正逐步丧失。给出了两个相互矛盾的主题,完成任务和内功修炼。

l完成任务。尽可能利用现有的库或代码,来集成系统。对系统进行维护或简单的修改。在互联网知识共享和开源时代,以这种方式完成任务变得越来越可能。导致的后果的是,对底层知识的深刻理解越来越少,对软件工程的整体研发流程的理解越来越少。这一点在大公司表现尤为突出。

l内功修炼。所谓的内功修炼,就是对系统底层的理解程度、对软件开发流程的理解程度、对代码质量的理解程度。

笔者认为,两者都很重要。如果只注重完成任务,那么程序员的个人内功无法得到有效提升,对问题的理解能力和洞察力也无法得到提升,自然解决问题的质量和速度也无法得到提升。如果只注重内功修炼,可能会大大影响你的工作效率,由于不是在实战中修炼内功,内功修炼的质量也会受到很大的影响。

正确的做法是,应该将两者有机的结合起来,即高效的工作和系统的学习相结合。在解决问题的过程中,总是需要理解一些底层的细节,尽管相对于整个底层的细节来说少之又少,但应该把对这些细节的理解以文档或其他形式积累起来,这样日积月累,便会对整个系统细节形成深刻而系统的理解。既解决了问题,又通过实践深刻理解了底层细节。