思考

编程能力到底是一种什么能力?

Tags:

-2019年3月6日

编程能力到底是一种什么能力? 这个问题对于招聘者还是求职者来说都是很重要的。
如果是面试者,知道这个问题的答案后就可以在考察一个人编程能力时着重考察是否具有某种能力,这种能力可以可以间接证明面试者编程能力的高低。
如果是求职者,知道这个问题的答案后就可以去学习相关方面的东西去专门训练某方面的能力,提高自身的编程水平。

要得到这个问题的答案,我们需要先给编程能力下个定义:
编程能力指的是用程序的方式解决问题的能力,并且产出的程序质量高(逻辑性强、抽象度高、扩展性好、简单易懂、性能好),如果编程的效率高那就更好了,但通常情况下时间效率的问题在实际工作中很少会成为问题,所以时间效率就不作为编程能力的特别要求。

由编程能力的定义可以看出,与编程能力相关的关键词有:逻辑、抽象、扩展、性能等。

逻辑表达的是人的逻辑思维能力,抽象能力表达的也是逻辑思维能力,这两个能力在我们学习数学和数学建模时运用的最多,换句话也可以说学习数学和数学建模就是为了锻炼这方面的能力。

扩展表达的也有逻辑思维能力,但也有设计的能力在里面。有人说,一个好的程序员是一个好的哲学家和设计师,说的就是编程从另一个角度来看,也可以说是设计程序,而设计的过程中可以融入一些哲学思想。这听起来有点高大上,好像有点脱离实际的味道,其实不然。再简单的程序设计中都有哲学思想的体现,再简单的程序不同的人实现出来总会不一样,而不一样就会有好坏之分。

性能表达的是编写程序的人对计算机和编程语言有深入的了解,这体现的是一个人的系统知识的多少。可以归结为通过学习系统知识积累的一种能力。

另外,决定编程能力的还有一种熟能生巧的能力。程序世界和现实世界是完全不一样的两个世界,这也是为什么你给家人说自己工作时往往需要解释半天也不能使他们明白你做的到底是什么的原因。在程序世界里,一些思维方式要通过大量的训练才能熟能生巧。一个高级程序员和一个初级程序员的区别就是,要做一个系统,高级程序员心里很清楚怎么去做,自己一个人就可以完成整个项目;而初级程序员多数时候可能会觉得无从下手,这也是熟能生巧能力的一种体现。

总结得出,一个人编程能力可以概括为以下几方面的能力:
a. 逻辑思维和抽象能力;
b. 设计和艺术头脑;
c. 计算机系统知识;
d. 熟能生巧的能力;

再回到一开始说的如果一个招聘者要找编程能力强的人,就可以从这四个方面去考察。如果一个求职者想提高自身的编程能力,也可以从这四方面入手,寻找相关方面的书籍去学习加强锻炼。

Leave a Comment