程序员素质模型解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机程序员职业素质模型
职业简介:
程序员(英文Programmer是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。
职业描述
计算机程序员的工作范围是电子数据处理。他们用计算机语言编写代码,告诉计算机该做什么。总的来说,有两大类计算机程序员。一类是系统程序员,一类是应用程序员。系统程序员通过指令,控制从中央处理器到外围设备的整个计算机系统。应用程序员开发的软件则是专门用来处理某一种问题的。后者当中某些人可能会被指派为项目负责人,负责监督其他应用程序员的工作。根据受教育程度、经验水平和职责范围,程序员可以分为初级和高级程序员。达到程序员的最高级职位以
后,还可以转向其它领域寻求更好的发展。很多程序员更偏爱做软件系统分析,而不
喜欢实际的编程工作;通常,计算机程序员会去参加培训或者进修,然后转向系统程序
员或者系统分析员的职位。高级的计算机程序员和上层管理机构有很多的沟通,如
果有兴趣的话,也可以转向编程部门或者其它相关部门的管理人员。还有的计算机程序员会转向其它的技术领域,比如计算机操作、硬件设计、软件工程或者网络工程等,如果有经验,还可以去数据系统中心工作。总之,有了编程的背景,发展的空间非常广阔
就业方向
程序员就业范围应该是很大的。有的是软件工厂式的编程工作,有的是项目开发的编程工作,有的是用户单位维护类的开发工作。有的后台编程工作,有的是前端
编程工作,有的是编制网站、有的是软件培训、有的是与硬件相关的汇编级编程工作,有的是数据库类编程和管理工作。随着软件专业化分工的加快,分工会越来越细, 就业种类也就越来越多了。面对各种就业种类,如何去选择倒是一个仁者见仁智者见智的。只有先定下来就业方向,然后根据就业方向所要求的必须掌握的语言,确定自己要学的语言。例如,你想去做后台的编程工作,你就可能会选择C 语言、数据库等。如果你想去编写网站,你就会在C#、JAVA 、PHP 中进行选择。如果你想去做底层与硬件有关的编程,你就会去学习汇编和专业的单板机语言。
市场状况
当你自己不知如何选择的时候,可以从“唯利是图”角度出发,看看在程序员
这个行当中,做什么职业收入最高,你可以通过google的方式,去反复比较,相对较高的职业。然后根据这个职业要求选择所需的编程语言。当然你可以从“技术至上”的角度出发,你可以通过google的方式,看看当前那语言最为流行,因为流行的程序往往体现这种语言的未来可持续的发展,当你选择了流行的语言的时候,这就意味着软件市场对这种语言的程序员需求是比较大的,因此,就业的概率相对较高。但是, 正是需求增加,在供过于求的情况下,竞争就会加剧,如果你没有更多的能力体现的话, 就很难在竞争中胜出。当然,你也可以从“反向思维”选,择相对比较冷门的职业,由于冷门,竞争就会有所减弱,就业的概率同样会大大增加。
素质要求
团队精神和协作能力
团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
文档习惯
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺
乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间用于写技术文档。没有文档的程序员势必会被淘汰。
规范化的代码编写习惯
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
测试习惯
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而
是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
学习和总结的能力
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。
善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种
要求就更加高了。但是学习也要找对目标,一些小coding有些codingTO就是这样的coding上只是一些Cfans们,他们也津津乐道于他们的学习能力,一会学会了asp一会儿学会了php,—会儿学会了jsp他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ 决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。
拥有强烈的好奇心
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在
阅读代码
这个技能需要程式员能够具备读懂已存在的代码的能力,这样的能力能够让程式员分析程式的行为,了解程式,这样才能和研发团队一起工作,继承维护或是改进现有的程式。编写程式。编写程式并不包括程式设计。不要以为编程是一件很简单的事情,很多程式员都认为编程只需要懂得程式语言的语法,并把设计实现就能够了。
但是这离编写程式还远远不够,使用什么样的编码风格成为编写程式员最需要具备的基本技能。能否使用很良好的编程风格直接决写了程式员的级别。
软件设计
这一能力直接决定了需要吏用什么样的代码技术达到怎么样的功能,而系统架构设计直接决定了软件的质量、性能和可维护性。并不是任何的程式在这一方面都很优秀,但每个