2021年论程序员应具备的职业素质_第1页
2021年论程序员应具备的职业素质_第2页
2021年论程序员应具备的职业素质_第3页
2021年论程序员应具备的职业素质_第4页
2021年论程序员应具备的职业素质_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

论程序员应具备职业素质程序员是一种技术工作,在IT发展中有相称重要地位,从底层硬件通讯合同建立,到数据传播层解决,到操作系统建设,到数据库平台建设,始终到应用层上各种数据营销平台搭建,程序员在里面都扮演着举足轻重角色并为IT事业发展做出了巨大贡献。中华人民共和国有诸多精于编码人,但是中华人民共和国软件行业,特别是网络应用开发方面误区很大,很难形成有规模软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不如。这些问题不是在于中华人民共和国程序员智商和工作努力状况,也不是在于国家和民间对开发投入限度,而是很大限度上,有某些对技术,对程序开发,对项目设计方面思想误区,这些误区,导致了软件行业产品化能力局限性,缺少规模化和大型复用系统研发能力,可以说,变化结识误区,是解决软件行业小作坊模式和个体英雄模式所带来局限性重要工作。中华人民共和国有诸多小朋友,她们18,9岁或21,2岁,通过自学也写了不少代码,她们有代码写很美丽,某些技术细节相称出众,也很有钻研精神,但是她们被某些错误结识和观点左右,缺少对系统,对程序整体理解能力,这些人,一种网上朋友说得较好,她们事实上只是某些Codingfans,压根没有资格称为程序员,但是据我所知,不少小网络公司CTO就是这样codingfans,拿着吓人工资,做着吓人项目,项目结局普通也很吓人。程序员基本素质:作一种真正合格程序员,或者说就是可以真正合格完毕某些代码工作程序员,应当具备素质。1:团队精神和协作能力把它作为基本素质,并不是不重要,恰恰相反,这是程序员应当具备最基本,也是最重要安身立命之本。把高水平程序员说成独行侠都是在呓语,任何个人力量都是有限,即便如linus这样天才,也需要通过构成强大团队来创造奇迹,那些遍及全球为linux写核心高手们,没有协作精神是不可想象。独行侠可以作某些赚钱小软件发点小财,但是一旦进入某些大系统研发团队,进入商业化和产品化开发任务,缺少这种素质人就完全不合格了。2:文档习惯说高水平程序员从来不写文档必定是乳臭未干毛孩子,良好文档是正规研发流程中非常重要环节,作为代码程序员,30%工作时间写技术文档是很正常,而作为高档程序员和系统分析员,这个比例还要高诸多。缺少文档,一种软件系统就缺少生命力,在将来查错,升级以及模块复用时就都会遇到极大麻烦。3:规范化,原则化代码编写习惯作为某些外国知名软件公司规矩,代码变量命名,代码内注释格式,甚至嵌套中行缩进长度和函数间空行数字均有明确规定,良好编写习惯,不但有助于代码移植和纠错,也有助于不同技术人员之间协作。有些codingfans叫嚣高水平程序员写代码旁人从来看不懂,这种叫嚣只能证明她们自己压根不配自称程序员。代码具备良好可读性,是程序员基本素质需求。再看看整个linux搭建,没有规范化和原则化代码习惯,全球研发协作是绝对不可想象。4:需求理解能力程序员需要理解一种模块需求,诸多小朋友写程序往往只关注一种功能需求,她们把性能指标所有归结到硬件,操作系统和开发环境上,而忽视了自身代码性能考虑,有人曾经放言说写一种广告互换程序很简朴,这种人从来不懂得在百万甚至千万数量级访问状况下性能指标是如何实现,对于这样程序员,你给她深蓝那套系统,她也做不出太极链并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处环境,将要受到负荷压力以及各种潜在危险和恶意袭击也许性。就这一点,一种成熟程序员至少需要2到3年项目研发和跟踪经验才有也许有心得。5:复用性,模块化思维能力经常可以听到某些程序员有这样抱怨,写了几年程序,变成了纯熟工,每天都是重复写某些没有任何新意代码,这其实是中华人民共和国软件人才最大挥霍地方,某些重复性工作变成了纯熟程序员重要工作,而这些,其实是完全可以避免。复用性设计,模块化思维就是要程序员在完毕任何一种功能模块或函数时候,要多想某些,不要局限在完毕当前任务简朴思路上,想想看该模块与否可以脱离这个系统存在,与否可以通过简朴修改参数方式在其她系统和应用环境下直接引用,这样就能极大避免重复性开发工作,如果一种软件研发单位和工作组可以在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性工作中耽误太多时间,就会有更多时间和精力投入到创新代码工作中去。某些好程序模块代码,即便是70年代写成,拿到当前放到某些系统里面作为功能模块都能适合较好,而当前我看到是,诸多小公司软件一升级或改进就动辄所有代码重写,大某些重复性工作无谓挥霍了时间和精力。6:测试习惯作为某些商业化正规化开发而言,专职测试工程师是不可少,但是并不是说有了专职测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一种很重要特点就是问题发现越早,解决代价就越低,程序员在每段代码,每个子模块完毕后进行认真测试,就可以尽量将某些潜在问题最早发现和解决,这样对整体系统建设效率和可靠性就有了最大保证。测试工作事实上需要考虑两方面,一方面是正常调用测试,也就是看程序与否能在正常调用下完毕基本功能,这是最基本测试职责,可惜在诸多公司这成了唯一测试任务,事实上还差远那;第二方面就是异常调用测试,例如高压力负荷下稳定性测试,顾客潜在异常输入状况下测试,整体系统局部故障状况下该模块受影响状况测试,频发异常祈求阻塞资源时模块稳定测试等等。固然并不是程序员要对自己每段代码都需要进行这种完整测试,但是程序员必要苏醒结识自己代码任务在整体项目中地位和各种性能需求,有针对性进行有关测试并尽早发现和解决问题,固然这需要上面提到需求理解能力。7:学习和总结能力程序员是人才很容易被裁减,很容易落伍职业,由于一种技术也许仅仅在三两年内具备领先性,程序员如果想安身立命,就必要不断跟进新技术,学习新技能。善于学习,对于任何职业而言,都是迈进所必须动力,对于程序员,这种规定就更加高了。但是学习也要找对目的,某些小codingfans们,她们也津津乐道于她们学习能力,一会儿学会了asp,一会儿学会了php,一会儿学会了jsp,她们把这个作为炫耀资本,盲目追逐某些肤浅,表面东西和名词,做网络程序不懂通讯传播合同,做应用程序不懂中断向量解决,这样技术人员,不论掌握了多少所谓新语言,永远不会有质提高。善于总结,也是学习能力一种体现,每次完毕一种研发任务,完毕一段代码,都应当有目跟踪该程序应用状况和顾客反馈,随时总结,找到自己局限性,这样逐渐提高,一种程序员才也许成长起来。一种不具备成长性程序员,即便眼前看是个高手,建议也不要选用,由于她落伍时候立即就到了。具备以上所有素质人,应当说是够格程序员了,请注意以上各种素质都不是由IQ决定,也不是大学某些课本里可以学习到,需要仅仅是程序员对自己工作结识,是一种意识上问题。-----------------------------------------------------------------那么作为高档程序员,以至于系统分析员,也就是对于一种程序项目设计者而言,除了应当具备上述所有素质之外,还需要具备如下素质:第一、需求分析能力对于程序员而言,理解需求就可以完毕合格代码,但是对于研发项目组织和管理者,她们不但要理解客户需求,更多时候还要自行制定某些需求,为什么这样说呢?普通而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出需求,这时候对于研发部门,她们看到不是一种完整需求,普通而言,该需求仅仅是某些功能上规定,或者改正规些,也许获得一种完整顾客视图;但是这都不够,由于客户由于非技术因素多某些,她们也许很难提出完整和清晰,或者说专业性性能需求,但是对于项目组织者和规划者,她必要可以苏醒结识到这些需求存在并在完毕需求分析报告时候恰当提出,同步要完整和清晰体当前设计阐明书里面,以便于程序员编码时不会失去这些准则。程序设计者必要对的理解顾客需求所处环境,并针对性做出需求分析,举例而言,同样一种软件通过ASP租用方式发布和通过License方式发布,性能需求也许就是有区别,前者强调是更好支撑能力和稳定性,而后者则也许更强调在各种平台下普适性和安装使用简捷性。第二、项目设计办法和流程解决能力程序设计者必要可以掌握不少于两到三种项目设计办法(例如自顶至下设计办法,例如迅速原型法等等),并可以依照项目需求和资源搭配来选取适当设计办法进行项目整体设计。设计办法上选取不当,就会耽误研发周期,挥霍研发资源,甚至影响研发效果。一种程序设计者还需要把诸多功夫用在流程图设计和解决上,她需要做数据流图以确立数据词典;她需要加工逻辑流图以形成整体系统解决流程。一种流程有问题系统,就算代码多美丽,每个模块多精致,也不会成为一种好系统。固然,做好流程分析并选取好项目设计办法,都需要在需求分析能力上具备足够把握。第三、复用设计和模块化分解能力这个似乎又是老调重谈,前面基本素质上不是已经阐明了这个问题吗?作为一种从事模块任务程序员,她需要对她所面对特定功能模块复用性进行考虑,而作为一种系统分析人员,她要面对问题复杂多,需要对整体系统按照一种模块化分析能力分解为诸多可复用功能模块和函数,并针对每一模块形成一种独立设计需求。举个例子,好比是汽车生产,最早每辆汽车都是独立安装,每个部件都是量身定做,但是日后不同样了,机器化大生产了,一种汽车厂开始通过流水线来生产汽车,独立部件开始具备一定复用性,在日后原则化成为大趋势,不同型号,品牌甚至不同厂商汽车部件也可以进行以便换装和升级,这时候,汽车生产效率达到最大化。软件工程也是同样道理,一种成熟软件行业,在某些有关项目和系统中,不同部件是可以随意换装,例如微软许多桌面软件,在诸多操作模块(如打开文献,保存文献等等)都是复用同一套功能模块,而这些接口又通过某些类库提供应了桌面应用程序开发者以便挂接,这就是复用化模块设计明显一种佐证。将一种大型,错综复杂应用系统分解成某些相对独立,具备高度复用性,并能仅仅依托几种参数完毕数据联系模块组合,是作为高档程序员和系统分析员一项最重要工作,适当项目设计办法,清晰流程图,是实现这一目的重要保证。第四、整体项目评估能力作为系统设计人员,必要可以从全局出发,对项目又整体苏醒结识,例如公司资源配备与否合理和到位,例如工程进度安排与否能最大化体现效率又不至于无法按期完毕。评估项目整体和各个模块工作量,评估项目所需资源,评估项目也许遇到困难,都需要大量经验积累,换言之,这是一种不断总结合计才干达到境界。在西方某些软件系统设计带头人都是很年长,例如4,50岁,甚至更老,她们在编码方面已经远远不如年轻人那样活络,但是就项目评估而言,她们几十年经验积累就是最重要和宝贵财富。中华人民共和国缺这样一代程序员,重要还不是缺那种年龄程序员,而是那种年龄程序员基本上都是研究单位作出来,都不是从专业产品化软件研发作出来,她们没有能积累那种产品化研发经验,这也是没有办法事情。第五、团队组织管理能力完毕一种项目工程,需要团队齐心合力,作为项目设计者或研发主管人,就应当有能力最大化发挥团队整体力量,技术管理由于其专业性质,不大同于普通人事管理,由于这里面设计了某些技术性指标和因素。一方面是工作量化,没有量化就很难做到适当绩效考核,而程序量化又不是简朴代码行数可以计算,因而规定技术管理人员需要能真正评估一种模块复杂性和工作量。另一方面是对团队协作模式调节,普通而言,程序开发协作普通分为小组进行,小组有主程序员方式,也有民主方式,依照程序员之间能力水平差距,以及依照项目研发需求,选取适当组队方式,并能将责权和成员工作任务紧密结合,这样才干最大发挥组队效率。一种代码水平高人,未必能成为一种合格项目研发主管,这方面能力欠缺往往是容易被忽视。综上可以看到,作为一种主管研发负责人,一种项目设计者,所需要具备素质和能力并不是程序代码编写能力,固然普通状况下,一种程序员通过不断总结提高达到了这种素质时候,她所具备代码编写能力也已经相称不简朴了,但是请注意这里面因果关系,一种高水平项目设计者普通已经是代码编写相称先进人了,但是并不是一种代码相称先进程序员就可以胜任项目设计工作,这里面存在也不是智商和课本问题,还是在于一种程序员在积累经验,逐渐提高时候没故意识到应当思考哪方面东西,没有故意识就项目组织和复用设计进行揣摩,没有经常性文档习惯和总结习惯,不变化这些,咱们合格项目设计者还是非常欠缺。此外,为防止有无聊人和我较真,补充一点,本文针对目的是作商业化软件项目和工程,那些科研机构编程高手,例如算法高手,例如图象解决高手,她们工作是研究课题而非直接完毕商业软件(固然最后间接成为商业产品,例如微软研究院在作研究课题),因而她们强调素质也许是此外东西,这些人(专家),并不能说是程序员,不能用程序员原则去衡量。最后补充一点东西,一种软件项目研发设计流程是如何呢?以普通原则设计办法为例(但是笔者喜欢迅速原型法):第一种环节是市场调研,技术和市场要结合才干体现最大价值。第二个环节是需求分析,这个阶段需要出三样东西,顾客视图,数据词典和顾客操作手册。顾客视图是该软件顾客(涉及终端顾客和管理顾客)所能看到页面样式,这里面包括了诸多操作方面流程和条件。数据词典是指明数据逻辑关系并加以整顿东东,完毕了数据词典,数据库设计就完毕了一半多。顾客操作手册是指明了操作流程阐明书。请注意,顾客操作流程和顾客视图是由需求决定,因而应当在软件设计之前完毕,完毕这些,就为程序研发提供了约束和准绳,很遗憾太多公司都不是这样做,因果颠倒,顺序不分,开发工作和实际需求往往因而产生隔阂脱节现象。需求分析,除了以上工作,笔者觉得作为项目设计者应当完整做出项目性能需求阐明书,由于往往性能需求只有懂技术人才也许理解,这就需要技术专家和需求方(客户或公司市场部门)可以有真正沟通和理解。第三个环节是概要设计,将系统功能模块初步划分,并给出合理研发流程和资源规定。作为迅速原型设计办法,完毕概要设计就可以进入编码阶段了,普通采用这种办法是由于涉及研发任务属于新领域,技术主管人员一上来无法给出明确详细设计阐明书,但是并不是说详细设计阐明书不重要,事实上迅速原型法在完毕原型代码后,依照评测成果和经验教训总结,还要重新进行详细设计环节。第四个环节是详细设计,这是考验技术专家设计思维重要关卡,详细设计阐明书应当把详细模块以最'干净'方式(黑箱构造)提供应编码者,使得系统整体模块化达到最大;一份好详细设计阐明书,可以使编码复杂性减低到最低,事实上,严格讲详细设计阐明书应当把每个函数每个参数定义都精精细细提供出来,从需求分析到概要设计到完毕详细设计阐明书,一种软件项目就应当说完毕了一半了。换言之,一种大型软件系统在完毕了一半时候,其实还没有开始一行代码工作。那些把作软件程序员简朴理解为写代码,就从根子上犯了错误了。第五个环节是编码,在规范化研发流程中,编码工作在整个项目流程里最多不会超过1/2,普通在1/3时间,所谓磨刀不误砍柴功,设计过程完毕好,编码效率就会极大提高,编码时不同模块之间进度协调和协作是最需要小心,也许一种小模块问题就也许影响了整体进度,让诸多程序员因而被迫停下工作等待,这种问题在诸多研发过程中都浮现过。编码时互相沟通和应急解决手段都是相称重要,对于程序员而言,bug永远存在,你必要永远面对这个问题,大名鼎鼎微软,可曾有持续三个月不发补丁时候吗?从来没有!第六个环节是测试测试有诸各种:按照测试执行方,可以分为内部测试和外部测试按照测试范畴,可以分为模块测试和整体联调按照测试条件,可以分为正常操作状况测试和异常状况测试按照测试输入范畴,可以分为全覆盖测试和抽样测试以上都较好理解,不再解释。总之,测试同样是项目研发中一种相称重要环节,对于一种大型软件,3个月到1年外部测试都是正常,由于永远都会又不可预料问题存在。完毕测试后,完毕验收并完毕最后某些协助文档,整体项目才算告一段落,固然日后少不了升级,修补等等工作,只要不是想通过一锤子买卖骗钱,就要不断跟踪软件运营状况并持续修补升级,懂得这个软件被彻底裁减为止。写这些环节算不上卖弄什么,由于实话讲我手边是一本《软件工程》,在大学里这是计算机专业必修课程,但是我懂得诸多程序员似乎从来都只是热衷于什么《30天精通VC》之类,她们有些和我同样游击队出身,没有正规学过这个专业,尚有某些则早就在混够学分后就把这些真正有用东西还给了教师。网上当前也很浮躁,某些codingfans乱嚷嚷,混淆视听,事实上真正技术专家很少在网上乱发帖子,如笔者这样不知天高地厚,其实实在是算不上什么高手,只但是看不惯这种对技术,对程序员误解和胡说,只得挺身而出,做拨乱反正之言,也但愿那些还沉迷于某些错误人士codingfans们能认真想想,走到正途上,毕竟那些聪颖头脑还远远没有发挥应有价值。高职教诲软件人才培养中存在问题与对策杨

