软件人才多了吗?调查显示,软件人才在量上还存在着巨大缺口,众多企业也在为难以找到合适的软件人才大伤脑筋。
软件人才少了吗?每年都有大批计算机相关专业的学生面临就业,可求职面试却四处碰壁。
在多与少的矛盾中,软件人才的前途与“钱”途何在?
Part1
软件人才冷还是热
——透视供给与需求的矛盾
实例1:
主人公:小孙
身份:西安某重点院校2005届毕业生
应届生的困惑:招聘向我说“不”
实例陈述:我是今年7月毕业的计算机科学与技术专业本科生,由于家在北方,非常希望能来北京工作。由于学校招聘会上北京的软件企业很少,就没有签约。毕业后,我只身来到北┣笾埃鹣然故呛苡行判模ㄏ铝税敫鲈抡业焦ぷ鞯哪勘辍7治鲎约旱那榭觯E谱硬淮恚鞲煽纬桃踩肥笛У煤芎茫颈喑堂晃侍猓淙幻蛔龉钅浚胱乓环菟档霉サ某杉ǖセ故腔嵊邪镏?墒窃谕瞎阃都蚶蟠笮⌒〉淖ǔ≌衅富嵋踩チ瞬簧伲鲜实墓ぷ魅匆恢崩胛液茉丁?
看到现场招聘的JAVA工程师、DSP工程师、网络设计师等等这些职位的具体要求,职位的共同要求都是1到3年,甚至5年工作经验。有些公司看到我是应届生,连自荐材料都委婉地拒绝了,告知没有一定的工作经验,招聘到企业不能立刻产生效益,这样一个月下来,面试机会并不多。我自己也很郁闷,在校很用功,也学了当时看来很流行的开发工具,应聘软件工程师本来应当顺理成章,为什么却屡屡被拒之门外?两个月后,我才终于应聘到一家软件企业。据我所知,我的多数本科同学也都在规模较小的企业工作,能够从事与IT相关的工作已经很满足了。
解析:不少软件人才从事的工作技术壁垒很低,仅仅从开发的角度看,很多管理人员认为,应聘者的专业并不是选择的关键指标,经验才是顺利求职的敲门砖。对于毕业生来说,创造机会去实践确实十分必要,遭遇的求职尴尬也会少些。
实例2:
主人公:罗先生
身份:北京某软件企业人力资源部经理
企业的困惑:合适的人才难求
实例陈述:由于接到了几个比较大的项目,从6月份我们就开始陆续招聘,职位从项目经理到软件开发工程师都有,预计有30人左右的招聘计划。从接收简历的情况来看,接近70%都是应届生,筛选过后发现,简历当中写到的大多都是在校的一些课程实习,很少有人会明确说明自己在软件的某一方面有一定特长或者曾经有在软件公司实践的经历。
我们约过一些感觉还可以的学生过来面试程序员职位,并进行了笔试,结果让人满意的寥寥无几。研发部反馈回来的情况是,不少面试的应届生连基本算法都搞不清楚,基本功很薄弱,其中一部分还来自教育部直属的重点大学。其中,北京某大学的一名应届毕业的女生给我留下的印象最深,她在笔试中居然连程序语言当中最基本的“冒泡”排序都只写了一层循环,从中可以看出,她对数据结构当中最基本的算法都没有理解清楚,这显然连初级程序员的标准都达不到。我给她的建议是,语法知识可以再培养,可编程体现出来的清晰思维则是需要建立在对基础知识的透彻理解之上,不是一朝一夕就能掌握的,建议她还是回去沉下心来,把基础知识好好看一看。
解析:与支付较高薪酬吸引在职者转工相比,能培养自己的新人当然是明智选择。其实企业并不完全回避再培训,只是这要在可接受的范围之内。基础扎实、短期培训后就能快速上手的毕业生,一定会是企业乐于接收的。
实例3:
主人公:李老师
身份:北京某高校就业办公室负责人
高校的困惑:校园签约率太低
实例陈述:我们学校很重视毕业生就业,每年都要组织多次招聘会,邀请到关系良好的各地用人单位来校选拔人才,今年的校园招聘会也即将进行。为了指导更多的毕业生就业,学校也给就业办增加了人手。从近几年的招聘会上看,我们发现场面搞得很大,来的单位也不少,但签约率却很低。几场招聘会下来,也还有相当一部分学生没有找到合适的工作。按说我们也应该算是名校,向外界宣传的就业率有95%,但这是考研、出国、就业全部计算在内,而且还包括了所谓“灵活就业”在内,学生签了这个协议也算在就业率之内。身在就业第一线,惭愧之余更多的还是忧心。
求职难的现象以计算机学院的毕业生最为典型,据我了解,用人单位提出的职位要求很高,从成绩到能力,甚至学历;更主要的原因是,企业提供的职位大多都不是研发职位,主要集中在售前、售后技术支持和软件测试,有很多学生,尤其是成绩不错的学生觉得这些职位的门槛不高,也很难接触到全面的软件工程锻炼,以至于在迟疑中没有签约。
企业也反馈回来招人难的问题,单纯从成绩单上看,也许成绩很高,但实践往往很少,更重要的是,拘泥于书本,个人想法比较匮乏,有时还会发现沟通能力差或者本身对开发兴趣就不大,是为了找工作而找工作,这些学生不适合从事研发;而一旦企业认为一些学生有培养潜质,但又因为个人定位和预期的不同,在职位、薪酬等方面有时很难谈拢。
解析:校园签约率低的原因很多,学校对学生在课程之外的教育也就显得更加必要,包括职业规划方面的指导。本科固然是高层次人才培养的打基础阶段,但大部分本科生的培养目标应当是符合社会要求的实用性人才。
Part2
怎样从人材到人才
——众说软件人才的培养
张铭北京大学信息科学技术学院教授
信息化社会需要的究竟是什么样的计算机人才?未来的计算机专业教育该向哪个方向走?针对这些问题,我作为教育部高等教育计算机科学与技术专业教学指导分委员会(简称教指委)委员,参与了教指委进行的深入调研。
培养结构急需调整
就业出现困难的主要原因,不是数量太多或质量太差,而是满足社会需要的针对性不够明确,导致了结构不合理。
从计算机专业毕业生所从事的工作性质来划分,大致上可以分为以下3 类:从事研究型工作、从事工程型工作和从事应用型工作。目前高校计算机专业在本科阶段对第前两类人才的培养已有一定基础,对于第三类人才的专门培养则几乎是空白。
多角度改进教学
在未来的发展中,数学基础、建模能力等将决定一个计算机人才的发展前景。目前计算机专业的基础课程比重并不小,但由于学生不了解其作用,许多教师没有将理论与实际结合的方法与手段传授给学生,致使相当多的在校学生不重视基础理论课的学习。要改进教学,教师在教一、二年级课程时需要条理清晰、深入浅出,教三、四年级则一定要能够引导学生深入思考,这就要求老师的学术水平要高,具有实际项目研究和开发经验。
别把教育等同于培训
教育注重长期的基础能力培养。从学校角度考虑,课程设置是从基础开始培养一名学生解决问题的能力,不只是单一的知识结构,而是从多方面培养,这就是教育和培训的不同之处。要求把课程都设置成培训内容的看法也是与人才培养的渐进性不符的。
在访谈中,很多企业反映,没有经过系统教育的学生反映出来的最大问题是抽象能力不够,对于如何分析问题,应该怎样解决经常表现得束手无策。很多学生实现能力有余,而到更高层次的抽象能力,独立解决问题,这些能力上的培养就不是培训能解决的。
推行分级分类教学
在IT 企业里工作的毕业生也普遍反映,计算机科学与技术的专业特征不明显,缺乏竞争力。在调查中我们发现,不少计算机人才所从事的工作技术壁垒很低,而且在从事与行业相关的应用系统开发与研究工作中,除了计算机专业知识,更需要与行业相关的专业知识,因此,计算机专业的毕业生并没有很大竞争力。只有在一些涉及较深的计算机理论和计算机核心技术的工作岗位上才具有比较明显的优势。
要根据社会需求制定不同的培养规格,是尽快解决目前计算机人才培养专业特征不明显的一条可能的途径。而从长远看,也十分有必要考虑对计算机科学与技术专业进行适当分解,进一步明确专业方向,以适应社会的要求。
加强实践能力的培养
有些企业反映,学生在校学习中没有形成良好习惯,基础没打好,认为学一门语言就可以去用了,结果编程基础不扎实,稍微复杂点儿就会出问题,而且编程不规范,软件工程能力较差(突出表现就是不喜欢写文档和注释)。缺乏有效的、足量的实践环节,是企业和毕业生的共同反映。
在培养实践能力方面,很多高校都进行了有益的尝试,例如,鼓励学生参加挑战杯、ACM 竞赛等社会性活动;鼓励学生组成团队进行实践活动;组织一些大规模练习性项目,在项目中用上软件工程的知识等等。有些更超前一些的高校已经开始与企业进行合作,加强实践教学环节,实现学校与企业、学生与企业的互动。学生从在校期间就去专业对口的公司实习,帮助自己定位,认清并发挥自身优势,为今后顺利地进行工作定位做好铺垫。
使用的操作平台的差异
使用的开发语言与环境的差异
李翰璋甲骨文中国公司华北区董事总经理
软件产业的快速发展与软件人才的能力有着很大关系。印度可以说是软件强国,他们的软件人才的培养,很大程序上依靠的是职业教育。因此,中国要成为象印度一样的软件强国,软件人才的培养是关键,学生经受了在高校里良好的、系统的基础教育和理论教育之后,基本具备了解决问题的能力。但要在实用的工程方面快速成长,就要要发动职业教育、尤其是企业培养的方式来加速软件人才的成长和培养。
甲骨文中国公司在2002年就推出了“金色中国计划”,为中国软件产业培养人才就是“金色中国计划”的主要内容之一。同年,甲骨文中国公司和教育部签署了一项合作备忘录,为35所国家示范性软件学院提供软件、参考资料、教师培训和认证资源,目前,甲骨文中国公司提供捐赠已使8000多名大学生获益;甲骨文提供的“Oracle助教金”也支持了50名大学教师参加与Oracle技术相关的教师进修。
2003年,我们针对大学毕业生,首次推出了“甲骨文中国毕业生发展计划”,这是一项全面发展计划,该计划已经连续实施了三年,至今已经有46名学员参加过培训。在扩展为两年培训中,学员们将在课堂中接受广泛深入的培训课程,内容涵盖技术、商务、个人管理效率。此外,学员还将参与旨在增强管理能力和商业核心竞争力的一系列项目实践,最后,他们会被有针对性地委派到甲骨文中国公司的各部门接受在职培训。
过去两年中,这一计划取得了巨大成功。毕业学员现在很多都已经在他们的工作团队中成为中坚力量。
浦凯旋NIIT中国区总经理
人才结构严重失衡
软件企业都需要三类人才:第一类是软件高级人才;第二类是软件工程师;第三类是基础程序员。目前,中国的软件人才结构稀缺的是两端,而多数软件人才通过正规的大学教育,集中在软件工程师的层面上。他们在学校期间,他们受过良好的、系统的基础教育和理论教育,这些能力的培养是至关重要的。但是,学科型和实用型之间毕竟还存在一定距离,传统教材更新速度要落后于技术更新的速度;同时在校学习也往往会导致缺少实践机会,因此,传统的学历教育培养出来的学生往往是理论知识丰富,但是在参与项目等实际操作的过程中,实践经验不足的短处就显现出来了,不能马上就适应企业的需要。
专业也要嫁接就业
这样的矛盾就给毕业生和企业之间隔上了一道巨大的鸿沟,一方是能力很强,却需要一定磨合期,另一方往往是需要马上上手。而IT专业培训机构正是这道鸿沟上的一座桥梁。作为职业教育机构,对传统软件人才培养也起到了很好的补充作用。这些培训机构的教材大多来源于企业本身,教师也都来自企业,有着丰富的项目经验,课程也针对企业需求设计,因此培养出的软件人才也更符合企业的实际需要。为此,有很多大学生选择进入一些专业的IT培训机构积累实战经验。而参加培训并通过各项权威认证考试并不是最终目的,重要的是帮助学员掌握工作岗位所需的实际工作技能。这和大学毕业生在企业中磨炼自己,补充实践方面的不足是一致的。都是为了让这些毕业生能将理论知识与实践充分结合,帮助他们逐步走向成熟。
王志健
北京大学软件与微电子学院 2003级硕士研究生(面临毕业)
实践机会不是等来的
本科毕业时,我发现就业门槛突然提高了,无论是经验还是学历,于是选择了考入北大继续深造。现在又将面临社会选择,这一次我信心很足。谈及面试的体会时,我和同学们有一点共同体会,公司招聘的目的性很强,往往都是为了项目上马或者紧急的技术缺口来招聘。因此,项目实践的经验也就非常重要,成绩反倒有时在其次了。有些在校生为自己没有参与过项目开发而苦恼,其实机会是可以创造的。拿我自己来说,学院课题组的项目需要人手,我就报名参加了;跟随导师也曾做过一些企业研发部过来的课题,通过这些,书本知识就应用到了实践中去,找到软件工程的感觉,并且也认识了不少优秀的开发人员,相互交流,互相促进。对于软件这样一门应用科学来讲,实践特别重要,主动创造机会去实践,面临选择的时候信心才会越足。
偏离应用的研究很迷茫
开始读研的时候,曾经给自己制定了很多计划,包括必读书籍,但其实并不知道如何融会贯通,对各门知识之间的关联性理解不够,掌握的知识是割裂的。在开题的时候,才发现原来很多知识可以这样使用!有相当多的学生知道该怎样写程序,却不知道为什么要这样做,我觉得这是一个症结。读书和研究还是要面向工程应用多些,最好可以和公司合作,现在我的母校就正在这方面做着有益尝试,我感觉效果很好。
机械编程不等于开发
我以前对软件开发的认识就是对着电脑编程。这个认识直到研一时才得以转变,做应用课题时,我偏重于硬件的电路实现,而导师则指导我如何从需求分析开始,一步步进行下去,完全是以软件工程的方式来进行,这才让我明白什么是工程,什么是软件。随着学习的深入,认识也更清晰起来。但我知道,曾经的错误认识现在学生中还比较普遍,还以为把程序写流畅就等于懂软件工程了。某著名外企研究院负责人就曾说过,其实写程序只是整个软件工程中很小的一部分,真正懂软件工程的人,要能把用户需求转换成软件功能。我觉得,我们这些准程序员步入社会之前,还真应该事先就做好这门必修课。
乐大山
北京大学信息科学技术学院计算机系2004级本科生
方向不明,所以广泛地学
如果去问我的同学以后打算做什么,不少人会说不知道。而正因为不清楚,我们都会努力地学好每项知识,把基础知识学得扎实些。一些人可能会从事科研工作,但更多人还是要走进企业,成为软件开发人员。奇怪的是,在这样一个应用性较强的专业中,我很少看到有同学到企业中去了解或实习,这样就很难知道企业到底需要什么样的人才。有人简单地相信学好主线课程就是正确的,有人则对基础知识重视不足,这些都是因为他们不知道这些知识到底有什么用。没有大目标的学习一定会是疲惫的。
独立操作,却没学会共事
北大的同学都喜欢用一款叫Maze的P2P软件下载资料,Maze正是我院的几个研究生合作开发的。从创意到实现,他们仅用了3个月,从这里我们可以看到团队协作的力量,然而这样的学生团队却并不多见。
在我们的学习环境里,更多讲究个人能力的培养,也就是面对问题能否通过个人力量独立解决,最多也不过是鼓励同学通过讨论获得思路,然后独立实现。在这样的氛围中,几个人在一起共同完成一个程序似乎是被严格禁止的。在实习中我了解到,工作后的软件开发几乎都是团队协作的过程,这不仅需要个人编程能力,更需要与同事的沟通能力以及管理、组织能力。
不实战就不知道差距
在几段实习工作中,我发现:这些企业架设的服务器是Linux或FreeBSD平台的,使用的程序设计语言大多是Java;他们用JSP做网页,要求软件附有完整的帮助文档;要求程序不光性能好,界面也要美观……很多要求都与我们在校进行的“编程”有着明显差异。
在学校方面,老师已经开始有意识地强化训练我们的说明文档编制能力,也要求我们将程序写得可读性更好。但学校单方面的努力还远远不够,站在自身的角度,如果希望能更加适应未来的工作环境,最好多去接触社会,在锻炼中扩展知识面。
Part3
走向优秀路有多远
——为程序员成长指路
John Kaster
Borland 软件公司 (美国)首席工程师
拥有高水平的开发技术,需要保持好奇心,而与此相关的超强吸收能力和创新精神也是必不可少。
Borland公司在软件行业中耕耘了20 多年,对软件开发行业有着深入了解。我们认为,作为软件开发从业人员,要想实现个人成功,两方面的素质是不可或缺的:一方面,是对开发人员个人专业技术方面的要求。另一方面,是开发人员适应整个行业的发展特点,在团队协作、整体软件开发质量管理和交付方面具备更高的认识和能力。
软件开发是一个脑力非常集中的工作,这个行业的技术更新和发展非常迅速,开发人员想要了解技术的发展,跟上技术变化,拥有高水平的开发技术,这当中要保持好奇心,而与此相关的超强吸收能力和创新精神也是必不可少。这会是在就业市场和未来的职业生涯中保持强势竞争力的最佳手段。参加各种技术大会是一个很好的学习途径,Borland 每年举办的 BorCon 大会就是这样的平台,让大家进行技术交流、激发创新、把握新的技术方向。这个大会的技术性很强,内容也非常深入。同时我们作为一个独立的平台厂商,能够得到不同阵营的合作伙伴支持,在以往的 BorCon 大会上,像微软、SUN 这些厂商都能走到台前,与大家共同交流技术发展方向,这对开发人员来讲是不可多得的学习机会。
对于第二方面的素质,我们认为,在目前的市场环境下,软件要成为完整产品,技术只是一方面,同时还要求更高的大团队协作能力,整体项目过程管理等考虑。而这些能力需要具备相应功能的产品和技术来支持,只有这些都具备了,软件开发才能真正有效。Borland已经形成了从产品技术到咨询服务的完整系统,使得很多软件公司大大提升整体运作方式。
对软件开发人员来讲,有一套完整的管理体系,或者管理平台是对软件项目的一个质量保障,是按照时间表及时完成项目的一个保证,同时不会超预算,对于项目的方方面面的风险控制都是一个有效的保证。
程勇中国科学院计算机研究所
项目参与是能否把知识用到实处的重要环节,从程序员开始,一直到更高层次,毫不例外,我们都是从实际项目中成长起来的。
成为合格的程序员显然是软件人才的最基本要求,很难想象连程序都写不好还能开发出高质量的软件产品。对于程序员来说,要求一定能够精通一门或两门程序设计语言,请注意,要求是精通。对于在校学生来说,学习C/C++或Java这些开发语言较多,这都是比较基础又必须熟练掌握的语言,但却能够利用这些语言开发出高质量的方法和类;一般而言,学校也会开数据库查询语言SQL这门课,这在实际中应用很多,也是应该熟练掌握;如果学有余力,还能自学使用某种开发环境(如Visual Studio、Eclipse),学会调试程序、版本控制的话,当然就更好了。可以说这些是程序员入门的最基本要求。对于大学生来说,做到这些并不难。
如何提高编程能力呢?途径无非只有两个,多实践,亲自编写程序,现在大学校园里程序抄袭成风,这就对自己很不负责任了;充分利用现有资源,包括书籍和网络资源,《C++ Primer》、《The C programming Language》、《Java编程思想》、《Introduction to Algorithm》这几本书都是我很喜欢的,而且也是很多同行证明的优秀书籍,值得仔细阅读,对快速提高编程水平一定会大有助益;此外,网上有很多程序员在一起交流学习的论坛,这些都是帮助自己快速成长的好去处。
系统分析和设计员作为更高层次的软件人才,还要求对客观世界及其关系具有深刻理解,并能统观全局。系统分析员成长初期,理论学习极为重要,深入研读《面向对象的系统分析和设计》、《UML手册》这些书籍有助于提升看待软件系统的视角。而培养系统分析和设计员最有效的方式还是参与实际项目,毕竟没有两个系统完全相同,分析和设计经验具有更突出的作用。
正文
软件蓝领的前途何在(转)2005-12-16 19:58:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/accp123/8363.html
阅读(5155) | 评论(1)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论