记得之前在知乎上看到一个问题:怎么样才能做一个好的程序员?下面的答案五花八门,有说要代码敲得好,少出bug;有说要有沟通能力;还有的说要懂得自律……那么,到底怎么样才能做一个好的程序员呢?优秀程序员一般都具有哪些能力呢?
综合来讲,其实评判一个程序员是否优秀的标准就一个:就是解决问题的能力。
在项目开发中,一个程序员的能力往往就等于其解决问题的能力。假如想有个尺度来衡量这个能力的话,一个程序员的能力可以用能完成任务的规模和难度来衡量。
因为难度上不好那么筒单的划分,并且在一般的项目开发中(非研究性项目),任务的难度主要来自于任务的规模带来的复杂度。
更细致的划分时,函数、类、功能、模块、项目本身也有简单和规模大小之分。
◆一个初学编裎的人总是从最小的函数和类开始学习的;
◆一个程序员能基本无误的完成项目中的一个功能算是合格。
在此之前,对项目的生产力为负,即为他布置任务、沟通和为他修补bug的时间其实要多于自己直接完成该功能的时间。也就是说,项目中存在这个水平的程序员纯粹是为了培养人才。
◆能较好完成一个完整模块的程序员算是较好的程序员,也是一般项目中的主要幵发者;
◆能完成整个项目的裎序员才能算是好的裎序员,在多人项目中可做主程。
不过解决问题的能力不是天生就有的,也是通过持续不断的学习培养起来的,那么是什么决定了一个裎序员解决问题的能力呢?
一般来讲,主要有以下几