APP下载

面向软件专业学生提升系统开发能力的研究

2017-04-06余秋明晏峰

赤峰学院学报·自然科学版 2017年5期
关键词:程序员毕业编程

余秋明,晏峰

(江西理工大学软件学院,江西南昌330013)

面向软件专业学生提升系统开发能力的研究

余秋明,晏峰

(江西理工大学软件学院,江西南昌330013)

从软件类毕业生就业情况出发,分析了软件类毕业学生系统开发能力现状,描述了软件类从业人员职位及职业路线以及作为软件工程师应具备的知识、技能及素养,针对现状及要求,提出了一种旨在提升学生系统开发能力的教学培养模式,以增强软件类学生职业素养.

系统开发能力;教学研究;培养模式;软件工作室

1 引言

从近年来毕业生就业及从业情况来看,很多软件专业毕业生不好找工作或者是难以胜任软件行业的工作岗位,究其原因,一方面毕业生成倍增多,相对而言就业岗位有限(当然也在增加),另一方面社会对软件相关的岗位要求越来越高,既要求学生具备较强的软件系统开发能力,又要具有一定的系统开发工作经验,使得学生一毕业就能直接胜任软件相关的工作岗位.从现有的情况得知,我们培养出来的软件毕业生离我们的培养目标相去甚远,确实,学生毕业时一没有工作经验,二来专业能力及系统开发能力不高或者说有待提升.为此,所毕业学生为了尽快能从事软件行业工作岗位,一般有两种途径,一种是招聘单位觉得所应聘的学生基础比较扎实,用人单位招聘过去后进行岗前实习培训,提升其软件系统开发能力,并积累一定系统开发经验,从而能够胜任软件开发工作岗位;另外一种是学生自己参加各种软件开发技术类的培训,结束后由培训机构推荐就业.无论哪种实现途径,都没有让软件企业(用人单位)和毕业学生实现就业的无缝对接,都需要为此承担相应的培训成本.为增强学生就业实力,面向软件专业学生提升系统开发能力的教学研究就变得比较紧迫.

2 软件开发人员职位及职业路线

从软件开发人员的生涯规划来看,我们可以大致分为以下三个阶段,如下表1所示.

表1 软件开发人职业路线及能力要求

作为刚毕业的软件专业学生,少有一毕业就能够从事系统架构设计工作的,一般是先从事程序员工作,能力较强的学生具备3-5年软件项目经验后,能够从事软件设计工作,即成长为高级程序员,再经过若干年历练后,有机会成长为系统分析师(系统架构).如引言部分所描述,很多毕业学生软件系统开发能力不足,系统开发的工作经验更是无从谈起,如此,软件专业毕业学生就连从事软件开发行业最基本的职位-程序员都难以胜任.

为此,本文所进行的教学改革研究主要是面向软件专业学生毕业后能够从事软件行业相关工作,特别是能够一毕业就能胜任软件工程师(程序员)或软件设计师(高级程序员)工作岗位而展开,为提升学生系统开发能力方面而做出一些教学改革尝试.

3 软件工程师应具备的知识、技能及素养

通过企业调研,我们了解到作为软件工程师,要胜任所在岗位职责,应该具备专业基本理论知识、软件开发基本技能及良好的职业素养,以及要积累一定的项目经验,最后一个就是软件技术更新较快,需要具备一定的自主学习能力,如图1所示.

图1 软件工程师需具备的能力和素养

具体展开来讲,专业基本理论知识就是需要掌握基础理论知识,如操作系统、编译原理、计算机网络、软件工程、数据结构与算法、计算机原理等,熟悉软件专业所涉及的基本理论.

软件开发基本技能需要熟练掌握一门编程语言,如JAVA/C++/C#等,如果做WEB开发还需要掌握页面前端语言如HTML/JavaScript等等,需要掌握软件开发工具(IDE集成开发环境),如JBuilder/Eclipse/VisualStudio.NET,熟悉一种关系数据库技术,如ORACLE/SqlServer/DB2/MySQL等,以及UML建模工具,熟悉软件开发过程.此外,作为软件工程师,作为主要编程人员,需要能够具备程序阅读的能力,由于软件开发工作不一定会从头开始,这就需要开发人员有良好的阅读程序的能力,能在尽可能短的时间里了解软件整体的架构,理解该软件初始的开发思想,能迅速并有效地参与到项目开发中去;需要较强的编程能力,具备良好的编程习惯,能遵循通用的编程规范,并做好注释;以及程序调试和测试能力,很多程序调试和测试的工作并不都是由编程人员完成,但很显然,程序员也需要具备程序调试和测试能力,对于明显的Bug能够及时排除.此外,具备以上编程基本功,还不足够,还需要具备一些系统需求分析、系统设计(包括系统概要设计,详细设计)、软件测试等方面的能力,否则根据软件工程开发模型以及软件开发流程来看仅仅编码是不行的,在软件开发流程中往往还需要参与到编码之前及之后的工作中去.

良好的职业素养首先要有服务意识,能主动站在客户的角度去考虑问题,倾听客户的想法和要求;其次需要有较好的表达和沟通能力,在和客户,领导,及同项目组的同事沟通顺畅,与其他工作岗位同事工作交接时能充分沟通;还有就是最为关键的一点,软件开发由于不是个人能完成的,需要整个项目团队一起来开发,这需要团队合作,所以良好的职业素养包括需要能够和项目组其他人员能够团结奋进,分工合作;还需要有抗压能力,软件开发是一项比较艰巨的任务,有时候时间紧,任务重,加班加点在所难免,需要进行自我调节;最后,很显然,创新意识作为软件工程师的职业素养必不可少.一定的项目经验,这需要积累,很多时候,做事情,解决问题需要凭借经验,软件开发也不例外.