要:剖析了国内高职软件教诲中存在问题,提出了加强市场调研,明确高职软件人才定位;创新办学体制,走产学合伙道路;引进国际先进经验,深化教学改革等高职软件人才培养对策。

核心词:高职;软件产业;人才培养

随着软件技术日新月异和经济全球化进一步加深,软件产业面临着新发展机遇和形势,对人才需求量大增,特别是对可以纯熟编程技术工人或基本程序员即“软件蓝领”需求量呈逐年上升趋势。国家为加快软件人才,特别是“软件蓝领”培养,教诲部在批准清华大学等35所本科院校试办软件学院基本上,又发文试办了35所示范性软件职业技术学院。当前,除了示范性软件职业技术院校培养软件人才外,在全国1047所高职(专科)院校中80%以上学校都开办了计算机专业。但成果却是:一边是软件产业缺少大量蓝领人才;另一边却是计算机专业高职毕业生就业难。这虽然与毕业生就业盼望有关,但究其根本是当前国内高职教诲软件人才培养中尚存在一定问题。

一、高职教诲软件人才培养中存在问题

(一)缺少对软件人才准拟定位

培养

“软件蓝领”主力军——高职院校定位在理论上较为清晰,但在实际培养过程中依然很模糊,并没有形成定位精确、以技术应用为主导、面向市场软件人才培养模式。其在实际培养过程中浮现了两种倾向:一是盲目向本科看齐,套用老式学术教诲培养模式,致使培养出来软件人才有理论、无实践,不具备技术应用能力;另一种倾向是不考虑教诲层次性、滞后性,不辨别市场需求真实性、饱和度,盲目跟进市场。

