一名好程序员到底需要什么样的标准?

无数的人问过类似的问题:怎么样才能做一个好的程序员?在回答这个问题之前,首先得明白什么是好的程序员,这样才有方向和目标,可是这事情太主观,可能各人的标准干差万别。不谈那些传奇性的独自一人做出伟大事情的特例,也不谈什么上天入地,上帝大牛的诡论,以下是我比较认可的,在通常的项目开发中,一个好程序员的标准。

在项目开发中,一个程序员的能力等于其解决问题的能力。假如想有个尺度来衡量这个能力的话,一个程序员的能力可以用能完成任务的规模和难度来衡量。因为难度上不好那么筒单的划分,并且在一般的项目开发中 (非研究性项目),任务的难度主要来自于任务的规模带来的复杂度,这里把任务从规模上大致的划分为1个函数=>1个 类=>1个功能=>1个模块=>1个项目。更细致的划分时,函数、类、功能、模块、项目本身也有简单和规模大小之分。

在此之前,对项目的生产力为负,即为他布置任务、沟通和为他修补bug的时间其实要多于自己直接完成该功能的时间。也就是说,项目中存在这个水平的程序员纯粹是为了培养人才。能较好完成一个完整模块的程序员算是较好的程序员, 也是一般项目中的主要幵发者;能完成整个项目的裎序员才能算是好的裎序员,在多人项目中可做主程。

什么决定了一个裎序员解决问题的能力呢?我认为有如下几个因素:

在同等水平的裎序员之间,一个对某领域问题有所了解,一个对该领域完全不了解,完成该领域同样任务的效率差了不止一个数量级。这就是我们通常所说的经验的作用,这种经验可以看作是知识积累。—个程序员的知识积累很大程度上决定了其解决问题的能力。

这是一个知识大爆炸,知识刷新频率让人无法追赶的时代。一 方面,面对一个稍有难度的任务,难免会有超出自己现有的知识范围的时候,此时自学能力决定了你能多快的完成此任务;另一方面,你的自学能力决定了在平时的工作过程中,你积累知识的多少。

自学能力强的人,即使没有人指点也总能在项目的代码中学到东西;而反过来,学习意愿弱的人写的代码被别人重构后, 也不会想想,这段代码是否改的更好了以及为什么。从较长的尺度上(比如一个人的工作生涯)来看,一个程序员知识积累的多少只决定于其自学能力和他对编程本身的兴趣。

沟通能力、对工作负责任的态度、对代码的追求,很大程度上由性格决定,我不知道实际中怎么简单的去提高,这里只稍微 的谈谈我对知识积累的一些看法吧:

1、培养兴趣,技术工作总是辛苦的,编程尤其如此。

假如你对此没有浓烈的兴趣,不能从编程本身找到很多乐趣,那最好就不要奢求能成为一个好的程序员了。对编程的兴趣也是我一般招聘初级程序员时最大的要求。

2、什么样的环境决定你有什么样的知识积累,决定了你的品味,决定了你会以什么方式来做事,这个除非有强大的意志力。

3、不要停留在自己学习的舒适区,假如你的工作仅仅是以前工作的简单重复,你会工作的很轻松,同时也很难有提高。

原文地址:https://blog.51cto.com/14489558/2461465

时间: 2024-11-09 10:34:29

一名好程序员到底需要什么样的标准?的相关文章

(转载) 好的程序员到底好在哪里?

根据我的经验,成为一个优秀的程序员与年龄.教育或者你挣钱的多少没有关系.关键在于你的表现,更深刻的说,是你如何思考.我注意到我羡慕的程序员有一致的习惯,比起他们所选语言的知识.对数据结构和算法的深入理解.或者几年的工作经验--更多的是他们交流的方式,管理自己的方式,和根据他们精湛的技巧可以知道他们接触编程的方法很有意义. 当然,成为一个好的程序员需要的比任何人可以列举的都还要多,我不会基于这些实践的存在(或者缺失)而单独评判任何程序员.但当我看到时我确实能明确的知道,当我看到一个具有这些性格的程

程序员到底是一个什么职业?

为什么有人在技术造神 大家应该已经感受到,技术圈这两年已经和娱乐圈创业圈差不多的氛围了,这其实是有原因的. 最主要的原因是,创业公司和创业媒体越来越多,他们需要大量的程序员投身到创业这个高风险的行业中,而造神,正是让程序员们自动跳进火坑的绝佳办法.不是说程序员不能创业,我是说,创业媒体们故意模糊了创造和创业的界限,把程序员们的创造冲动偷换概念,鼓吹了太多不适合的人去创业. 另一个原因是,招聘成本高涨,CTO们为了能提升影响力,不得不频频出席各种大会刷脸.文笔好的再做做自媒体和技术社群,既能强化个

作为一名新手程序员该怎么成长?

