程序员在经历了若干年编程工做之 后,很想知道本身水平到底如何?本身是否已经成为成熟的程序员?虽然程序员会对本身有一个自我评价,可是,本身的评 价和社会的评价、专业的程序员
程序员在经历了若干年编程工做之 后,很想知道本身水平到底如何?本身是否已经成为成熟的程序员?虽然程序员会对本身有一个自我评价,可是,本身的评 价和社会的评价、专业的评价会有差别,因此程序员本身并不能确定这个评价。现实中,除了各类证书以外,不多有人会专门给出一个程序员的成熟度的评价。人们 每每是偶发性地就事论事地对程序员的工做做出好与很差,行与不行的评论。所以,程序员对此感到很茫然,不知道要从那些方面去评价本身的能力。算法
一个程序员到底成熟不成熟,我想从如下几个方面谈谈本身的见解。 一、技术标志 若是程序员不会编程序那决不是程序员,程序员至少要掌握一门程序设计语言,要可以用这种语言去编写程序去解决他想解决的问题。可是,成熟的程序员每每掌握不止一种程序语言,三到四种语言的掌握是必须的,一种二种语言的精通也是必须的。 除了从掌握程序设计语言个数以外,咱们还能够从其余几个方面去看看程序员在技术上水平。例如,函数编写能力(命名、格式、大小、分类、 参数、复用等),面 向过程的能力,面向对象的能力,数据库技术能力,效率处理能力,安全处理能力,网络处理能力,软件构架能力,人机交互能力,通用软件能力,软件文档能力等 等。尤为是面向对象技术的掌握和运用,以及面向服务的技术都是成熟程序员所必需掌握的。 二、时间标志 虽然程序员的天资、素质、基础知识各不相同,所经历的工做内容以及环境也不相同,可是,时间也是程序员成熟程度的标志之一。通常程序员 须要通过三到五年的 时间才能日趋成熟。其中入门须要一年,成长须要两年。这是我通过长期观察获得平均数据。我并不认为成熟时间越短程序员就越聪明,就越了不得。享受每一个阶段 充分的时间,会让本身成长更加充实、更加成熟。固然,也有超期而不成熟的状况,这也是很正常的。 三、项目标志 程序员的社会性是程序员成熟的标志之一。没有参加过项目的程序员,程序编得再好,只能是纯程序类的程序员,是一个孤独的高手,是一种个 人型的程序员,远没 有成熟。项目做为社会性活动,体现了项目的社会价值。因此项目能力也是程序员成熟的重要标志之一:项目能力包括参加项目的个数、项目的大小、在项目中承担 的角色等等。就项目承担的角色而言,主持开发(项目经理)3个以上项目是必须的,这是一个必要条件。一个程序员若是没有主持过开发,不管参加过多少项目的 开发,不管是在程序编写或项目设计上发挥了多大的做用,是很难被称之为成熟的,由于项目的组织、协调和管理是反映一个程序员成熟程度的又一个标志。就如同 一个程序员能参与过10个以上大大小小的项目或能参加或能主持两个以上大型项目的开发,其成熟程度是能够信赖的。若低于此数,则说明程序员离成熟还有至关 的空间。“咱们在项目中成长”可见项目对于程序员的意义是多么的巨大。 另外,通常程序员只是为一个企业客户进行开发一个或多个项目,或同行业的企开发项目,若是程序员可以若是程序员可以开发过多个行业的项目,其成熟度要比通常人要高一些。 四、思惟标志 幼稚和成熟在思惟方式上仍是有很明显的区别的。就程序员而言,不成熟的程序员逻辑性不强,程序编得没有条理,即便程序员本身进行了解释 也没人能看懂。而成 熟的程序员应该具备很强的逻辑性,程序编得层次分明,不用解释别人也能看得懂。这种逻辑性还体如今软件的构架设计、数据库设计、算法设计等多个方面。程序 员经过全集子集概念、时间概念、顺序概念、重点非重点概念等对各类事物进行逻辑分析。例如,以顺序概念为例,不成熟的程序员每每会采用自底向上的思惟方式 来开发程序。他们先考虑程序的具体实现,而后再考虑功能设计、最后考虑构架设计。而成熟的程序员则采用自顶向下思惟方式,先考虑构架设计、再考虑功能设 计、最后才考虑编程的具体实现。前者思惟方式主要是出于工做惯性,只适合入门阶段,然后者思惟方式反映了后者的进步,适用于各类项目开发或大型项目的开 发。 除了在思惟内容上的逻辑性以外,程序员还应该处理好动脑和动手的关系。重视思惟自己就是一种成熟的标志。成熟的程序员的思考时间要大于 动手编程时间,想好 以后只要一次就编程成功,而不成熟的程序员每每动手编程时间要远大于思考时间,并且是边作边想,经过反复来逼近最终目标。 另外,在思惟范围上,成熟的程序员要比普通的程序员有更开放视野。他们更容易去接受新的东西,更容易不受各类约束去考虑问题,更敢于去挑战本身和高手。 五、与人交往 不少人认为程序员是和计算机打交道的行业。这只是这个职业的特色。可是,只要是工做必然就是一种社会劳动。而社会劳动则必须和人进行交 流和沟通。尽 管程序员的劳动工具是计算机,但并不意味着程序员只想着这个工具。从这个工具的下游来看,程序员仍是要考虑用这个劳动工具生产出来的软件产品是否有人购 买,是否有人使用,是否运行正常,从这个工具的上游来看,是谁让程序员了解设计方案的,是谁让程序员编程序的,是谁让程序员程序经过验收的等等。所以程序 员在软件制做各个环节都会与其余人打交道。只有和人进行有效的交流和沟通咱们的工做才能进行下去才能作的更好。 若是一个程序员还沉浸在我的劳动的意境之中,对外界持有冷漠、无奈、恐惧的心理,心里里不肯意和外界打交道,不管本身感受本身的技术水 平有多高,还 是一个不成熟的程序员。而成熟的程序员必定是特别重视与人的交往,不管是上级领导、外部客户、项目经理、团队同伴这些与自身工做密切相关的人仍是那些非同 单位同行朋友、网友等他们都会认真去听取别人的阐述、要求、意见、建议、反馈等。从中获得更多的工做上的、技术上的、生活上的好的想法,以便本身参考和吸 收。与此同时,与人交往也反映你有好的想法和好的技术水平交流出去,而这些想法和技术水平也是你成熟度一种反映。那些没有想法和技术水平的程序员的确是怕 和别人交流的。 与人交流的有两个基本能力,一个是理解能力,一个是表达能力。二者缺一不可。例如,有的程序员理解能力差,不能理解项目经理提出的要求,有的程序员表达能力差,无逻辑,无重点,啰里啰唆,让别人不知所云。这都是不成熟的表现。 六、别人评价 别人的评价尤为是单位同事以及对本身工做状况比较了解的人对本身的评价是有参考价值的。通常而言,评价差的,必定是不行的,是不成熟 的。评价好的要 看状况而定,单位同事对人的评价会从两个方面来考虑,一个是这我的的为人状况,一个是这我的的工做能力。若是二者都不错,咱们有理由认为这个程序员是成熟 的。反之,不管是工做能力强,但为人很差,为人很好,工做能力不强,我看都不能算一个成熟的程序员。 因此,程序员要注重别人对本身的评价,在提升本身技术水平的同时,学会作人,作好人,学会与他人分享,这样别人才会给本身更好的评价。 无视别人评价其实,也是一种不成熟的表现。只有本身感受好,你们感受好,那才是真的好。 其实,别人的评价若是仅限于本身单位的话,恐怕这种评价的价值会打折扣,若是这个单位技术人员的人数不多,水平广泛很低,即便你鹤立鸡群,你们对你的评价很好,可是,你和其余公司和单位的程序员来比,你真的不必定的成熟。因此,我说别人的评价仅仅是一个参考。 七、收入标志 收入也是成熟程序员一个参考标志。收入的大小每每是对程序员社会价值的承认度,代表程序员的劳动值这个价钱。通常而言,成熟的程序员能 够挣得软件业 平均收入的中上水平,或者在一个单位或部门中可以挣得比80%左右员工要高的收入。而刚参加工做不久的程序员收入应该与其相差很大的。另外,单位的项目奖 金发放也能够看出程序员在项目中的地位和做用。 现实中,咱们知道程序员的收入和其付出是否是正比的,并且,越是能力强的、贡献大的程序员,可能不必定比那些不如其它能力不如他的程序 员高出许多。 这不是软件行业的通病,几乎全部行业都存在这种状况。经过分析咱们认为程序员成熟度应该是和其收入高低挂钩的。若是,咱们知道咱们能力和贡献大大超出咱们 的收入,咱们就有理由向上级领导提出本身的收入要求。 八、心理素质 程序员经常面对各类各样的成功和失败,尤为是失败更是多于成功,这也是程序员这个职业特色之一。以编程为例,几乎没有一我的一次就能把 程序给编好的,它总 是要遇到各类语法错误,总要遇到各类遗漏,一个程序要反复屡次修改调试才能无缺。有的程序员因找不出来程序的bug,束手无措,哀声叹气,内心极其不爽。 以工做为例,有的程序员因工做进度和程序出错经常受到别人的批评和指责,内心极其不满,认为批评人不了解形成这个结果的客观缘由,批评错了人。从而对人产 生意见,甚至对工做形成了影响。面对失败和挫折,成熟的程序员会坦然面对:编程时出现问题不可怕,有什么问题就解决问题,解决不了的问题能够想其余方法进 行解决,不在一棵树上吊死。面对别人的批评和指责,首先从自身查问题,是本身的问题,那就要主动承担责任,并尽快改正。不是本身的问题,应该换位思考,理 解批评人的焦急心态,并找机会给予说明。良好的心理素质在面对困难和挫折的时候,就会很坦然,很坚强,很自信。 程序员也会面对成功的。有些程序员因开发了某个项目,因编写了某个程序而感受良好,在不自觉中表现出我最牛,我最好的样子,面对他人夸夸其谈,而对其余人不屑一顾。而更有甚者并其无成果,表现平平,却依然会摆