(二)软件人才培养模式没有突破学科教诲体系

国内高职软件专业人才培养模式中课程设立、教学办法近年来并无过多变化,学科体系烙印依然明显,过度注重学生基本知识,只强调遵循知识系统上衔接性。虽然大某些高职院校采用模块式教学,但其模块也只是将不同课拼凑在一起,详细教学选取时依然遵循上述原则。在教学办法方面,虽然基本上采用了理论与上机实践相结合授课办法,但依然是以课本知识讲授为主,对学生职业技能以及动手能力方面培养相对局限性。当前国际软件人才培养中盛行“基于案例学习设计”教学办法在国内高职院校基本难觅踪迹。

(三)软件人才教诲教学内容陈旧,教材滞后导致人才国际化限度低

软件行业发展基本上属于以产品主导市场和技术发展,而国内大某些高职院校计算机专业在办学上基本沿袭老式封闭式办学,专业教学与社会市场互相脱离。因而,课程内容滞后于专业技术更新与发展,教学中很难有反映新软件技术、新软件工具应用等内容,特别是案例教学、项目教学内容很少,导致学生在实际工作中分析问题和解决问题能力较弱。此外,在职业技能培养方面,职业性法律法规、国际和国标、文档规范、安全性办法、维护管理经验等重要内容基本上没有进入教学;在职业素质教诲方面,如哺育开拓精神、市场观念、管理技巧、团队精神、应变能力等举措,尚没有得到全面实行。同步,当前软件技术平均18个月更新换代一次,而高校教学使用计算机专业教材,普通需要2—3年才干更新一次。因而,软件业最新发展技术与老式教材更新难以同步。这些问题导致培养出人才知识构造国际化限度低、与软件行业发展相脱节。

