程序员的编程技能随着经验的积累,会逐步提高。我认为编程能力可以分为一些层次。
下面通过两个维度展开编程能力层次模型的讨论。
一个维度是编程技能层次,另一个维度是领域知识层次。
编程技能层次
编程技能层次,指的程序员设计和编写程序的能力。这是程序员的根本。
0段―非程序员:
初学编程者,遇到问题,完全是懵懵懂懂,不知道该怎么编程解决问题。也就是说,还是门外汉,还不能称之为"程序员"。计算机在他面前还是一个神秘的黑匣子。
1段―基础程序员:
学习过一段时间编程后,接到任务,可以编写程序完成任务。
编写出来的代码,正常情况下是能够工作的,但在实际运行中,碰到一些特殊条件就会出现各类BUG。也就是说,具备了开发Demo软件的能力,但开发的软件真正交付给客户使用,恐怕会被客户骂死。
程序员程序是写好了,但到底为什么它有时能正常工作,有时又不行,程序员自己也不知道。
运行中遇到了bug,或者需求改变,需要修改代码或者添加代码,很快程序就变得结构混乱,代码膨胀,bug丛生。很快,就连最初的开发者自己也不愿意接手维护这个程序了。
2段―数据结构:
经过一段时间的编程实践后,程序员会认识到"数据结构+算法=程序"这一古训的含义。他们会使用算法来解决问题。进而,他们会认识到,算法本质上是依附于数据结构的,好的数据结构一旦设计出来,那么好的算法也会应运而生。
设计错误的数据结构,不可能生长出好的算法。
记得某一位外国先贤曾经说过:"给我看你的数据结构!"
3段―面向对象:
再之后,程序员就会领略面向对象程序设计的强大威力。大多数现代编程语言都是支持面向对象的。但并不是说,你使用面向对象编程语言编程,你用上了类,甚至继承了类,你就是在写面向对象的代码了。
我曾经见过很多用Java,Python,Ruby写的面向过程的代码。
Read full article from 程序员编程能力层次模型 �C 码农网
No comments:
Post a Comment