作为一名开发者,自己既笨又没有准备,被老板知道了,我就要被炒鱿鱼了-作为一名新手程序员在刚刚进入到工作领域的时候,经常会有这种想法,这种想法会打击自己的自信心,特别是涉及到写代码的时候. 下面我要介绍一些关于新手开发人员可以提升自己的职业生涯和前景的关键策略,并且能够在工作期间保持一种健康的心态. 无论是你正在智通人才网找你的第一份工作,还是正盯上了潜在的晋升通道,在一定的程度上都需要跟其他开发者竞争,为了可以从中脱颖而出,下面这些关键的步骤可以帮你迈向成功. 1.找一种你喜欢用到工作中的语言.

做个程序员到底好不好

今天闲着无事,我们就来聊聊做个程序员到底好不好? 问题 我今年27了,大学学的是经济与贸易,我现在转行做IT可以转吗? 我大学学的是建筑设计专业,今年30,想转行做IT晚不晚? 我今年高三了,我想知道IT行业到底好不好?不知道志愿填那个专业好? ...... 程序员生涯 人的一生中,工作和婚姻很相像.选对了人和选对了职业道路是很难得.用<围城>中的一句话说,"外面的人想进来,里面的人想出去".IT行业就是这样. 都说35岁是程序员的一个坎,35岁是程序员第二次面临择业的时刻

一名好程序员具备的15个特征

1.令人印象深刻的技术技能 程序员有可能长年累月只使用一种编程语言工作,但如果他最近新增了一门编程语言认证,那么凭借多年的编程经验和新增技术技能,一定会让人印象特别深刻. 2.愿意学习 技术总是在不断发展的,程序员们今天的技术和能力有可能几年后便过时.重要的是程序员要擅于找到自己感兴趣的新趋势并把握参加继续教育学习的时机. 3.调试技能 创建代码只是程序员的一部分工作,当软件不能正常工作时,程序员需要做的是快速有效地找到问题的根源.与其盲目花时间进行修改,程序员更喜欢仔细调查和研究可能出现的问题

无论做什么事情都不可能做到一蹴而就,很多事情都是水滴石穿。那么作为一名Java程序员

无论做什么事情都不可能做到一蹴而就,很多事情都是水滴石穿.那么作为一名Java程序员当然也要保持不断学习的状态才能在这个领域站稳脚跟.那些工作了一定年限的技术人总有一天会感觉到自己遇到了职业瓶颈,这个时候如果你还是安于现状不去学习钻研的话只会被长江后浪推前浪 把你拍死在沙滩上了. 那么该怎么学习呢 ?学习什么呢?系统化的学习工作所需要的是基础知识,而不是到百度或谷歌查资料解决.这样有助于遇到问题后通过相关知识关联分析,也有助于搭建更合理的技术架构,或改进现有技术架构的不足,让知识形成协同效应.

如何成为一名优秀程序员

学了很久的Python一直原地打转,不知道如何学下去,这是很多新手都会遇到的问题. 我记得第一次接触 Python 是 2011 年,在逛网站的时候,无意中看到一篇介绍 Python 的文章,觉得这门语言很有特色,于是想系统地学习一下.怎么学呢,市面的上书籍琳琅满目,一开始你可能不知道看哪本,有两个方法,第一个是去豆瓣看书评,好书口碑一定不错,第二个办法就是问有经验的人,他们能给你最实际的意义.我的建议是入门书最好是能在一周到两周内能完成的,那些大部头书就不适合拿来入门,可以放到后面.入门阶段你

作为一名Java程序员,我为何不在生产项目中转向Go?

前方 作为一名Java程序员,我为何不在生产项目中转向Go?自Google在2009年发布Go语言的第一个正式版之后,这门语言就以出色的语言特性受到大家的追捧,尤其是在需要高并发的场景下,大家都会想到是不是该用Go.随后,在国内涌现出了一批以七牛为代表的使用Go作为主要语言的团队,而许世伟大神本人也在各种场合下极力推动Go在国内的发展,于是在这种大环境下,中国的Go开发者群体逐渐超越了其他地区. 那么问题来了,业余时间好学是一回事,真正要将一个新东西运用到生产中则是另一回事.JavaScript

一名资深程序员的自白!

在程序员岗位上工作了三十多年,我学到了也明白了一些事情,希望在这里跟大家一起分享: 看不到实物,客户不会知道自己想要什么 一个功能性原型系统的展示,能够省下无谓低效的赘述. 只要给予足够的时间,任何安全措施都不安全 安全是目前系统运维的重大挑战,我们每时每刻都想方设法来保护系统和数据,但是黑客只要成功一次,我们所有努力就极有可能都付诸东流. 系统被攻破后造成的影响,依赖于事前的准备功夫 如果能够预先估计防护系统失效的后果,做足准备措施,例如:把关键数据单独分离存储,对数据进行加密等,那么或许可以