(四)单一考核方式影响了培养目的实现

培养学生解决实际问题能力、较高职业道德水平和规范职业行为是高职教诲人才培养目的。但是,当前高职院校对学生考核形式单一,考核重点是学生掌握知识多少,这在一定限度上将教师教学重点导向重课本知识传授而忽视能力培养。同步,许多学校采用这种单一考核方式,衡量学生职业道德水平和职业行为规范及养成素质,导致课程形同虚设。此外,事实上,当前许多学校引进了厂商认证内容,这无疑对培养学生实际应用能力有很大好处,但这种单一考核方式扭曲了认证考试真实目,浮现了许多学生手头有诸多职业资格证书,而在实际工作中连简朴代码都不会书写怪现象。

二、高职教诲软件人才培养改革和创新

(一)加强市场调研,分析人才需求特点,明拟定位

依照高职教诲特点,高职软件专业培养目的应当定位于“软件蓝领”。而其作为产业发展大量需求基本人才,需面对更详细生产或服务对象,要依照现实生产或服务条件,解决实际生产或服务问题。由于人才普通均有一定技术领域限制,专业定向与职业方向关系更为密切,更加贴近社会生产实际和职业分工。同步,软件业是一种技术更新非常迅速行业,其更新速度可以说在既有所有行业中居于首位。因而,培养市场意识,加强对社会行业、公司调研,对人才需求进行分析与预测,是保证专业适应社会经济建设需求必要条件。

在对社会行业、公司调研过程中,必要注意如下问题:一是要充分关注技术发展对岗位与行业带来变化;二是要分析、研究、预测公司将来人才需求特点,寻找专业生长点;三是要将这种调研活动制度化、定期化,从而保证在专业设立与建设过程中,可以充分关注和适应行业动态。

(二)创新办学机制,深化办学模式改革,走产学结合道路

发展软件高等职业技术教诲规定咱们必要进一步解放思想,更新观念,改革办学体制,实行开放式办学,吸取国内外优质教诲资源,深化产学合伙,积极适应就业市场需求,摸索“订单式”培养、“前店后厂”、连锁办学等多样化办学模式,争获得到教

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论