程序员成熟的标志

程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员会对自己有一个自我评价,但是,自己的评 价和社会的评价、专业的评价会有差异,所以程序员自己并不能肯定这个评价。现实中,除了各种证书之外,很少有人会专门给出一个程序员的成熟度的评价。人们往往是偶发性地就事论事地对程序员的工作作出好与不好,行与不行的评论。因此,程序员对此感到很茫然,不知道要从那些方面去评价自己的能力。

一个程序员到底成熟不成熟,我想从以下几个方面谈谈自己的看法。

1、技术标志

如果程序员不会编程序那决不是程序员,程序员至少要掌握一门程序设计语言,要能够用这种语言去编写程序去解决他想解决的问题。但是,成熟的程序员往往掌握不止一种程序语言,三到四种语言的掌握是必须的,一种二种语言的精通也是必须的。
除了从掌握程序设计语言个数之外,我们还可以从其他几个方面去看看程序员在技术上水平。例如,函数编写能力(命名、格式、大小、分类、参数、复用等),面 向过程的能力,面向对象的能力,数据库技术能力,效率处理能力,安全处理能力,网络处理能力,软件构架能力,人机交互能力,通用软件能力,软件文档能力等 等。尤其是面向对象技术的掌握和运用,以及面向服务的技术都是成熟程序员所必需掌握的。

2、时间标志

虽然程序员的天资、素质、基础知识各不相同,所经历的工作内容以及环境也不相同,但是,时间也是程序员成熟程度的标志之一。一般程序员需要经过三到五年的 时间才能日趋成熟。其中入门需要一年,成长需要两年。这是我经过长期观察得到平均数据。我并不认为成熟时间越短程序员就越聪明,就越了不起。享受每个阶段 充分的时间,会让自己成长更加充实、更加成熟。当然,也有超期而不成熟的情况,这也是很正常的。

3、项目标志

程序员的社会性是程序员成熟的标志之一。没有参加过项目的程序员,程序编得再好,只能是纯程序类的程序员,是一个孤独的高手,是一种个人型的程序员,远没 有成熟。项目作为社会性活动,体现了项目的社会价值。所以项目能力也是程序员成熟的重要标志之一:项目能力包括参加项目的个数、项目的大小、在项目中承担 的角色等等。就项目承担的角色而言,主持开发(项目经理)3个以上项目是必须的,这是一个必要条件。一个程序员如果没有主持过开发,无论参加过多少项目的 开发,无论是在程序编写或项目设计上发挥了多大的作用,是很难被称之为成熟的,因为项目的组织、协调和管理是反映一个程序员成熟程度的又一个标志。就如同 一个程序员能参与过10个以上大大小小的项目或能参加或能主持两个以上大型项目的开发,其成熟程度是可以信赖的。若低于此数,则说明程序员离成熟还有相当 的空间。“我们在项目中成长”可见项目对于程序员的意义是多么的巨大。r
另外,一般程序员只是为一个企业客户进行开发一个或多个项目,或同行业的企开发项目,如果程序员能够如果程序员能够开发过多个行业的项目,其成熟度要比一般人要高一些。

4、思维标志

幼稚和成熟在思维方式上还是有很明显的区别的。就程序员而言,不成熟的程序员逻辑性不强,程序编得没有条理,即使程序员自己进行了解释也没人能看懂。而成 熟的程序员应该具有很强的逻辑性,程序编得井井有条,不用解释别人也能看得懂。这种逻辑性还体现在软件的构架设计、数据库设计、算法设计等多个方面。程序 员通过全集子集概念、时间概念、顺序概念、重点非重点概念等对各种事物进行逻辑分析。例如,以顺序概念为例,不成熟的程序员往往会采用自底向上的思维方式 来开发程序。他们先考虑程序的具体实现,然后再考虑功能设计、最后考虑构架设计。而成熟的程序员则采用自顶向下思维方式,先考虑构架设计、再考虑功能设 计、最后才考虑编程的具体实现。前者思维方式主要是出于工作惯性,只适合入门阶段,而后者思维方式反映了后者的进步,适用于各种项目开发或大型项目的开发。
除了在思维内容上的逻辑性之外,程序员还应该处理好动脑和动手的关系。重视思维本身就是一种成熟的标志。成熟的程序员的思考时间要大于动手编程时间,想好 之后只要一次就编程成功,而不成熟的程序员往往动手编程时间要远大于思考时间,而且是边做边想,通过反复来逼近最终目标。
另外,在思维范围上,成熟的程序员要比普通的程序员有更开放视野。他们更容易去接受新的东西,更容易不受各种约束去考虑问题,更勇于去挑战自己和高手。

5、与人交往

