Ⅰ 作为软件工程师应该具备哪些基本素质
1:团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。2:文档习惯 说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。3:规范化,标准化的代码编写习惯 作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。4:需求理解能力 程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广 告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程 序员,你给他深蓝那套系统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。5:复用性,模块化思维能力 经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。6:测试习惯 作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早 的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。7:学习和总结的能力 程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding有些codingTO就是这样的coding上只是一些Cfans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都 应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言。
Ⅱ 职业素养有哪些重要性
什么是职业素养
【基本概念】
职业素养鼻祖San
Francisco
在其著作《职业素养》中这样定义:职业素养是人类在社会活动中需要遵守的行为规范,是职业内在的要求,是一个人在职业过程中表现出来的综合品质。职业素养具体量化表现为职商(英文career
quotient
简称CQ),体现一个社会人在职场中成功的素养及智慧。
【基本内容】
职业素养涵盖的内容非常广泛,个体行为的总和构成了自身的职业素养。从表现形式上分为:1、内化素养2、外化素养。内化素养是职业素养中最根基的部分,包含个人的世界观、价值观、人生观等范畴;外化素养指计算机、英语、建筑等属技能范畴的素养,是通过学习、培训比较容易获得,在实践运用中日渐成熟的。
职业素养教育是一种养成教育。San
Francisco
认为,职业素养的修炼需要经历以下七道关:印象关——初入职场形象管理;心态关——学生向社会人转变;道德关——职场安身立命之本;沟通关——打造职场“人气王”;专业关——“菜鸟”变“大虾”;诚信关——取得职场长期居住证;忠诚关——走进高层核心圈。通过七道关的培养,能够帮助个人具备良好的职业素养,快速融入职场,实现人生价值。
【意义】
简而言之,职业素养是职业人在从事职业中尽自己最大的能力把工作做好的素质和能力,它不是以这件事做了会对个人带来什么利益和造成什么影响为衡量标准的,而是以这件事与工作目标的关系为衡量标准的。更多时候,良好的职业素养应该是衡量一个职业人成熟度的重要指标。
职业素养具有十分重要的意义。从个人的角度来看,适者生存,个人缺乏良好的职业素养,就很难取得突出的工作业绩,更谈不上建功立业;从企业角度来看,唯有集中具备较高职业素养的人员才能实现求得生存与发展的目的,他们可以帮助企业节省成本,提高效率,从而提高企业在市场的竞争力;从国家的角度看,国民职业素养的高低直接影响着国家经济的发展,是社会稳定的前提。正因如此,“职业素养教育”才显得尤为重要。
Ⅲ 论述职业素养对你未来发展的重要性
论述职业素养对未来发展的重要性:职业信念是职业素养的核心。良好的职业素养应该包涵了良好的职业道德,正面积极的职业心态和正确的职业价值观意识,是一个成功职业人必须具备的核心素养。“职业知识技能”是做好一个职业应该具备的专业知识和能力。“职业行为习惯”,职业素养就是在职场上通过长时间地学习-改变-形成而最后变成习惯的一种职场综合素质。
职业素养是人类在社会活动中需要遵守的行为规范。个体行为的总合构成了自身的职业素养,职业素养是内涵,个体行为是外在表象。
(3)软件工程师职业素养的重要性扩展阅读:
为了培养大学生的职业素养,高校或高等教育应该从以下几个方面着手以满足社会需要:首先,将大学生职业素养的培养纳入大学生培养的系统工程,使高中毕业生在进入大学校门的那一天起,就明白高校与社会的关系、学习与职业的关系、自己与职业的关系。全面培养大学生的显性职业素养和隐性职业素养,并把隐性职业素养的培养做为重点。
Ⅳ 软件开发人员应具有的素质
网上搜一下,很多的,别太懒,比你等快得多;
程序员、软件开发人员应具备基本技能
1、项目实践
• 软件工程理论
• 质量体系:ISO9001和CMM体系
• UML基本理论
• 测试理论和测试工具使用
• 加密理论和加密方法
• 源代码控制工具使用
• 说明书编写
• 程序的安装和部署
2、专业技能
3、程序员基本素质
• 团队精神和协作能力(• 木桶理论、• 学习性组织)
• 文档习惯(• 注释、• 开发过程文档:良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。)
• 规范化,标准化的代码编写习惯(作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。• 代码编写规范• 界面设计规范)这里邵老师强调了标准未必要固定,但在一个项目组中间要有统一的标准。
• 复用性,模块化思维能力(• 用户控件• 组件技术)
• 测试习惯(• 单元测试• 集成测试• 系统测试• 稳定性测试• 软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。)
• 学习和总结的能力(• 学习:程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。• 总结:善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况
和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。)
4、职业素质
• 交际能力
• 表达能力
• 职业素养
5、个人素质
• 信心和恒心
• 良好的个人品质
• 良好的个人习惯
• 关于质量控制和开发模板
• 项目组建设
高级程序员的基本素质:
1. 需求分析能力
对于程序员而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢?
2. 项目设计方法和流程处理能力
程序设计者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的整体设计。设计方法上选择不当,就会耽误研发周期,浪费研发资源,甚至影响研发效果。
3. 复用设计和模块化分解能力
一个成熟的软件行业,在一些相关项目和系统中,不同的部件是可以随意换装的,比如微软的许多桌面软件,在很多操作模块(如打开文件,保存文件等等)都是复用的同一套功能模块,而这些接口又通过一些类库提供给了桌面应用程序开发者方便挂接,这就是复用化的模块设计明显的一个佐证。
4. 整体项目评估能力
作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需要大量的经验积累,换言之,这是一种不断总结的累计才
能达到的境界
5. 团队组织管理能力
首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。
其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥组队的效率.
Ⅳ 职业素养的重要性有哪些啊
职业素养的重要性主要分为:
1、职业信念
“职业信念”是职业素养的核心。良好的职业素养应该包涵了良好的职业道德,正面积极的职业心态和正确的职业价值观意识,是一个成功职业人必须具备的核心素养。
2、职业知识技能
“职业知识技能”是做好一个职业应该具备的专业知识和能力。
3、职业行为习惯
“职业行为习惯”,职业素养就是在职场上通过长时间地学习-改变-形成而最后变成习惯的一种职场综合素质。
职业素养是人类在社会活动中需要遵守的行为规范。个体行为的总合构成了自身的职业素养,职业素养是内涵,个体行为是外在表象。
(5)软件工程师职业素养的重要性扩展阅读:
作为员工所需要具备的职业素养:
1、像老板一样专注
作为一个一流的员工,不要只是停留在“为了工作而工作、单纯为了赚钱而工作”等层面上。而应该站在老板的立场上,用老板的标准来要求自己,像老板那样去专注工作,以实现自己的职场梦想与远大抱负。
2、学会迅速适应环境
在就业形势越来越严峻、竞争越来越激烈的当今社会,不能够迅速去适应环境已经成了个人素质中的一块短板,这也是无法顺利工作的一种表现。
3、化工作压力为动力
压力,是工作中的一种常态,对待压力,不可回避,要以积极的态度去疏导、去化解,并将压力转化为自己前进的动力。
4、表现自己
在职场中,默默无闻是一种缺乏竞争力的表现,而那些善于表现自已的员工,却能够获得更多的自我展示机会。那些善于表现自己的员工是最具竞争力的员工,他们往往能够迅速脱颖而出。
5、低调做人,高调做事
工作中,学会低调做人,你将一次比一次稳健;善于高调做事,你将一次比一次优秀。在“低调做人”中修炼自己,在“高调做事”中展示自己。
参考资料来源:搜狗网络-职业素养
Ⅵ 提高自己职业素养的重要性都有哪些
有利于做好工作,提高自己的颜值。也是自己职业必备的职业要求。也能给你自己提高至深的素质和修养水平。成为人间热闹的职业人。
Ⅶ 程序员的 职业素养
说起职业素养,可能大家脑子里马上反映出来的是西服领带公文包的精干白领形象,其实作为程序员来说,外在可能没有那么重要,更多的是内在职业素养,本期调查分享了两个研发小组的故事,让大家在统计数据的基础上进一步了解——什么是程序员需要的职业素养?案例一:问题团队AD公司是个在发展壮大中的贸易公司,由于业务发展员工从刚开始的10人两年内增加到150多人,管理上出现了沟通效率低、对员工工作难以监控的现象。公司想近期上OA系统,以加强公司的工作效率、支持快速增长的业务。经过几次与F开发公司的沟通后,双方确定了合作意向。安排有两年开发经验的开发工程师苏成,作为项目经理带领三个开发人员,开始了D公司的OA项目。因项目不大,没有特别安排需求工程师,而由项目经理与客户确认需求后进行开发,初为项目经理的苏成信心爆棚:对外,他想当然地按照合同后附的简单需求说明草率开发;对内,他认为项目经理拥有绝对权力,任何关于开发的不同意见都听不进去。在第一期快结束时,苏成已与项目组成员发生了N次争吵,大家纷纷要求调离项目组,团队面临崩溃。在两个月未与客户沟通的状态下,苏成项目组向D提供了OA系统一期产品,按合同规定包括了:员工管理一项功能和其中四个子项。看完基本功能演示后,D公司的HR经理Helen几乎崩溃——OA系统中员工管理没与考勤部分联系起来,而且在系统中增加一个新用户需要五步,十分繁琐,很多功能也与公司需求相差极大。但是苏成却认为这些都是小问题,更让Helen气结的是要求增加一个小的统计功能时,他居然说做不了。后来才了解到,原来在开发时,项目组并没有留下文档,加之团队其它几个成员均已准备离开项目组,任何在此模块中的小小变化都会面临所有代码重新开发的局面,更不用说要新增什么功能了。最终苏成辛苦开发了几个月却没有得到相应地回报,客户不满意,项目组成员不满意,研发部总监更是对他的能力产生了怀疑,在几经努力拿到D公司的第二期项目开发合同之后,更换了项目经理。点评:程序员如何以明确需求为基础与客户沟通?如果有专门掌握需求编写技术和经验的需求工程师作为客户和程序员之间的桥梁是最理想的状态。但以国内目前的国情,每个项目组都配有需求工程师的并不多。因此,正确地帮客户表达需求、正确地理解需求就成了程序员的基本素质之一。在此次调查中66.67%的被访者认为“能帮助客户正确提出需求”是程序员职业素养之一,可见在程序员内部已就此达成了相当的共识。认为“能使客户需求更完善”是程序员看重的职业素养之一,占到此次调查的55.13%,这说明超过一半的程序员认识到,帮助客户完善需求会节省双方的时间和精力。那么如何才能提高自己的需求分析能力呢?以下分享几个有关需求的小技巧:1.尽量提高自己的表达和沟通能力。良好的表达和沟通能力能在客户不能清楚表达需求时,融入到客户组织内部,了解客户的工作流程,与客户共同更好地、更准确地定义和分析需求。此次调查中60.90%的被访者认为沟通能力是程序员应具备的基本能力,但只有28.85%的程序员认为“表达能力”是程序员必备的基本能力。沟通固然很重要,但我们更应该进一步认识到准确表达自己的观点和意见也是成功沟通的基础之一。如果只“沟”而不“通”仍然是在浪费方面宝贵的时间。2.应用多种方式了解需求。常用的方法有:问题分析法和建模分析法以及几种方法的结合。比如在问题分析法中应用面向对象的思想,与客户的员工谈话,访谈首先要面向工作流程,面向任务,面向角色,也就是用面向对象的思想帮助客户理清思路。3.不臆测需求。如果有专门的需求工程师,有一点要特别强调,就是在编码过程中当需求不明确时,必须与项目经理或需求工程师及时沟通,程序员不能自作主张地猜测客户的需求。4.不过度承诺。很多销售人员拿到项目,向客户大包大揽,甚至完全不顾公司的现有开发能力向客户承诺很多功能。在定义需求阶段,一定要向客户说明“什么是我们能做的,什么是我们应该做的,什么是我们不能做的”。很多时候过度承诺导致了新功能无法实现的同时,原有功能也受到影响。在此次调查中,有59.62%(近六成)的被访者正确地认识到对客户提出的不合理需求拒绝得当也是程序员职业素养的一个重要方面,这是非常难得的。案例二:严格开发流程的团队B国资委某下属集团公司要上OA系统,C公司在研发能力、价格两个方面以综合分第一的成绩竞标成功。拥有10年项目管理经验的李石被任命为项目经理,并由他组建团队。李石对团队成员只有三个要求:分析能力、产品意识、较强的团队意识。初选方案需求确定后,项目有两个方案:更流行的BS模式和传统的CS模式。李石安排两个程序员前期负责选方案,分别基于两种模式开发用户权限管理系统的原型,给大家做演示,并结合客户特别评估每一个架构的优劣。分析了BS/CS的特点、结合客户的需求,他们发现:1.从流程的定制来看CS结构更加利于客户方便地进行“可视化”定制;2.从公文的“不可修改、保密性”以及电子图章的“不可诋毁性”需求来看,CS框架更加利于实现DRM技术和数字指纹技术实现;3.从公文的打印需求与一般WEB报表的差异性来看,CS框架更加适合对打印格式的定制与控制;4.从客户提出的内部电子会议的实时性来看,CS框架明显优于BS框架的非状态性,能够做到更顺畅、更及时的沟通;5.从系统的安全性来讲,CS框架更加适合硬加密系统(如加密狗、U盘Key)与系统的对接。产品开发在开发过程中李石强调了每个程序员的产品意识,取得了不错的效果。比如客户要求一个能上传文件的功能时,并没有提出UI需求,团队的B程序员并没有简单完成任务了事,而是做出一次能同时选取上传5个文件的程序。这种产品意识为客户使用带来方便,弥补了需求的不足。团队配合在团队B中,每个程序员都做到了做完一个功能后与项目经理沟通进度、结果,并与负责测试的同事沟通,及时检测Bug,及时修改并及时回归。每个功能的实现都相对完善。及时的沟通与相互学习,还促进了团队磨合。经过8个月的开发,OA项目第一期完成基本功能顺利上线。C公司已顺利拿到了客户第二期的开发合同。点评:成功的开发需要这样的程序员通过上面的案例,我们为程序员总结出如下素养:1.学习和分析能力。每个团队都在成长,作为程序员这个群体就更需要“与时俱进”。尤其是在开发这个知识日新月异的行业里。同时分析能力也是必不要少的。在调查中71.15%的程序员认为,学习能力非常重要,同时有57.69%的程序员认为,在技术方面有不同的意见时,处理妥当是程序员应该具有的职业素养。相信这个案例为我们提供了新的思路。2.与内外保持良好的沟通,永远是成功的保证。及时汇报、沟通进展也可以在第一时间发现自己的偏差。数据证明59.62%的程序员认为“汇报项目进展时明确及时”是重要的职业素养。3.产品意识。良好的产品意识可以大幅度提高开发效率,也能有效的弥补需求不足。例如,在案例二中,在做文件上传功能时,充分考虑了客户使用的方便性,弥补了需求中被忽略的细节。4.团队意识。强烈的团队意识能帮助自己和整个团队更快成长,因为知识的分享是知识学习中一个最有效的方法,尤其是在程序员这个行当里。5.编码规范和文档规范。据调查显示有分别由80.77%和68.59%的程序员认为编码规范和文档规范是程序员的必备职业素养之一。
Ⅷ 作为软件工程师应该具备哪些基本素质
1:团队精神和协作能力
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。
2:文档习惯
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
3:规范化,标准化的代码编写习惯
作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。
4:需求理解能力
程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广 告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情况下的性能指标是如何实现的,对于这样的程 序员,你给他深蓝那套系统,他也做不出太极链的并访能力。
性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。
5:复用性,模块化思维能力
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。
一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。
6:测试习惯
作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等等。
当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到需求理解能力。
7:学习和总结的能力
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。
但是学习也要找对目标,一些小coding有些codingTO就是这样的coding上只是一些Cfans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。
善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。
具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题。那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言。
Ⅸ 软件开发人员应具有什么素质
程序员基本素质
• 团队精神和协作能力(• 木桶理论、• 学习性组织)
• 文档习惯(• 注释、• 开发过程文档)
• 规范化,标准化的代码编写习惯(• 代码编写规范• 界面设计规范)
• 复用性,模块化思维能力(• 用户控件 • 组件技术)
• 测试习惯(• 单元测试 • 集成测试 • 系统测试 • 稳定性测试 )
• 学习和总结的能力
4、职业素质
• 交际能力
• 表达能力
• 职业素养
5、个人素质
• 信心和恒心
• 良好的个人品质
• 良好的个人习惯
Ⅹ 职业素养的重要性有哪些
职业素养的重要性主要分为:
1、职业信念
“职业信念”是职业素养的核心。良好的职业素养应该包涵了良好的职业道德,正面积极的职业心态和正确的职业价值观意识,是一个成功职业人必须具备的核心素养。
2、职业知识技能
“职业知识技能”是做好一个职业应该具备的专业知识和能力。
3、职业行为习惯
“职业行为习惯”,职业素养就是在职场上通过长时间地学习-改变-形成而最后变成习惯的一种职场综合素质。
职业素养是人类在社会活动中需要遵守的行为规范。个体行为的总合构成了自身的职业素养,职业素养是内涵,个体行为是外在表象。
(10)软件工程师职业素养的重要性扩展阅读:
作为员工所需要具备的职业素养:
1、像老板一样专注
作为一个一流的员工,不要只是停留在“为了工作而工作、单纯为了赚钱而工作”等层面上。而应该站在老板的立场上,用老板的标准来要求自己,像老板那样去专注工作,以实现自己的职场梦想与远大抱负。
2、学会迅速适应环境
在就业形势越来越严峻、竞争越来越激烈的当今社会,不能够迅速去适应环境已经成了个人素质中的一块短板,这也是无法顺利工作的一种表现。
3、化工作压力为动力
压力,是工作中的一种常态,对待压力,不可回避,要以积极的态度去疏导、去化解,并将压力转化为自己前进的动力。
4、表现自己
在职场中,默默无闻是一种缺乏竞争力的表现,而那些善于表现自已的员工,却能够获得更多的自我展示机会。那些善于表现自己的员工是最具竞争力的员工,他们往往能够迅速脱颖而出。
5、低调做人,高调做事
工作中,学会低调做人,你将一次比一次稳健;善于高调做事,你将一次比一次优秀。在“低调做人”中修炼自己,在“高调做事”中展示自己。
参考资料来源:网络-职业素养