自主学习能力作为软件工程师必备素养,必须具备,这要求程序员能够自行查找资料完成项目背景知识和所涉及的软件开发新技术,另外,软件开发技术飞速发展,也要求程序员不断学习,更新技术.

4 软件类毕业学生系统开发能力现状

学校现有培养方案中除了开设公共课程及选修课外,对于软件专业类课程一般是大一开设计算机入门课程,大二开设软件专业基础课程,大三、大四开设软件专业课程,大四进行毕业实习和毕业设计,并撰写毕业论文.

如前文所述,经过学校四年系统学习,软件类专业毕业学生基本掌握了本专业基础理论知识,但软件开发基本技能欠缺或技能水平不高.比如有些学生直到毕业也还没有掌握一门计算机编程语言,开发工具、建模工具更不熟悉,有些学生会能够编写一些代码,但也仅仅停留在小程序层面上,尽管课程体系中开设了数据库课程,有理论课如数据库系统概论,也有数据库技术类课程如Oracle或SqlServer,但很多学生仅仅只是为了拿学分通过考试,而没有真正意义上作为技术来掌握数据库技术,毕业设计本意上是为综合运用四年所学专业知识进行一个系统化的软件设计,但很多时候,由于忙着找工作,考研,并没有真正意义上去实现.至于职业素养,学校课程体系中没有体系出来,毕业学生自然不具备,软件开发经验更是缺乏.唯一可称道的是有些毕业学生基础理论比较扎实,自主学习能力较强.

5 一种新的提升系统开发能力的培养模式

鉴于软件类毕业学生系统开发能力现状,参照软件工程师应具备的能力、素养要求,在现有培养方案及课程体系之外,设想一种新的提升系统开发能力的培养模式,如图2所示.

图2 一种新的提升系统开发能力的培养模式

(1)基础知识储备,首先在学校现有课程体系上,做好编程相关的基础知识储备,例如数学基础知识,计算机算法,程序设计基础,数据库系统,软件工程,计算机网络,数据结构.这些理论知识,一般由校内教师课堂授课,在课堂上完成,即在现有课程体系上获取.此外,在现有课程体系上很多学校还会开设软件开发实践类课程及应用技术类课程,例如计算机编程语言,UML,一门数据库技术课程等,这些课程学生不能仅仅当做一门课程通过而已,而是要当做一种技术来掌握.

(2)编程基本功的训练与提升,训练在课堂外,一般是在机房或实验室,由实践实训指导教师设计一系列编程范例,要求学生独立或组队完成,提升学生在程序阅读,程序编写,程序调试及程序算法方面的能力,并适当要求基础较好的学生参加不同层次软件类编程竞赛,并以此引领其他同学在编程水平的提升.

(3)最后最关键的一步,组建校内软件工作室,由有项目经验丰富的校内教师或软件企业工程师担任项目指导.软件工作室对外承接一定的软件开发项目,对内培养学生,让这些学生参与到真实软件项目开发中来,熟悉软件开发流程,了解项目团队分工合作,培养软件行业职业素养,积累一定的软件开发经验.当指导老师认为参与到工作室的学生编程基本功不够时,可反馈到前面阶段进行编程基本功的强化训练.

6 结论

根据以上教学改革设想,在2012级软件工程专业两个不同班级间进行教学实施,发现按照原有学校培养方案进行教学的班级学生在编程动手能力方面普遍要弱于新的培养模式的班级,在毕业工作时,实施了新的培养模式的班级学生大部分不需要再培训就能直接进入软件企业工作,基本上能够胜任软件开发类岗位.由此可见,采用该种培养模式能够提升学生的系统开发能力,学生因此在毕业时能够快速走向软件类工作岗位.

〔1〕芦丽萍,于丽.促进学生系统开发能力的开放实验模式研究[J].廊坊师范学院学报:自然科学版, 2010(6):128-130.

〔2〕顾韵华,郑关胜.以系统开发能力培养为目标的计算机软件系列课程的构建[J].教育探索,2009(1):24-25.

〔3〕王军平.高职计算机专业学生软件系统开发能力的提高方法探讨[J].电脑知识与技术:学术交流,2009(10):8009-8010.

〔4〕李文敬,廖伟志,李广原,陆建波,等.提高计算机专业本科学生软件系统开发能力的实验方法[J].广西科学院学报,2008(4):373-375,379.

〔5〕陈志泊,张海燕,王春玲,赵方,王建新,等.以程序设计与软件开发能力为主的计算机专业应用型人才培养模式的研究与实践[J].计算机教育,2015(7):94-98.

G642.0

:A

:1673-260X(2017)03-0199-03

2016-11-23

江西理工大学校级教学改革课题(XJG-2014-26);江西省社会科学十二五(2015年)规划项目(15JY22)

猜你喜欢

程序员毕业编程
为了让妈妈看懂地图,一位“野生程序员”做了个小程序
编程,是一种态度
元征X-431实测:奔驰发动机编程
怎样成为一名优秀程序员
编程小能手
我们今天毕业了
纺织机上诞生的编程
毕业季
程序员之子
毕业了,能否学以致用