一名好程序员究竟需要什么样的标准?
无数的人问过相似的问题:怎样样才能做一个好的程序员?
在答复这个问题之前,首先得明白什么是好的程序员,这样才有方向和目标,可是这事情太主观,可能各人的标准千差万别。
不谈那些传奇性的独自一人做出伟大事情的特例,也不谈什么上天入地,上帝大牛的诡论,以下是我比较认可的,在通常的项目开发中,一个好程序员的标准。
1、处理问题的能力
在项目开发中,一个程序员的能力等于其处理问题的能力。如果想有个尺度来衡量这个能力的话,一个程序员的能力可以用能完成任务的规模和难度来衡量。
由于难度上不好那么筒单的划分,并且在一般的项目开发中 (非研究性项目),任务的难度主要来自于任务的规模带来的复杂度,这里把任务从规模上大致的划分为1个函数=>1个 类=>1个功能=>1个模块=>1个项目。
更细致的划分时,函数、类、功能、模块、项目本身也有简单和规模大小之分。
◆ 一个初学编裎的人总是从最小的函数和类开始学习的;
◆ 一个程序员能基本无误的完成项目中的一个功能算是合格。
一名好程序员究竟需要什么样的标准?
在此之前,对项目的生产力为负,即为他布置任务、沟通和为他修补bug的时间其实要多于自己直接完成该功能的时间。也就是说,项目中存在这个水平的程序员纯粹是为了培养人才。
◆ 能较好完成一个完整模块的程序员算是较好的程序员, 也是一般项目中的主要幵发者;
◆ 能完成整个项目的裎序员才能算是好的裎序员,在多人 项目中可做主程。
什么决定了一个裎序员处理问题的能力呢?
我认为有如下几个因素:
2、知识积累
在同等水平的裎序员之间,一个对某领域问题有所理解,一个对该领域完全不理解,完成该领域同样任务的效率差了不止一个数量级。
这就是我们通常所说的经验的作用,这种经验可以看作是知识积累。—个程序员的知识积累很大程度上决定了其处理问题的能力。
3、自学能力
这是一个知识大爆炸,知识刷新频率让人无法追赶的时代。
一 方面,面对一个稍有难度的任务,难免会有超出自己现有的知识范围的时候,此时自学能力决定了你能多快的完成此任务;另一方面,你的自学能力决定了在平常的工作过程中,你积累知识的多少。
自学能力强的人,即便没有人指点也总能在项目的代码中学到东西;而反过来,学习意愿弱的人写的代码被别人重构后, 也不会想想,这段代码能否改的更好了以及为什么。
从较长的尺度上(比方一个人的工作生涯)来看,一个程序员知识积累的多少只决定于其自学能力和他对编程本身的兴趣。
一名好程序员究竟需要什么样的标准?
4、沟通能力
在一个分工明确的项目中,程序员需要和产品(策划)沟通来了解产品,和上级沟通以了解自己的任务,和同事们沟通以正确的了解要接入的模块。
在自己完成模块时让别人正确的了解模块的接口,在不写文档时,正确的口头沟通非常重要,需要写文档时,文档的写作能力也算做是沟通能力的一部分。
那么,怎样提高自己处理问題的能力?
其实转了这么大个弯,怎样样做一个好的程序员的问题可以转为问怎样提高自己处理问题的能力?
小编是一个多年开发经验的程序员,懂前台、Java、Python。今年年初整理了一批WEB前台学习资料作为粉丝福利,不管你是计算机专业想往WEB前台方向发展,还是零基础想要转行学习WEB前台,这份资料都能帮助到你,在自学过程中遇见问题了也可以随时问我。这是我的WEB前台裙,296-212-562,关于Java和Python的问题也可以在里面问我。
沟通能力、对工作负责任的态度、对代码的追求,很大程度上由性格决定,我不知道实际中怎样简单的去提高,这里只略微 的谈谈我对知识积累的少量看法吧:
1、培养兴趣,技术工作总是辛苦的,编程尤其如此。
如果你对此没有浓烈的兴趣,不能从编程本身找到很多乐趣,那最好就不要奢求能成为一个好的程序员了。对编程的兴趣也是我一般招聘初级程序员时最大的要求。
2、什么样的环境决定你有什么样的知识积累,决定了你的品味,决定了你会以什么方式来做事,这个除非有强大的意志力。
3、不要停留在自己学习的舒适区,如果你的工作仅仅是以前工作的简单重复,你会工作的很轻松,同时也很难有提高。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 一名好程序员究竟需要什么样的标准?