很多人认为程序员是和计算机打交道的行业。这只是这个职业的特点。但是,只要是工作必然就是一种社会劳动。而社会劳动则必须和人进行交流和沟通。尽 管程序员的劳动工具是计算机,但并不意味着程序员只想着这个工具。从这个工具的下游来看,程序员还是要考虑用这个劳动工具生产出来的软件产品是否有人购 买,是否有人使用,是否运行正常,从这个工具的上游来看,是谁让程序员了解设计方案的,是谁让程序员编程序的,是谁让程序员程序通过验收的等等。因此程序 员在软件制作各个环节都会与其他人打交道。只有和人进行有效的交流和沟通我们的工作才能进行下去才能做的更好。
如果一个程序员还沉浸在个人劳动的意境之中,对外界持有冷漠、无奈、恐惧的心理,内心里不愿意和外界打交道,无论自己感觉自己的技术水平有多高,还 是一个不成熟的程序员。而成熟的程序员一定是特别重视与人的交往,无论是上级领导、外部客户、项目经理、团队同伴这些与自身工作密切相关的人还是那些非同 单位同行朋友、网友等他们都会认真去听取别人的阐述、要求、意见、建议、反馈等。从中得到更多的工作上的、技术上的、生活上的好的想法,以便自己参考和吸 收。与此同时,与人交往也反映你有好的想法和好的技术水平交流出去,而这些想法和技术水平也是你成熟度一种反映。那些没有想法和技术水平的程序员的确是怕 和别人交流的。
与人交流的有两个基本能力,一个是理解能力,一个是表达能力。两者缺一不可。例如,有的程序员理解能力差,不能理解项目经理提出的要求,有的程序员表达能力差,无逻辑,无重点,啰里啰唆,让别人不知所云。这都是不成熟的表现。

6、别人评价

别人的评价尤其是单位同事以及对自己工作情况比较了解的人对自己的评价是有参考价值的。一般而言,评价差的,一定是不行的,是不成熟的。评价好的要 看情况而定,单位同事对人的评价会从两个方面来考虑,一个是这个人的为人情况,一个是这个人的工作能力。如果两者都不错,我们有理由认为这个程序员是成熟 的。反之,无论是工作能力强,但为人不好,为人很好,工作能力不强,我看都不能算一个成熟的程序员。
所以,程序员要注重别人对自己的评价,在提高自己技术水平的同时,学会做人,做好人,学会与他人分享,这样别人才会给自己更好的评价。
无视别人评价其实,也是一种不成熟的表现。只有自己感觉好,大家感觉好,那才是真的好。
其实,别人的评价如果仅限于自己单位的话,恐怕这种评价的价值会打折扣,如果这个单位技术人员的人数很少,水平普遍很低,即使你鹤立鸡群,大家对你的评价很好,但是,你和其他公司和单位的程序员来比,你真的不一定的成熟。所以,我说别人的评价仅仅是一个参考。

7、收入标志

收入也是成熟程序员一个参考标志。收入的大小往往是对程序员社会价值的认可度,表明程序员的劳动值这个价钱。一般而言,成熟的程序员能够挣得软件业 平均收入的中上水平,或者在一个单位或部门中能够挣得比80%左右员工要高的收入。而刚参加工作不久的程序员收入应该与其相差很大的。另外,单位的项目奖 金发放也可以看出程序员在项目中的地位和作用。
现实中,我们知道程序员的收入和其付出是不是正比的,而且,越是能力强的、贡献大的程序员,可能不一定比那些不如其它能力不如他的程序员高出许多。 这不是软件行业的通病,几乎所有行业都存在这种情况。通过分析我们认为程序员成熟度应该是和其收入高低挂钩的。如果,我们知道我们能力和贡献大大超出我们 的收入,我们就有理由向上级领导提出自己的收入要求。

8、心理素质

程序员常常面对各种各样的成功和失败,尤其是失败更是多于成功,这也是程序员这个职业特点之一。以编程为例,几乎没有一个人一次就能把程序给编好的,它总 是要遇到各种语法错误,总要遇到各种遗漏,一个程序要反复多次修改调试才能完好。有的程序员因找不出来程序的bug,束手无措,哀声叹气,心里极其不爽。 以工作为例,有的程序员因工作进度和程序出错常常受到别人的批评和指责,心里极其不满,认为批评人不了解造成这个结果的客观原因,批评错了人。从而对人产 生意见,甚至对工作造成了影响。面对失败和挫折,成熟的程序员会坦然面对:编程时出现问题不可怕,有什么问题就解决问题,解决不了的问题可以想其他方法进 行解决,不在一棵树上吊死。面对别人的批评和指责,首先从自身查问题,是自己的问题,那就要主动承担责任,并尽快改正。不是自己的问题,应该换位思考,理 解批评人的焦急心态,并找机会给予说明。良好的心理素质在面对困难和挫折的时候,就会很坦然,很坚强,很自信。

时间: 2024-10-29 10:47:48

程序员成熟的标志的相关文章

什么样的程序员才算成熟? 让程序员认清自己的所处的阶段

http://www.nowamagic.net/librarys/veda/detail/1450程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员会对自己有一个自我评价,但是,自己的评价和社会的评价.专业的评价会有差异,所以程序员自己并不能肯定这个评价.现实中,除了各种证书之外,很少有人会专门给出一个程序员的成熟度的评价.人们往往是偶发性地就事论事地对程序员的工作作出好与不好,行与不行的评论.因此,程序员对此感到很茫然,不知道要从那些方面去评

序员工作到底能干多久?程序员的前途如何?

千千万万的程序员们一直困惑"程序员的前途如何"."程序员工作到底能干多久"的问题.目前比较普遍的认识,程序员的职业通道有两条进阶路线.一条 是技术路线,即由程序员.高级程序员.系统分析师,到架构设计师.在这条路线上,立足于从业务模型到计算机软件模型的转换,成为高端的软件技术工作者.另 一条是管理路线,即由程序员,经开发小组负责人.项目经理,再到企业中高层管理者.程序员加强自己管理意识的培养,多站在组织的角度来分析问题和解决问 题,成为优秀的管理者,甚至职业经理人.近

程序员从成熟到优秀的瓶颈

成熟到优秀的瓶颈问题 很多程序员到了成熟阶段后,就会处于一个停滞状态.技术上已经驾轻就熟,工作上已经按部就班,心里虽然感觉有些不甘,但是何去何从他们显得很茫然很无助.我认为程序员到了成熟阶段后,如果还想要向优秀阶段发展,一定会遇到这个瓶颈的,穿过这个瓶颈就会走进另一片开阔的前景,穿不过则会停留在原地止步不前. 1.技术瓶颈 技术上的瓶颈是很明显的,主要表现在,对学习缺乏热情,对技术缺乏钻研,对新技术发展缺乏了解等三个主要方面.其中原因主要是:第一,成熟的程序员编程技术已经能够满足开发软件的要求,

一个成熟的程序员必会技能:赚钱

我经常在这个公众号里收到一些读者留言,大多数是一些年轻读者,迷茫,焦虑,工资明明还不错,但攒不下钱,买不了房.高学历,985,硕士,努力了很多年也赶不上那些轻松的富二代--看着可怜又可气. 我觉得这种心态的读者,毛病都出在比较上,而比又没比对地方.你嫌超市的菜不好吃,别的人还吃不上蔬菜呢.北京最近两年的天气已经有了很大的改善,但是,但凡连续两天雾霾天,朋友圈立刻沦陷,而真正雾霾严重的地方,可能都用不上朋友圈. 坚强一点. 其实你可以这么想,从时间维度上,这四十年是中国发展最快的一个阶段,对于大部

程序员如何让自己的职场价值更上一层楼?

如果你已经是个很牛叉的程序员,但是依然觉得觉得还不够的话,欢迎阅读此文.本文旨在帮助各位更上一层楼. 你是不是觉得自己已经掌握了所有的编程技巧?别太自以为是了!伯爵娱乐城 会写代码的确很重要,但是要拿到更好薪水,则更依赖于别人是否知道你的才能.换言之,你需要推销自己.下面是如何成功推销的秘诀. 开发技巧 No. 1:博客 建立自己的博客,每月至少发布一篇文章.做点研究,因为只有自己亲身经历过,才能言之有物,不会听上去像吹牛皮.学会如何写文章,像以前你的老师教的那样:列大纲,描述情节,最后检查语法

《程序员的自我修养》系列技术文章整理收藏

整理的一些程序员修炼方面的文章,与大家共勉,有些系列感觉还是很不错的,读来颇受益,一下就是收藏的文章,希望大家喜欢 1思维改变生活:不需要经历也能明白 2思维改变生活:亲身经历了就一定能明白吗? 3思维改变生活:很多事情亲身经历之后才会明白 4工作:不管你愿不愿意,你都要改变 5Doodle:让眼睛一直注视着你的鼠标 6抗干扰的秘诀:分类.整理与专注 7心智模式:认识你自己 8心智模式:如何面对逆境? 9心智模式:心智模式成熟的标志 10心智模式:什么是心智模式? 11心智模式:如何改善我们的心

高效程序员的45个习惯

本文转载 <高效程序员的45个习惯>一书 目录 第1章 敏捷---高效软件开发之道 第2章 态度决定一切 1.做事 2.欲速则不达 3.对事不对人 4.排除万难,奋勇前进 第3章 学无止境 5.跟踪变化 6.对团队投资 7.懂得丢弃 8.打破沙锅问到底 9.把握开发节奏 第4章交付用户想要的软件 10.让客户做决定 11.让设计指导而不是操纵开发 12.合理地使用技术 13.保持可以发布 14.提早集成,频繁集成 15.提早实现自动化部署 16.使用演示获得频繁反馈 17.使用短迭代,增量发布

Java程序员面试题收集(6)

<!————————————————————————————基础题122道,代码题19道————————————————————————————> JAVA相关基础知识1.面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法

令程序员无语的编写特性

每种语言都有自己的独到之处,或奇特的语法,或不常见的函数,或非标准的执行方式.因此,不论你是老手还是刚接触的新手,随时都会看着某个特性突然醉了.文中总结了10个经常被提及的"奇异"特性. 1.Javascript: + 是一个连接符 问题描述:在JS中,+ 号用在数字间,可以用作常规加法:但如果遇上字符,又可作为字符连接符.例如:'1'+ 1的结果是11. 成因分析: 根本性原因是JS属于弱类型语言.比方说Python,同样地使用+ 号作为字符连接符,但由于它是强类型语言,一旦发现一个