时间:2023-01-30 08:45:26
引言:寻求写作上的突破?我们特意为您精选了12篇java程序员实习范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
摘要:提出在课程中引入JDK源码的学习,阐述通过阅读、分析、重写及应用JDK源码,学习JDK源码中的语法、基本库、数据结构、设计模式等内容,能提高源代码的阅读能力、编写规范代码的能力,并为应用设计模式、架构复杂项目打下良好的基础。
关键词 :java程序设计;JDK;源码;实践教学;编程能力;设计模式
作者简介:唐大仕,男,讲师,研究方向为计算机应用,tds@pku.edu.cn。
0 引言
Java语言是当前最流行的面向对象编程语言之一,具有平台无关性、多线程、分布式及安全性等特点。作为计算机专业及相关专业的一门重要课程,Java语言也不只讲语言语法,而更加注意其实践应用,所以加强其编程实践和应用是该课程的重要目标。特别是当前用人单位对大学生的综合素质提出了新的要求,这就迫切需要对现有的教学模式进行改革,才能适应计算机教学的需要。根据实践,我们提出在课程中引入JDK源码的教学方法。
JDK(Java Development Kit)是Java语言的软件开发工具包,包括JavaSE、JavaEE、JavaME等多个版本[1],其中最基础的是JavaSE。在JDK中,有一系列的开发工具、运行环境,还有最重要的JDK文档及JDK源码。JDK源码用于程序设计的实践教学中,能有效提高学生的程序设计能力,切实提高教学效果,是教学改革的一条途径。笔者将JDK源码给学生进行阅读、分析、改造、应用,使其掌握编程思想、编码方式、采用的技术、应用过程等相关知识。
1 学习内容
JDK源码的量很大,要学习的内容也涉及多个方面。
1.1 语法方面的学习
Java程序设计课程首先要让学生学会Java语法,Java语言的语法不仅枯燥,而且不容易掌握。在JDK源码中有大量语法的体现,从变量、常量到运算符、语句、类的定义等方面都有很好的体现,所以精简一部分包及类来进行学习,体现其语法的使用,而且体现面向对象的封装、继承、多态,特别是继承关系的分析,以让学生更具体地体会面向对象的思想与方法。
1.2 基本类库的学习
Java语法的学习不能只停留在语法层面,而是要培养实践应用的能力,这就需要掌握大量的API类库。由于Java类库中的类很多,每一个类中的方法也很多,所以我们选择重要的类库源码来学习,主要包括Java的基本类库、输入输出(Java IO)、文本信息的处理、XML信息的处理、图形与图像、图形用户界面、网络、数据库等。
1.3 数据结构的学习
Java语言中,各类编程都要用到数据结构。虽然有的学生学过数据结构,包括线性表、栈、队列、串、树、查找、排序等,但是JDK中,这些数据结构是如何实现的,它们都有哪些相关的类,分别使用的是顺序存储、链式存储还是哈希存储,学习这些不仅有利于复习巩固数据结构知识,更重要的是可以学到更多的实现方法,而且在应用这些结构时会正确选用合适的类。
1.4 设计模式的学习
设计模式(design pattern)是一套被反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码的可靠性[2]。在实现的软件开发实践中,设计模式是相当重要的,在JDK中,使用了大量的设计模式,如抽象工厂、单态、适配器、责任链、、观察者等,通过源代码来学习设计模式,可以让学生更具体地体会到设计模式的应用,从而能让学生更好地打下应用设计模式基础。
2 学习方法
JDK源码的学习方法主要是阅读、分析以及修改、应用等,在这个过程中教师要通过演示、引导、作业等手段来促进学生对JDK源码的学习。
2.1 有选择性地阅读源代码,撰写读书笔记
由于源代码的量很大,没有必要将所有JDK的源码都读取一遍,所以针对前面提到的每一方面的学习内容,教师会指定阅读相关的包和类的源代码。例如,在前半学期中要求阅读的类包括Object,Class,String,StringBuilder 及 AbstractStringBuilder,Integer,Math,Random,BigInteger等;后半学期则要求阅读Arrays,ArrayList,Vector,Stack,Hashtable,TreeMap,TreeSet类等。教师还指定一些扩展的包和类,供能力较强的学生进行阅读。学生阅读后要撰写读书笔记,对典型的读书笔记进行演示汇报,这样的汇报可以在小组内或者全班进行,以促进理解和交流。
2.2 教师布置读前的问题及读后作业,促进阅读质量提高
阅读前,教师有针对性地提出一些问题,这样可以让学生知道阅读的重点和思考的问题,读后作业则检查学生学习的效果。布置的作业中包括这样的问题:String类为什么声明为final的?Random类引用了什么内部类或辅助类?Stack类中的变量的初始值为什么这样设置?其ArrayList类动态分配空间的增长因子是多少?TreeMap类与另一个相关的TreeSet类的区别是什么?
2.3 与JDK文档对照学习
JDK源码与JDK文档进行对照学习。考虑到部分学生的英文实际水平,我们选用中文版的JDK文档,而英文水平较好的则可以使用英文版的JDK。例如,在String文档中提到immutable,在源程序中是如何体现的?在Byte中提到的缓存,在源程序是如何实现的?Random类提到的伪随机数是如何实现的?TreeMap中找到同一对象的要求是如何实现的?等,这些问题涉及语法、算法、效率等多方面的问题。另外,对有余力的学生,还让他们读不同版本的JDK的源码,体会其中源代码的演变,分析其改进之处。
2.4 学生写出分析报告,并进行展示与交流
针对阅读的内容,我们要求学生写出分析报告。报告要求写出主要的类、主要的方法;类与类之间的关系(画出类关系图、UML图);主要函数的算法是怎样的(画出流程图、事件序列图、状态图等);算法的时间复杂度与空间复杂度如何;用到了哪种设计模式等。另外,要求写出学到的关于语法、算法、编程技巧方法的收获。这些报告要形成文档、展示的PPT、Prezi等,在班上进行交流展示,还让学生进行评选投票。
2.5 进行代码的重写、改进与应用
在阅读的基础上,我们要求学生进一步进行代码的重写、改进与应用。代码的重写是指针对其中部分代码自己重写一遍,这样能训练编写代码的能力。在这个过程中,学生还可以有针对性地进行代码的改进。另外,在实际的项目中,应用相关的包和类,这样易于进一步巩固所学的知识。
3 学习JDK源码对学生编程能力的提高
JDK源码的学习过程,提高了学生以下几个方面的能力。
3.1 阅读代码的能力
阅读代码的能力训练是编程能力中一个重要的方面。事实上,软件的编写与维护通常是一个长期的过程,阅读别人写的代码是很常见的任务,但有时也要阅读自己写的代码。阅读JDK源码可以大大提高阅读代码的能力。
3.2 编写规范代码的能力
JDK源码书写规范,其中能学到规范代码的编写方法,有利于养成良好的编程习惯。这包括注释的使用、空行的使用、变量命名、函数的命名惯例等。
3.3 使用设计模式的能力
JDK源码中有大量设计模式的应用,通过对这些设计模式的学习,能很好地体会各种设计模式的含义、基本组成要素、种要素之间的关系、设计模式的应用场景,这些都为以后在具体项目中使用设计模式打下良好的基础。
3.4 项目架构的能力
JDK源码是一系列的包与类组成的一个大的系统,而类与类之间的关系有各种形式,通过对它们的学习,能帮助学生提高设计复杂程序的能力,为以后进行项目架构的工作打下良好的基础。
4 结语
在Java程序设计课程中引入JDK源码的学习,通过在语法、基本库、数据结构、设计模式等多方面的学习, 有效地提高了学生源代码的阅读能力、编写规范代码的能力,并为应用设计模式、架构复杂项目打下良好的基础。在北京大学的Java程序设计课程中使用JDK源码进行教学,起到了较好的教学效果。
参考文献:
校企合作是当前职业教育改革和发展的重点,更是职业教育改革和发展的难点。由于学校与企业合作在人才供需、目标定位、利益追求等方面存在矛盾,基于合作双方利益的不对等,校企合作往往停留在松散的参与合作阶段,缺乏实质性的深度合作,使得“校企合作”或是“校企合一”难以真正落到实处。长沙民政职业技术学院软件技术专业对校企合作建设模式进行了有益的探索与实践,在促进校企深度融合方面取得了很好的成效。
1 校企合作现有模式分析
我国高职院校的校企合作已经历十多年的发展,合作模式不断创新,合作的领域达到了一定深度和广度,按照合作的深度,可将校企合作模式分为浅层、中层、深层三个层次。
1.1 浅层次合作模式即“企业配合”模式
在这种模式中,企业处于“配合”的辅助地位,它只是根据学校提出的要求提供相应的条件协助完成校外实习的培养任务。学校按企业所需确定专业方向,并在企业建立实习基地。具体表现为:一是,学校根据行业、企业的岗位需求,制定基于岗位的模块化课程体系;二是,企业为学校的校外实习基地,解决学校学生校外实训和顶岗实习问题。
1.2 中层次合作模式即“校企联合培养”模式
在这种模式中,企业不仅参与研究和制定培养目标、教学计划、教学内容和培养方式,而且参与实施与产业部门结合的培养任务。学校为企业提供咨询、培训等服务,根据企业的需要进行人才培养。“校企联合培养”模式最直接的表现为定单培养,在培养方案的设计中,将学生需要掌握的基础理论、知识与技术按照分层次、分模块的方式,集中地安排在前几个学期,而后几个学期则由校企共同制定培养方案。这种培养模式是先由企业招聘,通过笔试和面试的学生根据企业的要求,学校与企业共同组织对学生进行后期培养。经过培训的学生作为见习生到企业中参加项目实训,实训合格的学生成为企业的正式员工。
1.3 深层合作模式即“校企实体合作型”模式
在这种模式中,企业以立足于建设企业文化,构建学习型组织,促进企业创新为目的,主动与学校相互渗透,参与高校人才培养。企业对学校的参与是全方位的整体参与、深层参与,企业主动向学校投资,建立利益共享关系,真正实现“教学―生产”一体化。这种合作模式中,企业以主人的身份直接参与办学过程和学校人才培养,分享办学效益。具体表现为:一是,通过“引企入校”,校企共建“校中厂”模式,在校内建立生产性实习实训基地;二是,引校入企,校企共建“厂中校”模式,在工厂建立生产性实习实训基地。不管哪种方式,校企双方必须签署协议,明确资源配置、成本核算、收益分配、财产管理、师生实训等方面的责权利,并共同制定生产经营等方面的管理制度,形成以“契约”为保障的利益共享机制。
2 校企合作开展方式探索
长沙民政职业技术学院软件技术专业(以下简称“专业”)是2004年与印度NIIT合作开办的特色专业,通过置换部分课程,引进国外先进的教学思想和教学理念。2006年,专业开始探索“校企合作、工学结合”的有效实施途径,构建了基于软件开发过程以程序员为核心岗位的相关岗位群、基于岗位群的模块化课程体系、基于项目的能力递进式实践教学体系、基于仿真工作场景的实践教学环境,有效地实现了“校企合作、工学结合”的深度融合。
2.1 构建基于软件开发过程以程序员为核心的岗位群
专业依据业界权威的标准――软件统一过程(RUP,Rational Unified Process)理论,按着软件开发的流程,从RUP中提供的职业岗位入手,分析职业岗位的职责、候选者的经验和知识背景,确定了由程序员、测试员、技术支持、软件营销、界面美工、设计师、项目经理组成的岗位群,并结合当前软件开发技术的流行趋势及极负盛名Tiobe全球编程语言排名榜,将程序员做了进一步的划分,然后将这些岗旆治核心岗位、辐射岗位、拓展岗位和发展岗位4种类型:
核心岗位:程序员,专业面向的主要岗位。根据当软件开发技术流行性,进一步将程序员岗位细分为Java程序员、.Net程序员和Android移动程序员。
辐射岗位:测试员和技术支持。在培养学生核心岗位能力的同时,同时也培养其他岗位的能力,这些岗位为辐射岗位。如程序员开发完程序后需对程序进行必要的测试,并成功地安装在实际的应用环境中,这些能力正好是测试员需具备的能力。
拓展岗位:界面美工、软件营销、软件外包、微信开发、PHP程序员。通过附加专业拓展课来获得的岗位能力。一些学生有特长,他们想根据自己的专业特长,来选择自己的就业岗位,如有艺术修养学生想从事界面美工的工作,英语、日语水平好的学生想从事软件外包的工作,口才好的同学想从事软件营销,看好Php网站开发的想学习Php技术,但专业核心课程并不能完全满足学生的要求,学生可能通过选修专业拓展课来加强这些岗位能力的培养。
发展岗位:设计师、项目经理。在培养学生核心岗位能力,进行学期综合项目开发时,需要有学生熟悉其他相关岗位的能力,但因需要其他的综合素质或较丰富的实践经验,并不是每个人能达到的,有少部分学生可以达到或向这个方向发展。如设计师需要较强的自学能力,项目经理应具有项目管理的专业知识,有较强的沟通能力及领导能力。
2.2 构建基于工作岗位的模块化课程体系
在课程体系的构建方面,专业始终坚持课程跟着岗位能力走的建设思路。课程体系中的每门课程都是针对培养学生的职业素养能力、专业通用能力、岗位特定能力三个层次能力开设,形成的主要思路如下:
①获取程序员岗位(Java程序员、.Net程序员、移动程序员)在实际软件开发过程中具有完整工作过程的典型工作任务,归纳整合典型工作任务,按照职业成长的规律分类排序整理典型工作任务。
②将一个典型工作任务转化为一个或多个学习领域,一个学习领域对应一门课程,将多个典型工作任务中公共的学习领域划分为专业基础课,称为专业通用能力培养模块。特有的学习领域划分为专业课,称为核心岗位能力培养模块,该模块又包括.net程序员、Java程序员和移动程序员课程学习子模块。
③根据岗位群拓展岗位类型,开设了用于培养拓展岗位所需能力的专业选修课。
④开设相关的职业素养课程,用以培养学生的IT职业素养。如每个学期开设的ISAS信息搜索与分析技巧课程用来培养学生的信息处理能力、解决问题能力、自主学习能力、团队合作能力、表达沟通能力、时间管理能力。
这样就形成了由专业基础课、专业课、专业选修课组成的课程体系,专业基础课围绕不同类型程序员典型工作任务中公共的学习领域及职业素养培养开设,专业课紧紧围绕不同类型程序员特有的学习领域开设,专业选修课则围绕培养岗位群的拓展岗位能力开设。
2.3 构建基于项目的能力递进式实践教学体系
专业始终坚持“以行业为依托、校企合作、工学结合、突出核心能力培养”的原则,构建“以项目为载体、层次化、能力递进式”的实践教学体系,“层次化、能力递进”使学生技能培养及角色转换从简单到复杂、从单项到综合、从熟练到精湛、从实训到生产、从校内到校外、从学生到员工的递进,从而提高学生的职业能力和就业竞争力。实践教学体系的层次由四个层次构成:
第一层次为教学做一体化教学,培养的是学生专业通用能力、岗位基本能力和岗位特定能力。
第二层次为学期综合项目实训及校内生产性实训,培养的是学生项目综合开发能力。
第三层次为署假校外集中实训,培养的是学生在校外进行项目综合开发能力。
第四层次为校外企业毕业顶岗实习,培养的是学生现场项目开发能力,实现了由学生到员工角色的转变。实践教学体系结构示意图如图1所示。
2.4 基于仿真工作场景的实践教学环境
为确保实践教学体系的顺利实施,专业与企业深度合作,组建与业界同步的多类型综合实践教学环境,形成了“校企联动、合作育人、协作生产、共同研发”的运行机制,实现学校教学环境与企业现场环境、学校文化与企业文化有机融合。图2为专业实践教学环境体系结构示意图。
①专业建有多个教学做一体化软件类实训室,确保实践教学体系第一个层次学做一体化教学的顺利实施;实验室以软件产品开发流程为主线,营造真实的软件产品开发氛围,从合理利用空间和设备等硬件资源的目标考虑,引进物理产品线和逻辑产品线的概念,按物理产品线的思想规划实验室的布局及设备资源,按照逻辑产品线的概念配置软件实训环境,以满足第二层次学期综合项目实训及校内生产性实训的需要;专业依托长沙安博牛耳青竹湖实训基地,创建一个可同时容纳600人进行实训的校外生产性实训基地,以满足实践教学体系第三个层次署假校外集中实训的需要;专业与企业广泛合作,共建立多个校外软件实训基地,以满足实践教学体系第四个层次校外顶岗实习的需要。此外,专业通过引入10个企业进校,采取企业化运作的形式,建有项目工作室10个,由学校、企业、教师各按一定比例投资入股,利益按股分配。每个工作室建筑面积86平方米,根据公司需要,划分为不同的工作区域,可接受15~25名学生进行真实项目开发,用来培养技术骨干,也是教师和公司人员一起进行科研的场所。
②在校企合作的过程中,为实现校企双赢,形成一套完整的“共建共赢、协作生产、合作育人”的运行机制。先后制定了《校企共建实训基地专项管理办法》,明确学校的人、财、物支持;制定《校企共建实训基地协议》、《项岗实习管理办法》,保证校企合作双方如约履行各自权利义务,对校企合作过程以及后期成果进行保障性说明,保障企业的利益;制定《校企联合科研开发管理办法》、《科技成果奖励办法》等,鼓励教师主动和企业联系。制定评价标准,保护和激发双方参与合作的积极性。高职院校制订各专业开展校企合作工作的具体评价指标,纳入学校教学质量保障体系中。在政府、行业组织等第三方的参与下,加强对校企合作的过程性评价和终极性评价。评价指标包括实训基地建设的质量、人才培养的质量、科研合作的成效等,也包括培养人才的数量、效益,合作企业的成本、产值等。
③为规范实践教学环境的管理,专业建立健全各项管理制度。借鉴ISO90001、CMM及先进的企业管理理念,完善标准化、工程化的管理体系,制定了“6S”现场管理制度、实践教学环境的分类管理制度、设备的操作规范、对外开放共享管理办法,制定了程序员岗位职责、软件开发流程规范、校内技能训练管理办法。
3 校企合作的实践成果
经过多年的努力,专业在“校企合作、工学结合”思想的指导下,灵活组合“企业配合”模式、“校企联合培养”模式和“校企实体合作型”模式,实现了企业与学校的深度融合。2007年,专业成为民政部信息化人才培养基地;2012年,专业成为湖南省软件技术生产性实习实训(教师认证培训)基地;2013年,专业实践教学体系获湖省级教学成果二等奖。
对于高职院校而言,校企合作是一个系统工程。建立长效机制,促进校企合作持续深入开展,需要政府、企业和学校共同努力。地方政府应加强鼓励和引导,充分调动学校和企业积极性,引导行业组织发挥在职业教育校企合作项目的评估、职业技能鉴定及相关鼓励工作。企业从战略高度看待校企合作的人才培养模式,积极参与到合作教育中来,把学生看成一种待开发的人力资源,为学生提供实习、培训以及工作岗位,投入不大成本,获得所需要的人才将成为企业引进基础应用型人才的主要模式。学校要根据区域经济发展的特点和生源情况能及市场需求,发挥职业院校的基础作用,实现职业院校人才培养与企业需求的对接,不断总结经验和调整思路,在探寻与完善中摸索有效的软件人才培养模式和校企合作方式,总结合作过程中的经验与不足,提炼成功合作案例的精髓,形成系统、完整的合作模式。
【参考文献】
[1]王冠华,王东.企业参与校企合作的动力机制研究[J].重庆科技学院学报,2011(24).
回顾这次的实训,这次或许是最后的实训机会。我是一名大二的学生,明年或许就要出去实习了,所以我很珍惜这次的实训机会,因为它能够让我了解自己的不足以及以后自己努力的方向,同时也能让我了解软件开发的流程,增加一点软件开发经验和社会经验。让我在以后的实习中会更好的融入到其中,增加自己的就业机会,因为纵观现在的就业形势很不让人乐观,由于之前的经济危机,就业机会越来越少,就业也越来越难,这就给了我们很大的压力,所以要是没有真本事,就业岗位就无从谈起,因此,在以后的学习中,我会更加好好努力。
通过这次的实训,我学到了很多:
首先,对JAVA识比以前有了更深的了解。在这之前由于种种原因我JAVA学的很不好,编程我几乎写不出来。但经过这次的实训,我对JAVA的理解,虽然还有很多都不懂,但我会在今后的实训和学习中加以学习了解,力求弄懂,增强自己对JAVA的理解。
其次,在这次的实训中我的动手操作能力有了一点的提高,刚开始的时候JDK的配置,数据库的安装都出现了一定的问题,JAVA 可实话开发工具的不熟悉, 所以开始的时候进程很慢,时间都用在了JDK的配置,数据库的安装以及熟悉JAVA可视化开发工具上,但付出有了回报,成功的配置了JDK,安装了数据库,熟悉了JAVA可视化开发工具,总的说来,自己还是有一定的收获的。因为自己的动手操纵能力得到了提高。
最后是团队协作。在整个项目完成过程中团队协作有着不可替代的作用。从在刚拿到项目时对项目的分析到最后的项目完结的都有一定的体现。刚拿到项目时,我们团队进行了分析,并分配了各自的任务。当我们其中一人遇到问题的时候,我们其他人都会去帮忙,效率提升了很多。但可能由于不是一个宿舍的,大家彼此间都不是很了解,所以交流中还是存在了一定的问题。
在这次的实训当中我收获颇丰。但仅仅靠这一个月的学习还是远远不够的。所以在以后的学习中我会更加努力,提高自己的能力,让自己在以后的社会道路上打下坚实的基础。
Java软件开发实习报告二
伴随着新年钟声的到来,我不知道我是否是应该高兴还是悲伤。因为伴随自己三个月的华迪实训即将结束。
转眼之间三个月的华迪实训就这样在忙碌中过去了。通过此次短暂的java开发习,回顾一下自己这三个月的每一天,觉得过的十分的充实,每天都有一堆忙不完的事。因为你每天想起的第一件事情就是完成自己的项目模块,哪些地方不够,哪些需要修改。渐渐的发觉,自己对自己所担任角色的认知:从原先的学生到现在“程序员”的转变。“任何一个初具规模的软件都是要团队来配合的”这是我一向的认知。因为你再全能程序员也有出纰漏的地方,你程序写的再好,那也只是你一个人的程序。因为对于程序来说,可读性、可理解性是一项衡量它是否优秀的一个标准。所以就有了我们6位成员的项目组。在项目组中,我担任组员这一角色,这相当于一个正规项目的“项目开发人员”,感觉自己身上的担子挺重,因为要配合其他组员的进度并完成自己任务从而使得项目能够成功地,完整地把它应有的功能实现。对于项目中遇到的困难,我觉得那就是经验不足,会遇到很多问题但也培养了我们上网搜索查询,咨询老师同学的良好习惯,让我相信任何困难都有被解决的一天。所以从整个项目来说,自己在编码上遇到的太棘手的问题都是大家集体解决。但是总的来说,这次课程设计对我很有帮助,让我获益匪浅,期间时间虽短但是也学到了不少的知识。在这次实训过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为熟练的技术却在此次实践环节中往往出问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出适合具体工作的方法,这一切都离不开钻研精神与勤学好问的精神.
总的来说,这次培训效果不错,对自己有一定的提升,这完全不同与学校的学习,因为它更加贴近工作,针对以后工作的内容作了很多实例的练习与工具的使用,为我们更快的加入工作提供的很好的前提。并且在的实训里,让我知道还有很多地方的不足,还有许多的技术等着我去摸索,等着我去学习。
最后,感谢公司的几位老师辛勤的工作,我们的开心来自你们的热心与关心。祝你们工作顺利。
Java软件开发实习报告三
经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小程序运用,Gui界面设计和事件。
在我学习的语言中,我自己认为Java是一门比较强大的面向对象的编程语言,不仅仅是因为它的跨平台型还有它的较强的实用性,强悍的嵌入性。
本次实训主要是针对我们对项目流程不熟悉和对整体项目的把握不清楚,学习数据库的设计和表的建设以及表与表之间的联系,还有一些代码的编写,这些都是我们所不熟悉的也是我们最薄弱的部分。
通过这一周的实训,虽然实训的时间不长,但是总体上收获挺大的,当我们正式准备学习实训java编程技术时,让我感到非常高兴,因为java一直学的是课本知识,所以实训对于我来说是必须要学会熟练操作的。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我遇到了很多以前未曾遇到的难点,有时后也难免会失去耐心,但是,通过老师的指导,自己的努力的练习,我顺利的化解了一道道的障碍。克服了Java学习上的一道道难关,现在自己已经基本掌握了java的基础知识。
大学四年下来,我的成绩不好,基础也不好,没拿过奖学金。
大学的课程很多不喜欢,我不知道为什么计算机系还要学高等物理,和马列毛邓。这是题外话。说实在的,很多课上的我一头雾水。毕业后找工作不满意,我直接去读了软件工程(考研的专业课成绩没到线)。两年制,一年上课,一年实习。我想给自己的履历上增加一些至少能给我面试机会的经历。(我仔细思考过我成绩不好的原因,心里因素是主要的,高中在重点中学,我不能接受自己不是尖子生的事实,总在想自己为什么这么差,以至于这样的心情影响了我很多年,一直到工作后的几年)
实习的第一家公司是个私企,工作两周后他们不满意辞退了我,沮丧是当然的,我知道我的能力是有差距的。虽然他们没有任何培训,直接拉去干活,起码的业务流程也没给我讲,但是我真的发自内心感谢他们辞了我,让我认清了自己。其实当时干的就是一些perl 脚本和php的网页开发。
实习的第二家也是私企,给运营商做项目。我参加的是一个工作流项目,用java开发。我当时的java技术仅限书本身的不怎么牢靠基础知识,至于怎么设计这个系统也没有一点概念,终于一个月后我决定退出了。经过这一个多月,我似乎知道了自己该从哪里开始了。就从java开始吧。
经同学介绍,去了第三家实习公司,面试的经理对实习生要求不高,让我能有机会实习。做的是银行和证券公司的网站,我主要做前端jsp的页面,同时我也选修了学校请的一位Weblogic的工程师开设的J2EE的课程。总算开始入门了。公司的同事很帮助我,有耐心让我了解了系统后台的架构。后来我随几位去客户那里出差,周末和晚上加班,为了他们临时改的需求。同事说,你一个女生出差一点不发憷啊。其实我一点不觉得累。同组的team lead没事就鞭策我说,你就甘心写code么,不能总是做开发,该为以后想想。但是我当时想法是,我的视野当时有限,还不确定自己能做成什么样子。我在这家公司完成了毕业论文。然后毕业。
毕业找工作,我没有留在实习的公司,我想多试试。找工作的经历不多,我去过联想面试,笔试过了,一面是HR面,题目现在大概还记得,如果有化学家,天文学家,医生,乞丐,孕妇,在一个荒岛上,你只能带走一个,你带走谁呢?分组讨论,得出一致的结论,也要说出自己的结论。 同组有清华的毕业生,真的很自信,她说要带走天文学家。我说,出于人道,我肯定带走孕妇。后来就没了消息。难道医生可以留下照顾孕妇么,还是HR以为我选孕妇是注重家庭的人,没有事业心呢,我觉得这题真的不能说明什么。
之后面试了一家日资企业,一面是很多人一起面,我听了一圈之后,觉得自己有些把握,因为同组的人比我差,看来我运气挺好的。他们之中有本科生,有研究生,都是男生,就我一个女生。问的也挺基础,就是servlet如何工作,写没写过SP,其中有个人问,什么是SP,没人理他,我告诉他是store procedure。面试官是个部长
。后来HR的人过来让我留下二面,说我一面打败了所有男士。说来惭愧,我真的是运气好,没碰到牛人。二面经理只问了些平常的问题,就过了,于是我来到这家工作。考虑的是,外企多少工作流程上比较规范,也见见日本人是怎么工作的,还有就是自己能力有限,欧美大公司估计是没戏的,我还是从力所能及的开始吧。日本人工作的风格大家应该有所耳闻,就是喜欢加班,我进公司的第一个项目是代码改造,把VB6.0d code重写为。 加班到凌晨是常事,另外一个就是team lead的风格是没事也不能早走,也得耗到半夜才行。开始做的真是一点技术含量都没有,都是日本人写好guide,告诉你什么改成什么,别问为什么,不能有异议,他们怎么说你怎么改。弄得我当时都不去思考这里的技术细节,这是我当时犯傻的表现。除了技术本身,还有很多需要学习的。后来陆续做了一些我喜欢的java的项目,用到了sping,hibernate,ibatis, struts, ant等等。还有一些日本人自己开发的框架。每个项目的业务也都不同。在这家工作了三年,我觉得这不是我要的,我的技术提高有限,做的事都是别人设计好,甚至告诉你code应该如何写,而且做事风格不是我想要的。 我想去欧美文化的公司试试。也想做通讯相关的。
同学帮我投简历,我面试一家对欧美的外包企业,一面是本公司的人面,问了项目情况,说了说英语,我准备还算充分,过了,二面是公司的客户面,到公司和客户开电话会议面试,第一次和老美直接对话,我虽说有点紧张,但是还是专心听他的问题,听不清的就让他重复一遍,我现在记得的一个问题是如何写出高效的SQL。面完回家等通知。过了几天我收到了offer。客户是为运营商提供软硬件服务。我们做的是BOSS系统的一个模块。都是java api。 几乎用到了J2EE中定义的所有组件和java相关的框架。我在这家工作至今。技术从不熟悉到熟悉,业务逻辑从不熟悉到熟悉,都是在开发每个feature和改的defect中慢慢了解的,硕大的系统不允许我一口吃个胖子。只要脑子里绷根弦就每天都有进步。加班不是常事,但是也有紧张的时候。 有时候一个defect要跟踪成千上万行代码,你才知道哪里出了问题,这是需要耐心和细心的。给客户的客户做support的时候,经常被半夜的电话叫醒去看一个现场的问题,我不觉得累和烦,我觉得这是我价值的体现(当然这不会每天发生)。修复一个defect我会有一点小小的成就感,每天晚上回家方便的话也会看看邮箱,看看有没有紧急的事情。有的人认为你下班了就没必要再管工作邮箱了,但是我愿意这么做,我觉得这是我职业精神的一部分,也是工作态度。
偶尔会帮着公司招聘毕业生,有时候会遇到什么简单问题都答不上来的人,我感觉就像看见当初刚毕业的我,临走,我会说一句,没关系,回去好好准备,看看基础知识。
我曾经怀疑过自己是否适合做技术,总觉得自己不如男生,也总在问自己的路在哪。而且没有自信,曾经紧张到,有人看我打字,都紧张的手抖。到现在,我觉得做技术挺好,就像你说的,我清楚的认识自己,我不是技术大牛,就每天写着自己的code,了解业务,挺好,但是不代表我不上进。很多女同学现在都不做技术了,也不写code了,但是我还在做,甚至越来越喜欢,在中国有种普遍的想法是,作几年技术该转去做管理,否则认为你不成功,这是人云亦云的说法。我想我为什么不能一直做技术呢?虽然中国的大环境可能不适合你一直做技术,但是我愿意试试。我不愿意放弃多年来积攒的一点点优势。何况我现在工作上越来越得心应手,不久前,我收到客户的邀请,他们想让我transfer到美国或者加拿大成为他们的一员,我在等待漫长的人事流程,也有可能会pending。但是我无所谓,我现在自信,知道想要什么。一直做技术,怎么了,不行么?
谈到男女程序员的问题,有些男人以技术强自居,而少了一点谦逊和工作的严谨。有些技术不强的,有些懒散,得过且过。都是我遇到过真实的人。同组的一个女生来了几个月就比一个来了一年多的男生上手快,这说明什么的,态度和努力是重要的。我更认同的是技术和男女无关,和个人有关,任何以偏概全都是片面的。
同组的男同事们没有因为我是女性而轻视我,我很感谢他们,在>!
为了适应信息时代的需要,我国的计算机技术教育早已如火如荼地开展起来,为国家输送了大量的信息化人才。但是,我们培养的计算机人才依然难以适应社会的快速变化和飞速发展。究其原因,就是我们的计算机人才培养受到了传统观念的影响和制约,没有从“工业化思维”跃进到“信息化思维”,没有正确理解“信息时代”的真实含义。因此,更新观念,引进世界先进教学模式并结合我国实际情况进行教学改革和创新尤为迫切和重要。
一、NIIT培训模式及其引进
NIIT是总部设在印度的IT跨国公司,是拥有多年软件开发与IT职业教育经验的IT培训领导厂商,在发展过程中总结出一套独特、先进、高效的教学方法,以确保NIIT的学员可以在较短的时期内,不仅全面掌握业界的主流软件开发技术,而且获得自我学习、自我提高的能力,从而能够在技术快速更新的IT行业胜任多种富挑战性的职位。
NIIT的基于榜样学习法的培训模式是一种在专家引导下的独立解决实际问题的科学学习方法。在每个教学循环中,首先提出一个IT行业或工业界的实际问题,专家解决这个问题;然后向学生提出另一个类似的实际问题,学生在专家指导下参照专家的方法解决该问题;最后学生脱离专家指导综合运用所学知识解决一个新的实际问题,逐渐培养起学生独立解决实际问题的能力。
计算机专业本科类教材大多是以计算机理论为主,教师以“讲、听、谈、记、练”教学模式授课,培养的学生理论知识较强,动手能力较弱。NIIT教材基于IT行业专家经验以解决实际问题为主,专家以“观察、理解、记忆、练习”教学模式授课,培养的学生动手能力强,理论知识弱。因此,两者具有明显的互补性:NIIT重实践经验,计算机本科专业重理论知识。但是,如果不能将两者有机地结合起来,就难以达到预期的效果。例如,计算机本科教材与NIIT教材脱节、计算机本科教育的目标与NIIT培训的目标差异较大、NIIT培训模式需要有解决社会实际问题的实战经验专家、NIIT培训模式中需要有配套“软件工厂”等等。
目前,大学计算机专业教学正在为适应新的社会需求进行改革,NIIT也正在为适应中国这个新市场而调整自己的目标。我院在办学实践中,既注重从国外引进这种先进的培训模式,也根据实际情况加以创新,对重实践经验的NIIT培训模式与重理论知识的计算机本科专业教学模式取长补短,进行了融合,以解决引进NIIT培训模式后存在的问题。
二、协同教学目标
NIIT各阶段要到达的目标是:
第一学期,要求学生了解程序设计基本概念,熟悉LINUX工作环境,掌握面向对象概念,可使用C++和JAVA编写程序,成为WEB程序员。
第二学期,要求学生掌握使用SQL Server2000的数据库,能对其进行查询、修改、添加,能应用J2EE创建企业级应用程序,了解软件开发生命周期,成为面向对象的可视应用程序员。
第三学期,要求学生掌握XML数据存储和表示,连接.NET体系架构,使用VB.NET编写基于.NET,桌面应用程序,并使用VB.NET和ASP.NET编写企业级分布式网络应用程序,成为企业级应用程序工程师。
第四学期,要求学生能运用Visual C#开发com+,运用WAP.WML,J2ME与. Net技术开发移动应用程序,运用ASP.Net开发网络应用与服务程序,成为针对桌面和移动设备的企业级应用程序工程师。
引进NIIT培训模式后的以四年为期的大学本科计算机教育,不能照搬这种目标。前两年应以培养软件篮领为目标,否则只能是拔苗助长,欲速则不达。因此,新的教学目标需要进行如下调整:
第一学年的目标(里程碑一)是普通软件蓝领,要求学生夯实基础,养成有“工业化、组件化、标准化”意识的“软件蓝领”的习惯,掌握程序编码标准、COM/JavaBean组件编制技术、流水线装配流程。并以此为基础对真正合格“蓝领”进行验收。
第二学年的目标(里程碑二)是高级软件篮领,要求学生具有扎实的功底,养成有“高工效、低成本、高质量”意识的“软件蓝领”的习惯。掌握服务器端所提供的企业级基础设施、能快速而高效编制低成本的企业级COM+/EJB组件的方法。
第三学年的目标(里程碑三)是普通软件工程师,要求学生提高理论知识,养成“创新设计”意识,逐渐从软件蓝领提升到软件工程师。
第四学年的目标(里程碑四)是有经验的软件工程师,此阶段主要是让学生“走”出去,给学生提供机会与社会接触,进行生产实习。这也是大学本科计算机专业的培养目标。产品(学生)是否合格,要由社会来检验。
三、协同教学课程
NIIT教学模式是很先进的教学模式,在专家引导下用专业技能解决实际问题的同时,专家还必须引导学生探索相关的技术文献。它强调的不仅是知识的传递手段,更注重信息的获取过程。正因为如此,如果在教学过程忽略了信息获取能力的培养,就会出现知识断层。不仅会降低学生学习高级知识的兴趣和热情,而且也打破了课程的整体性和关联性。因此,新的IT课程计划需要注意以下几点:
(1)在NIIT课程之间插入部分专业或体系结构课程,防止知识断层。例如,在《C++程序设计》之前插入计算机专业课程《C语言程序设计》,打好程序设计的基础;在《C++程序设计》与《COM组件设计》之间插入《MFC》等。其中,《MFC》填补了《C++程序设计》之后的知识断层。如表一所示。
以C++系列为例,《C语言程序设计》专注于打语法基础,《C++语言程序设计》递进到面向对象思想,《Visual C++程序设计》着重讲解如何利用现有的类库以提高生产力,《用ATL设计组件》为现代软件开发模式软件工厂打下组件涉及技术基础。《用C++设计COM+》递进到开发企业级组件时如何利用已有软件基础设施以进一步提高生产力,最后在《基于.NET的软件开发》中进入真正的企业级应用开发。其它课程可联系这一主线,围绕成为真正精通C语言的程序员这一阶段性目标进行设置。按这种模式进行课程设计,因强调了整体性和联系性,不会出现知识断层,明确的方向感和不断积聚的成就感,使教师方便教,学生易于学,并逐渐形成良好的教学氛围。
(2)在专业理论课程中插入NIIT的培训内容,理论结合实践。例如,在《操作系统原理》中插入NIIT的《Linux》课程;在《数据库原理》中插入NIIT的《SQL Server》课程;在《软件工程》中插入NIIT的《UML》;在《计算机网络》中插入NIIT的《HTML》等。由于NIIT教材18个月更新一次,使我们的专业理论课能紧跟技术的发展,而这些发展了的新技术、新工艺也会作用于理论课程,促使理论知识的更新。
(3)以市场为导向,按公司类别开设课程,进行对比学习。例如:
(4)以项目为主导,突出电子商务,进行有针对性的项目训练。例如,以手机项目开发为目标,安排《电子商务》、《XML》、《网络安全》、《项目管理》等知识的学习。
四、协同教学过程
NIIT培训模式的引进能极大地促进计算机专业的教学改革,但同时也为相关教师带来了新的挑战。
首先,NIIT教师必须充分了解计算机技术体系结构,紧跟信息技术的发展,并适应其快速的变化。为了紧盯市场和新技术,NIIT教材每18个月要更新一次。这就需要NIIT教师不断地学习,以更新自己的知识结构。
其次,NIIT教师必须具备实际项目的开发能力和经验。NIIT教材面向程序员,指导学生如何按部就班地编程。如果教师只是按部就班地按照课程进行讲解,因其清晰性和流程性,还是比较容易的。但要“带”出一批合格的程序员(在我们的教学中,这些程序员的目标是“有经验的软件工程师”)就比较困难。因为NIIT教学模式要求教师必须具有各个领域的实际开发经验(这也就是NIIT为什么称为NIIT教师为“专家”的原因),用这些经验正确引导学生,用各种教学设施以及多媒体功能激发学生自身的学习兴趣和热情,现场解答他们提出的各种技术问题,并解决技术难题。
第三,NIIT教师之间必须紧密协作和配合。NIIT教学模式中强调学生自组织学习能力和创新意识的培养,课程之间的衔接非常强。例如,对于COM+和EJB的教学,教师讲得再清楚,如果学生对COM和JavaBean不是很清楚,还是没办法理解。而对于COM和JavaBean的学习,其前提是学生对组件技术软件工厂”见习经验。再如,NIIT在安排J2EE教学内容时,是基于学生已经完全掌握Java程序设计技术的,因此,J2EE内容就显得有些宽泛,包括JDBC、JavaBean、RMI、Servlet、JSP、EJB等。这就要求J2EE课程教师与Java基础课程教师之间的协同:Java基础课程教师在讲解Java课程时,引导学生了解将要学习的递进知识J2EE及相关教师的教学特点,增加学生对未来知识的学习兴趣以及为什么要打Java这个基础。J2EE教师则应适当地重复以前学习过的内容以防止遗忘,在项目实践中引导学生多使用以前的技能以防止退化等。
五、协同实习过程
随着计算机技术突飞猛进的发展,软件的应用领域也发生了根本的变化。从单机模式、C/S模式一直到现在的网络计算,特别是网络计算带领软件产业进入了一个新的时代。软件开发领域正面临着一些新的课题。如复杂的分布环境、灵活的应用模式、广泛的包容性等。传统的软件设计思想已远远不够,出现了采用构件化和软件复用等软件开发方法。NIIT的教学内容也主要围绕这些新的方法进行设计,如引导学生编制组件、生产组件、装配组件等。
为了让学生体验如何当软件“蓝领”,并成为一个合格的软件篮领,进而逐步由软件篮领提升自己成为软件“工程师”,就需要建立“软件工厂”并输入“组件化”观念。因此,有必要“创办”虚拟“软件工厂”,使之成为一个共享、协作、开放的软件群体。在按教学目标和社会实际需求决定生产什么产品后,学生可以按“厂”里的规定和要求进行设计、生产并在“厂”里测试组件,也可以在教师的带领下组队协作开发。这些由学生在学习期间按规格生产的组件将来既可以作为共享软件对外,也可以作为开源项目进行交流。学生在NIIT专家指导下还可以学习和研究的开源项目,为工厂提供更加先进的思想和便于重用的软件零部件。当学生能从实际运行看到随着自己组件的加入,应用程序功能逐渐增强和完善,而这种程序不只是练习时,其成就感是不言自明的。既感到学习的轻松,又能了解自己在一个团队里的作用。
学生在学习组件编程时如果没有“软件工厂”实习,就感觉不到编制组件的好处,也体会不到团队的协同编程能力和工业化生产的优势,就会逐渐对先进的编程技术失去兴趣。如果学生觉得想成为软件“蓝领”都那么难,又怎么会对成为软件“工程师”有信心呢。因此,这种让学生体会软件工业化大生产的实习过程是必须而且相当重要的一环。
综上所述,为了适应社会的快速变化和飞速发展,我们既要引进国际上先进的计算机人才培训模式,以摆脱传统的观念和陈旧的习惯,但同时也要注意根据我国的实际情况加以创新。21世纪对新型人才的知识结构和能力素质都提出了新的需求,从联合国教育委员会提出的新型人才“四大支柱”中可以看出,21世纪面临的全球性危机要求新型人材富有创造性、能合作共事并具有高尚的道德精神。具备创新能力是对新型人才的基本要求,这就要求我们在进行计算机专业教学改革时,既要注重“工程化”、“标准化”、“流程化”方面的蓝领技能培训,又要强化学生的自组织学习能力和创新设计意识,才能培养出合格的信息技术专业人才。
参考文献:
[1]Jim Arlow,Ila Neustadt著,UML and the Unified Process,机械工业出版社,2003年版。
[2]伊利亚·普利高津著,湛敏译,确定性的终结,上海科学教育出版社,1998年版。
[3]NIIT GNIIT(FTC) 类培训教材
在中等专业学校计算机专业中,程序设计是重要的专业课程,是每个学生都应具备的最重要的能力之一。由于课程设置和学生本身的原因,程序设计课往往变成某种计算机语言的语法学习课,学生即使学会某一门语言,也不知道怎么开发软件,缺乏软件工程知识。Extreme Programming(极限编程,简称XP)是由Kent Beck于1996年提出的,它是一种以编码为核心任务并且经历过实践考验的轻量级软件开发方法,是敏捷软件开发方法中最著名的一个。这种软件开发的方法开发规模小,流程相对简单,重要的是,极限编程的开发周期是以代码为中心,将其应用在程序设计教学中,更能突出计算机语言的中心地位。学生在提高自身编程能力的同时,更有助于培养软件工程思想。
一、极限编程概述
极限编程是一种有别于传统软件工程的小型软件开发方法。传统的如RUP的开发方法注重整体架构的由上而下逐步细化,而极限编程则强调由软件最简单的基本核心由内向外逐步构建。软件在设计初期规划客户最基本的需求,在与客户交流的过程中逐渐添加和调整功能模块。每个模块的开发粒度小,实现的功能最基本,代码量小,周期短。
二、在程序设计课程中应用极限编程方法
一名优秀的程序设计人员,除了要有过硬的代码编写能力外,还要具备良好的沟通能力。首先,优秀的代码编写能力不仅是指能够写出执行效率高、运行强健、稳定的代码,而且代码风格优美。有的程序员写的代码思路独特,执行效率很高,但是缺乏良好的注释和书写风格,以至于别人很难理解,甚至一段时间后自己也不知道这块是怎么设计的。这对程序员之间的交流和传承及代码的重构是非常不利的。其次,良好的沟通不仅发生在程序员之间,而且发生在程序员和用户之间。极限编程的最佳实践对以上两点都有严格的要求,将其应用在程序设计教学中非常有利。
1.计划会议。
计划会议也叫计划游戏,这是对所开发的软件制定的一份计划。对于软件中远期的、非当前急需开发的功能只是提出一个概要性、轮廓性的计划。而对马上必须实现的功能则是制定详细的、细化到尽可能小的粒度,从而制定具体的工作任务。这项工作是每天都要做的,计划不仅要明确工作任务,而且要明确完成任务的标准。随着每天计划的完成,我们设计的软件越来越明确,越来越向正确的目标靠拢。这种计划会议采用的方式多种多样,但大多需要所有成员参与集体头脑风暴式的讨论,极限编程强调所有程序员对整个软件的整体掌握,有利于锻炼学生的交流沟通能力和对软件整体框架的把握。
2.小型和简单设计。
XP编程方法一贯秉承的是“持续集成、小步快走”的哲学理念。我们希望在计划会议中提出的近期计划目标是一个可以拿出来让用户体验的、可评测的小作品,有利于学生在学习过程中不断获得成就感,从而提高学习兴趣。对于这个小作品,我们的要求是只要实现提出的基本功能,尽量用最简单的方法去设计,不增加计划以外的预设的东西。这种做法可以有效降低学生程序设计的难度,防止学生产生畏难情绪。
3.结对编程。
结对编程是XP的一个重要实践,它要求写代码的时候必须两个程序员在同一台电脑面前进行,一位负责书写代码,一位负责代码的阅读和校验。在结对编程的过程中,两位程序员会进行大量的沟通,自己的思路必须让对方明白,同时也让对方审核。这种做法有利于知识在学生中的传播,对代码质量的提高、良好编码风格的形成、沟通能力的提高都非常有利。
4.测试先行。
一般的程序设计方法都是先将功能模块写好,然后再使用一组测试数据进行测试。而极限编程强调,在每写一个模块前,必须书写测试用的代码。这个测试用的代码就已经将我们要书写的模块方向定准了,在模块代码书写的过程中,随时都要通过这个测试,而不是完成之后再测试。这样在中途发现设计偏离轨道可以及时纠正,保证工作高效。现代软件工程中对软件的测试工作要求越来越高,测试代码的书写、测试数据的选择等也是学生学习的重要内容。极限编程尤其强调测试的作用,将其应用于教学,有利于培养学生良好的测试习惯。
5.重构。
极限编程强调的是用最简单的方法而不是最好的方法实现既定目标。只要在测试中通过,就可以被认可。但随着代码的日益完善,对以往执行效率低的代码必须进行重构。所谓重构,就是在不改变原有功能的前提下,对代码进行修正或利用新技术重现。这是提高软件性能的重要手段,但不管如何重构,其代码必须通过原先的测试程序,这体现了先前测试先行原则的重要性。重构有利于学生提高代码的书写能力,促使学生不断挑战自我。
6.编码标准。
极限编程方法是以代码为中心的开发方法,同时要求知识共享、代码同行审核,强调交流与沟通。那么实现这一切的基础就是代码可以被所有成员读懂。在现代软件企业中,不管采用的是大型的RUP方法,还是小型的XP方法,统一编码标准这是一个基本要求。极限编程对编码标准的严格要求有助于学生在校就养成良好的代码书写习惯,以后可以快速地融入新的开发团队。
三、结语
极限编程的优秀实践很多,并不需要全部应用于程序设计课程的教学过程中。但应用在教学实践对于激发学生的学习兴趣、降低学生的学习难度、提高学生的软件整体设计水平、培养学生的交流沟通能力等都非常有益。实际教学中,我们在ASP、VB、Java等课程的实习阶段应用极限编程,取得了良好的效果,学生学习的兴趣和动力有了明显的提高。我们希望在将来的研究中,能够采用更多的XP实践,让教学过程更加逼近真实软件开发过程,让学生更系统地学习软件开发流程,提高专业素质,培养优秀的软件开发人才。
参考文献:
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)05-0115-02
1 引言
在国家和各省关于地方高校转型发展的要求的大环境下,计算机专业须结合经济社会发展需要,以培养产业转型升级的高层次应用技术型人才培养为目标,整合计算机科学与技术专业已有的教学内容,面向计算机技术新兴产业和现代化制造业,基于实际工作岗位开发课程体系,培养符合普通本科教育基本要求的应用技术型人才。在此前提下,需要对以往学术型、研究型的课程设置进行改革,探索适合应用型本科的计算机专业课程。
随着智能手机和移动互联网络技术的快速发展,移动互联软件的需求呈井喷式的增长。[5]智能手机在2014年已占全球手机市场的98.9%,其中Android平台占80.7%,IOS平台占15.4%,windows phone平台占2.8%。[4]而基于Android、IOS、Windows等平台的其他智能设备如智能家居设备、智能穿戴设备能都将步入一个高速发展阶段。考虑到各智能系统所占的市场份额,本文移动终端应用开发课程的设置主要以Android平台为基础。本专业在人才市场上可选就业岗位包括:Android软件开发程序员,Android软件测试员,移动互联软件售前/售后支持,Java开发程序员,JSP网站开发程序员,软件测试员,网页设计师,网站编辑,软件销售及维护等。
2 人才能力培养目标
通过对以上移动互联软件开发相关就业岗位的工作特点、工作任务进行走访调查,进行知识结构的分析,选取能力培养目标如下:
1)较好的语言沟通能力,完成产品功能需求分析;
2)功能模块设计能力,UI设计能力;
3)开发工具的熟练运用,代码的规范编写能力;
4)服务端软件的配置、部署、运行、调试和维护能力;
5)软件的部署、运行、调试和维护能力。
3 人才培养原则
根据以上的人才能力培养目标,归纳总结出计算机移动互联网技术专业学生就业的职业、岗位(岗位群),同时深入生产一线,切实了解企(行)业需求,从而科学制定本专业的培养目标和标准,规划学生所应具备的知识、能力和素质,结合实际进行课程设置。
突出应用性、强调课程设置的针对性和应用性,坚持以能力培养为核心,加大课程内涵、重组和整合力度;更新教学内容,积极推进基于真实的互联网软件开发案例教学、真实任务教学的应用。
坚持校企(行)业合作,重视校外实习实训基地的建设,与互联网软件开发企业深度合作,课程教学内容、实习实训项目、课程考核等均来自企业。可由企业工程师直接授课或双师授课,并将学生送入校外实习实训基地进行顶岗实习。在实训与实习中采用“准员工5R”实训课程体系,即:真实的企业环境、真实的项目经理、真实的项目案例、真实的工作压力、真实的就业机会。[2]
4 人才培养理论课程制定
移动互联网技术专业人才培养在计算机专业原有的数据结构、数据库、网络基础、操作系统基础等知识的基础上,再面向以下三个就业方向进行配置:
4.1移动终端应用开发
系统掌握Android系统开发技术需要以Java为语言基础。
在相关的技术中首先要熟悉面向对象编程的思想:继承,多态,重写,覆盖等;Java基础中的IO编程,多线程,正则表达式,集合框架,MVC模式等也是学习的重点内容;而由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这方面的知识,对于Android的理解就会大打折扣,因此需要重点学习Java编程的23种设计模式;而在实际的项目中还需掌握Java编码规范、注释规范和Eclipse插件代码检查工具CheckStyle、内存泄漏检测工具memleak、内存分析工具MAT、代码审查工具findbug等使用。
Android系统是一种以Linux为基础的开放源码操作系统,需要掌握相关Linux命令基础。Linux学习的内容包括:Linux系统命令初步,svn和git工具的使用,Linux shell编程,Makefile规则,Linux开源工程等。
Android的开发知识包括:环境搭建、四大组件五大布局,widget常用组件的介绍,Android中的事件处理,系统菜单和上下文菜单的使用,UI框架中的Fragment、ViewPager、ActionBar等,xml和JSON的Android网络编程,Android中的网络请求,数据库编程,handler异步消息的处理,DDMS的使用,自定义provider、binder的使用等。
综上,职业能力课程有:Java语言,Java EE,Linux操作系统、Android基础,Android平台APP应用设计。
4.2服务端开发
服务端的开发和移动终端密不可分,目前大部分移动终端软件都需要后台的数据支持进行数据的存储、更新等。
服务端开发技术首先需要用到网络的相关基础知识,如TCP/IP,HTTP协议与Socket协议知识等;其次是网络操作系统Linux;还需要学习支持服务器端的开发的Java EE知识如 JDBC、web工程结构、Servlet、JSP、Struts、hibernate和Spring等;应用框架的学习;服务器数据后台搭建MySQL及Oracle;Web页面开发技术;数据库对编程语言接口API相关知识。
综上,职业能力课程有:数据库应用,Linux操作系统,Java EE,网络协议编程,SHH框架技术。
4.3互联网软件/游戏开发工程师
在目前的网络软件应用中,游戏应用依然是最热门的下载类型,系统工具、社交和影音图像类等应用依次居后。[1]
互联网软件/游戏开发需要的知识除计算机网络、操作系统、Java语言、数据库等外,还需要掌握HTML、CSS、JavaScript;熟悉常用开发框架SSH;熟练使用和配置tomcat等应用服务器,并需要熟练使用MySQL数据库的操作及优化。
综上,职业能力课程有:Java语言,Java EE,Linux操作系统,SHH框架技术,网络协议编程,Android平台APP应用设计。
5 实践环节设置
应用型人才培养更需要重视实践环节的教学,培养学生理论联系实际的能力,加强学生动手能力,适当增加设计性、综合性和研究探索性实验。在实践环节需要采用任务驱动教学的模式,增加学习过程控制和考核机制,建立学生学习反馈体系,以学生为本,以任务考核为主,增加学生实践的主观能动性,达到培养应用型人才的实践环节教学目标[3]。
实践环节设置与目标如下表1所示:
6 总结
以上的专业培养方案采用了“3+1”培养模式:3年完成基本理论基本实践的学习,1年进行综合项目实习实训及毕业设计,运用企业成熟的项目(或案例)分解于整个教学过程中,使学生真正掌握软件开发的流程,通过最后一年的项目训练使学生具备企业级软件开发能力。
计算机移动互联网专业的人才目前缺口很大,但很多岗位要求有至少一年工作经验,如果想要培养应用型人才,让学生直接从校园走向职场,则需要将专业标准与职业标准相结合,体现人才培养的“职业化”和“岗位化”;将教学内容与社会生产实际相结合,体现教学内容的“实战化”;实践教学课程设置、教学形式与内容、实践平台相结合,体现实践教学的“系统化”,才能够最终达到培养符合普通本科教育基本要求的应用技术型人才的目标。
参考文献:
[1] 任小芳,李锦仪,李波.移动互联网及其业务发展浅析[J].通信世界,2012(5):36-39.
[2] 唐振明,徐建民,蒋唯游,等. CDIO工程教育模式在校企合作中的实践[J].计算机教育,2010(11):41-43.
程序员年度工作总结1以前在校很少自己做程序,对软件工程更是一无所知。来到公司,开始接触"大规模"(其实现在看来实习的项目其实还是很小的)软件开发,一时真的有些迷茫。比起VSS,MVC,QA,CMMI,我对JAVA,JSP,_ML的一窍不通根本不值一提。大家都不想输在"起点",所以都默契地在加班,这样一直持续了实习的两个月。
刚来的时候"始业教育"显得慢吞吞,我们还经常盘算去哪哪玩之类的。我和__(20个新生里一个南区的兄弟,软件学院的)还经常出去吃各种小吃,每到一处都尝尝本地的风味,这是他的习惯。之后开始的培训还不是很难过,JAVA,C++,ORACLE,老师们讲的很"好",可以说是非常好,好得我们没有几个人能听懂。大家开始发愁,我也是每天晚上都基本看书到10点。
"我心说得亏哥们我还练过",来之前的2月份我就自己买了一本THINKINGINJAVA,看懂看不懂怎么说也算是准备了一下JAVA。C++虽说没去上过课,但凭我的直觉我就一下看中这东西很有用,自己也看过一阵。至于ORACLE,虽然不了解,但毕竟因为佩服"云飞扬"的性格和敬业精神,咱SQL选修也不是白混的。专业倒还有点"基础",再加上咱这自学能力也不是吹的,基本维持。可等到后来的日语课就全迷糊了:本就没有语言天赋,再加上记忆严重欠缺,总是特别害怕去上日语课。不过特别喜欢那个老师说话的感觉,加上她一直对我都很好,所以还是很用心的学着。
随着培训的收尾,我们开始正式进入项目。从需求分析,概要设计到详细设计,我们一步一步的开始接触软件开发的每个细节。不了的就是每天都要记"周报",填写自己的劳动成果。因为这个我还被QA通报了好几次呢,真的很郁闷。其实现在我很感谢这种制度化的东西,某些情况下好习惯的养成是要靠强制来确保的。详细设计之后就是企盼已久的编码,我心想终于可以做点"正事"了。现在回头一看才知道,其实编码只占软件开发的整个过程劳动量的1/4左右,而且其他的环节也不是想象中的那么无足轻重。
编码我其实做的很不好,主要是因为需求分析阶段就没有认真仔细的理解需求和规格说明,加上编码时一个关键时段我回校和老同学叙旧。那阵项目经理(PM)就经常和我们说,"有问题自己想办法,不要经常问我"。PM其实是在叫我们自己酝酿,遇到难题只有"憋"一"憋"才能有真的收获。而我不在的那三天正好是大家技术/思路上的一个"跃迁",很多难题的解决方法都基本成熟,大家的编码也接近50%了,所以回来时我感觉已经掉队很多。再一个就是编码中期时机器出问题,环境搭不上了,这使我更加紧张和急躁,大大影响了我的士气。
后来利用五一其间的加班我终于赶完了自己的模块,达到了第一个里程碑。其实从发现落后到加班赶完这段经历,对我来说也具有里程碑的意义。不仅考验了我自己的能力和心理素质,也证明了我对集体的责任感和合作意识。我可以叫别人来帮我做赶上进度,但那样我会错过自己学习的机会,以后再遇到难题我还是不行;我也可以硬着头皮导致项目延期,那样我以后的日子保证不好过,而且这么做也不符合我的性格。事实证明我顶住压力独立完成任务不管是对集体还是对我个人都是一件大好事。
紧张的编码之后是单体测试,很多人都在继续编码,原来大家的编码都是没有完全做完。本是自己给自己挑毛病的过程,我们却都用来完成之前没有完成的任务,说来不禁可笑。
单体测试之后就是恶梦一样的系统测试。传说系统测试压力很大,测试组找到BUG上报后这边就得限期修改,之后提交给测试组进行下一轮的测试,回归若干次,测试结束后产品达到允许的缺陷率才可以出荷。不过由于这时已经有人要返校体检,其他人也军心涣散导致集体"早退",测试没有很正式的进行,只是简单的做了一下界面的统一和功能的检查,连性能测试都没做。不能不说是实习的一个败笔。
回想之前的工作,不到10周时间我们从学生开始转变为员工,从对公司完全陌生到有了一定的了解,不管是处世为人还是技术思想我们都有确确实实的进步。
再结合我自己来看一看。的收获就是我克服了有些自大的坏毛病,虚心的向别人学习。我知道这就是我练习与不同类型的人适应,交流的开始。技术上自不必说,我绝对学到了以前在学校一年也不一定学到的东西,这就是一个态度的问题。"态度决定一切",这句话太有道理了。
另外一点遗憾就是小孟说的,我似乎也感到自己有点"工作狂"的味道。为了拿下那些代码和BUG,我有好几周都连续加班到晚上11点,由于工作占用了时间,我连以前一直的跑步都没坚持下去。这样不是好兆头,我必须要养成合理的作息制度,不管工作怎样忙,必须不能占用自己的作息时间。还有一个就是和别人的交往。曾因为一些小事分别和老胡和哲明闹了不愉快,幸好后来都说开了,大家没计较。我一定要严谨,克制,绝对不在以后的正式工作中做这样的蠢事。
总体来说,我对实习充满了快乐的回忆,也许是因为我在大学的生活过于平淡和压抑。希望我可以延续这样的快乐,将自己带上事业的顶峰。
程序员年度工作总结2过去的一年,在马总的亲切关怀,伍经理的殷勤管理与认真指导,软件研发部的团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报
第一部分工作总结
一、软件研发
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈
1、asp.net开发
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次asp.net项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方法等。asp.net如此,c#如此也同样如此。
其次,具备独立完成vb.net知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充_ml,t实际操作中空白的部分。通过这一年的开发,在.net方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
2、数据库开发
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与access数据库,这是我的收获·
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队
总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
三、个人成长
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
技术上:不管从语言上还是做事的逻辑上都得到了很大的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。
第二部分____年工作设想
通过今年的实践和学习,明年是一个新的开始,立足当前的优缺,肩负起一个软件工程师应有的工作和性质。希望为公司明年的发展尽的努力,也希望自己明年有更大的收获。明年计划在以下几方面有所突破,有所建树:
一、在编程语言掌握方面,达到本公司的编程思想—不被语言所束缚。在这方面伍经理是我的榜样,积极努力的提高自身的技术水平,真正做到不被语言所束缚。
二、数据库方面,在当前已有的基础上提升自己,明年自己给自己定的目标是,能非常合理的去使用数据库各类技术,掌握更多的数据库优化思想和技术点。有时间多向许总交流。
三、加强软件开发的辅知识使用和积累。针对当前软件开发中的一些情况,明年更加积极的学习javascrip、aja_和fle_等技术。能辅的把软件做的更好。
四、工作质量上,现在编程我是属于会写会编和局部效率,并不是全局的效率,明年一定要做到,编一个高效率的代码。这就要综合上面的三点,才能使其达到全局的高效。
程序员年度工作总结3过去的一年,我参与了较多的产品设计,从中受益匪浅,不仅学到了很多专业知识,对动态产品有了更全面的理解和把握,而且培养了我作为机械工程师所应该具备的基本素质。同时,我坚持自学,学习了当前机械行业新的工具软件和专业书籍,提高了理论水平。现将具体工作总结如下:
1.设计、调试出口印度的摩托车试验机
印度之行是成功的,也是艰难和值得回味的。我们一行三人,在没有翻译的情况下,克服当地天气炎热和饮食不适应的困难,在不到三周的时间内将四台设备调试完毕,拿到了用户的验收纪要,这是值得肯定的。但,我觉得也有一些遗憾的地方。由于是第一次做车辆产品的出口,缺乏经验,我们的包装和防锈做的不够好,设备出现了故障,让印度人对我们的满意度下降。如果我们注意这些细节,用我们的产品打开印度这个工业刚起步的国家的大门,那么,我相信我们会从中受益。
2.主管设计PWS-J20B1
此试验机已经交检完毕,各项指标达到了技术协议要求,等用户款到发货。
3.参与设计PWS-200B
与毛工一起设计,对液压夹头,气液增压泵等的工作原理有了更深入的理解,从毛工身上学到了很多东西。比如,设计的严谨和严肃性,此产品已发货。
开发四部的工作是繁重和艰巨的,我在车工和毛工的指导下,较好的融入了这种紧张和严谨的氛围中,较好地完成了各项任务,自身的业务素质和工作能力有了较大提高,对工作有了更多的自信。
程序员年度工作总结4我是一名程序员,在过去的一年里,软件研发部团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报如下:
一、软件研发
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈:
1、asp.net开发
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次asp.net项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方等。asp.net如此,c#如此java也同样如此。
其次,具备独立完成vb.net知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充_ml,java实际操作中空白的部分。通过这一年的开发,在.net方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。LocALhOST通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
2、数据库开发
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与access数据库,这是我的收获。
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
拼搏:公司给的每一个任务不管它多难,如果工作没有完成我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周末休息时间也要尽可能的使项目提前。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。
交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
三、个人成长
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
技术上:不管从语言上还是做事的逻辑上都得到了很大的的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。
程序员年度工作总结5光阴如梭,一年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的20_年,满怀热情的迎来即将到来的20__年。在这年终之际,现对来公司一年来的时间里所作的工作汇报如下:
1、正义erp项目的编码工作。
了解新疆正义项目的背景、及计划安排,熟悉正义公司制度及业务流程,再到熟悉新能开发模式,之后我根据需求调研报告,从基本的数据库创建,到编码,完成了销售部、生产部、采购部、质检部四个模块的基本单据的制单、审核、选单、查询、打印等系列的编码工作;完成了正义项目的模块测试及流程测试。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
2、、正义erp项目的实施工作。
从十一月初开始进行正义项目的实施,每天早起赶在企业上班前赶到企业进行erp的实施。实施期间主要是软件的安装实施及对企业的erp系统的使用人员进行软件使用培训;纪录客户使用过程中出现的问题,晚上下班后加班加点将每天的小错误及客户变更修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多与客户交流的技巧及业务上的知识,更加明晰了erp系统的流程。但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
3、帮助和使用手册文档的编写。
帮助的编写使我熟悉了dreameweaver和fireworks的使用,为后期的oa开发也奠定一定的基础,使用说明的编写,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并又一次的对软件整体进行了测试,对暴露出的小bug进行了最后的修改。
4、利用工作之余的休息时间加强学习。
平时注意收集有关pb方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习java及oa方面的知识(现转为学习.net),为后期的工作打好基础。
程序员个人年终总结范文1光阴如梭,半年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的2020年,满怀热情的迎来即将到来的2021年。在这年终之际,现对来公司5个月的时间里所作的工作汇报如下:
1、正义ERP项目的编码工作。
从了解新疆正义项目的背景、及计划安排,熟悉正义公司制度及业务流程,再到熟悉新能开发模式,之后我根据需求调研报告,从基本的数据库创建,到编码,完成了销售部、生产部、采购部、质检部四个模块的基本单据的制单、审核、选单、查询、打印等系列的编码工作;完成了正义项目的模块测试及流程测试。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
2、、正义ERP项目的实施工作。
从十一月初开始进行正义项目的实施,每天早起赶在企业上班前赶到企业进行ERP的实施。实施期间主要是软件的安装实施及对企业的ERP系统的使用人员进行软件使用培训;纪录客户使用过程中出现的问题,晚上下班后加班加点将每天的小错误及客户变更修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多与客户交流的技巧及业务上的知识,更加明晰了ERP系统的流程。但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
3、帮助和使用手册文档的编写。
帮助的编写使我熟悉了Dreameweaver和Fireworks的使用,为后期的OA开发也奠定一定的基础,使用说明的编写,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并又一次的对软件整体进行了测试,对暴露出的小BUG进行了最后的修改。
4、利用工作之余的休息时间加强学习。
平时注意收集有关PB方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习Java及OA方面的知识,为后期的工作打好基础。
以上为本人粗略的个人工作小结,请领导审阅,如工作上有不到之处,请领导不吝指出,以便本人及时改正,从而能更好地工作。
展望临近的20__年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。相信自己会完成新的任务,能迎接新的挑战。
程序员个人年终总结范文2本人自20__年2月份参加工作至今,六个月的实习时间已经结束。在这段时间里,在领导和同事们的悉心关怀和指导下,通过自己的不懈努力,在各方面都取得了进步。
实践让我的技能不断增长,工作能力不断加强。刚开始工作的时候,发现自己以前在学校学习的知识很死,知识面很窄,以前做的练习项目的实用性也不是很好。在开始的几周公司给我们实习员工培训了____平台的使用,通过这次培训使我认识到____平台的优势,可以大大提高软件开发效率。随后我就加入到“____X税源控管系统”项目的开发中,成为开发小组中的一员。在项目开发过程中一边是同事们的悉心指导,一边是自己反复琢磨与理解,几个月下来大大提高了自己业务和技术两方面的技能,已经能够比较熟练的掌握基本的工作方法和一些技巧,而且能够独立完成一些模块的开发。
通过实践,我解决实际问题的能力得到了很好的锻炼。工作中也遇到了很多的以前没有遇到过的新技术,面对技术难题我总是直接面对,没有逃避,也因此自学了好多新的技术,大大提高了自己的自学能力,也加深了对自己工作要负责的信念。在项目开发过程中也遇到了一些自己确实无法解决的困难,在经理和同事的帮助下也顺利的解决了,在此表示感谢。在开发团队中,加强了自己的团结精神和集体感,对工作认真负责,对团队认真负责。通过这个项目不仅学习到了很多技术也了解了整个项目的大体流程,从需求分析、数据库设计、详细设计、代码编写、测试、项目维护等方面,使自己不仅从一个代码编写人员的角度还从一个整体的角度来看整个项目开发,加深了软件开发概念的理解。
不断学习使我对工作有了更进一步的认识和了解。不懂就学、就问,是一切进步取得的前提和基础。因为有大学专业课的底子和参加过专门的JAVA培训使我在工作过程中遇到的技术知识能更快的理解和掌握。工作中时常遇到新的问题,就需要查阅相关资料,请教同事和经理,一个问题一个问题的解决,一个困难一个困难的克服,不仅将原有知识温习巩固,产生新的理解,而且学到很多新知识,有了许多新的认识。但某些认识都还是肤浅的,还需要我在实践当中去不断深入地理解。
现场开发与维护使我不仅从一个开发人员的角度而且从客户的角度去思考问题。在项目的开发后期,也就是项目即将上线的阶段我与其他几位同事被派往现场去开发与维护项目。以前的开发都是根据需求分析来进行,功能要求一般在分析里面都写的很清楚,但是在现场开发直接面对客户,客户提出的需求一开始只是一个大体的功能描述,如何将这个只是语言描述的功能转化为技术实现需要很强的抽象能力和对业务的深入理解,这个过程大大锻炼了自己的综合能力。在第一时间接触客户的需求,从客户的角度思考问题,只有更了解客户需求才能更合理的设计软件的结构,功能。了解客户,了解需求,转化到技术层面。这个过程得到的经验很难得。
良好的心态转换。从学校到社会,从学生到职员,自己做到了自然的转换过程,希望自己以后对工作更加认真负责。在今后的工作中,我将发挥优势克服不足,朝着以下几个方向努力:1、学无止镜,时代的发展瞬息万变,各种新技术知识日新月异。我将坚持不懈地努力学习各种理论知识,并用于指导实践,以更好的适应行业发展的需要。2、熟练的掌握各种业务技能才能更好的投入工作,我将通过多看、多学、多练来不断的提高自己的各项业务技能。3、"业精于勤而荒于嬉",实践是不断取得进步的基础。我要通过实践不断的总结经验,提高自己解决实际问题的能力,并在实践的过程中慢慢克服急躁情绪,积极、热情的对待每一件工作。
总之,短短的半年实习期,是我人生角色转换,不断成长的一个重要阶段,也是我对编程由陌生进而熟悉、热爱并愿意为之终生默默奉献的重要阶段。
程序员个人年终总结范文3大家好,我是__X项目组的__X,我于____年7月进入公司做JAVA程序开发,至今已近快一年时间了。初来公司,曾经很担心不知该怎么与人共处,该如何做好工作;但是公司融洽的工作氛围、团结向上的企业文化让我较快适应了公司的工作环境。在本部的工作中,我一直严格要求自己,认真及时做好领导布置的每一项任务。不懂的问题虚心向同事请教,不断提高充实自己,希望可以为公司做出更大的贡献。
当然,刚做这个项目的时候,难免出现一些小差小错需领导指正;但前事之鉴,后事之师,这些经历也让我不断成熟,在处理各种问题时考虑得更全面,杜绝类似失误的发生。在此,我要特地感谢部门的领导和同事对我的指引和帮助,感谢他们对我工作中出现的失误的提醒和指正。总结经验是一个人迅速成长的有利催化剂,为了更快地成为一名优秀的员工,现将我20__年上半年的学习、工作情况总结如下:
20__年初时,我们进销存项目通过了一期客户验收。但是,随着客户业务的变化,项目需要做很大的改动和调整。现进销存系统进入了二期的设计开发阶段。
初入公司的时候,我只负责财务模块的存货核算开发工作。随着公司人员的变动,现在我负责财务管理整个模块的开发工作。很明显的能感觉的身上的压力越来越大,也许是因为我的个性使然吧,越挫越勇,迎难而上。不断的学习财务业务知识和本系统框架,现基本了解掌握了财务的整个业务逻辑及业务流程。因为没有参与一期的原型、需求、设计、数据库等文档的设计。
在开发过程中发现,有好多原型、需求文档、设计文档,只知其然,不知其所以然。总结一期经验,避免二期开发中遇到同样的问题和困难。从原型设计、谈二期需求、整理需求文档、数据库设计、开发,一条龙负责到底。这样对业务逻辑及业务流程有了更深的理解。从“我问”,到“我讲”,有了很大的个人提高。提高软件知识和技术只是问题的表面,本质是要提高自己认识问题、分析问题、解决问题的思想高度。在能胜任工作的基础上,立即去涉猎其它领域的专业知识,丰富自己的知识体系、提高自己的综合素质。
我相信付出肯定会有收获,在我们的努力下,进销存系统一定会给客户及公司一个满意的答案。
在这一年里,我看到公司的迅速发展,各项制度的不断完善,我很庆幸我是公司的一员,我会用谦虚的态度和饱满的热情做好我的本职工作,为公司创造价值,同公司一起创造美好的未来。
程序员个人年终总结范文4先自我简介一下,本人从事asp.net开发进一年,09届毕业生,__年11月开始上班,之前做asp,__年2月后开始做asp.net,由于公司转型,现在带十几个人在一起搞asp.net开发,主要是关于准金融行业的行业管理软件。年度总结在会议上也写了,但仅限于对于工作总结及__年工作计划,自我总结较少,因此今天专门做下自我的年度总结,主要从技术、管理、人生上面谈谈这一年的收获,前辈路过欢迎多多指正。
技术
我在学校里学的是电气自动化,程序基础仅限于c基础课程的一些知识,后来由vb、html转向asp,在asp上花费了不少时间,对asp比较熟悉,后来由于公司业务需要,将开发平台转向asp.net,开始对asp.net不是很感冒,以为就是asp的一点扩展(那时还不知道三层架构,数据数据访问全在页面里——!),后来招来几个北大青鸟的过来终于意识到asp.net的强大之处,经过个人的努力已经逐步掌握了asp.net,现在层次上只能讲个人觉得是入门而已,原因是多方面的,待会儿会讲到。
相信从面向过程转向面向对象的同学都有一种感觉:面向对象开始真的有点别扭,涉及到属性,尤其是类之间的各种关系,那时老想用面向过程传递参数多方面啊。于是老在想对象这种东西,从概念中跳中来,以自己的方式去理解才逐渐体会到页面对象的精华来,分层次展现、分级别访问、封装对象之间各种关系逐渐真正理解了,尤其是对象之间的关系,如对象a与对象b两者之间的关系,有些需要完全公开,有些需要隐藏,有些需要通过第三方传递,有些需要给自己的下级可见,有些需要让下级去完成具体操作——这不是现实的实际模型吗?应该这么理解,面向对象来源于现实,它不是一种凭空空想出来的理论,这些对象之间的关系可以将其还原为父子、夫妻、领导下属、同事、朋友之间的关系。相比之下,页面过程往往像是一股脑全部推给用户使用,其中的数据与数据访问方法层次不清晰,在模拟现实上它与面向对象相比更易于入门理解,实质上难于准确直接地表述。
面向对象上另一方面是它的设计模式,在之前的面向过程中对这个设计模式并没有清晰地提出来,面向过程优秀的代码要求高内聚低耦合,从个人的理解上,这仅是对软件开发方法“技”上理论总结;设计模式是达到了“道”的层次,因为它从更大的方向、更抽象的层次来去表述具体的代码模块之间的关系,可以认为设计模式是完全从实际的应用来不断总结得来的经验,之间并没有这种术语,但相信前人肯定也使用到这种思想,它从实际应用于来,当然要应用于实际工作中,认真思考不断总结每个人都会有自己的“设计模式”,可以借鉴前人的思想来去提升自己,不可去为“设计模式”而设计模式。
具体到asp.net的实现模型中,真正理解它的机制与方法也就不难理解,记住b/s中离不开post或get,所有的autopostback、selectedindexchanged……都是去调用form传值,加上runat=server的服务器控件打开它生成的源文件也是普通的html标签,微软的让软件开发更容易的思路是很好的,时代在前进,很多年前你使用c写出mis证明你很牛,很多年之后你不在使用c去写“学生管理系统”、“图书馆管理系统”那只能说明你的脑子少一根筋,开发语言都有长处与不足的地方,因为它们适用的场合不同,类似不能拿匕首去跟炮弹比,也不能拿c与php比,程序员都有一种偏执的心理,但一点要记住,你面对的用户才有最终发言权,程序能不能满足需要,易用性、稳定性、成本才是应当首先放到重要位置来去谈的。
管理
最开始担任管理一职时开发团队加我在内只有四个人,那时只是抱着接受挑战的心理去做管理,加上我本人比较重感情,团队之间关系相处都不错,但严重的问题逐渐显露出来:工作的随意性、团队精神薄弱、工作方式蛮干,印象深刻的是有几个开始承诺项目不能完工,于是最后天天加班,一直做到早上6点,睡一会7点半接着上班,几个同事都是年龄差不多的小伙子,干劲十足。后来随着时间的推进,问题越来越摆在眼前:项目迟迟不能完工,又由于公司待遇方面让新员工感觉不值得,于是形成了老板抱怨员工也抱怨的状况,我在中间两点都要去“消火”,这期间是我们部门相对最累的时间但也是相对感觉最充实的时候,后来,之前的员工跟我说“再也找不到那种感觉了”,这是我能想像的。这期间主要是老总对我十分信任,工作上主要是管理方法上对我指点了不少。后来我逐步体会到,管理应该是“大家定规则去遵守”,而不应该是“人管人”。
人管人很容易陷入一个误区:领导去时时刻刻关注每个员工,这样最后往往后造成员工对领导的敷衍了事,管理松了员工会责任下下降,管理紧了造成员工与领导关系紧张,另一方面领导时间精力有限必然耗费大量的精力在日常的监督中而不能投入到全局的管理中。
于是“定制度-定分工-定进度”,明确日常所有的规章制度,这期间除了公司主要的工作规章制度外其他的日常工作纪律、日常管理等规章制度都是我本人制订,然后征求大家意见最后去贯彻执行。中间也遇到了不少问题,比如开始我们内部是允许使用qq的,后来员工用qq闲聊的时间增多,大大影响了工作效率,最后决心禁止,开始阻力较大(貌似程序员都喜欢挂上几个qq去到群里搞个群主,虽然群里大多都是菜鸟),最后多次开会,逐个谈话,阐明道理,形势逐渐好转。
项目分工上针对技术水平明确分工,制订项目开发计划,由于开始技术都不是很成熟,不少时间我这边强势要求,使用野蛮方法,完不成加班——我陪着加班,这段时间能感觉到员工对我稍有怨言但总体还是认可的。
这期间公司新招人员,人员的增多更使我意识到团队管理的重要性,这期间版本控制、编码规范、文档管理、bug管理等诸多问题都得到一一解决,技术水平上主要是我个人利用空余时间学习新知识充电,然后展开各种培训,主要是photoshop、css、js、sql等方面,培训一方面提升了员工的技术水平,一方面我本人在学习培训的过程中得到的最多,因为这个时候个人要求去思考的会更多,加上我本人对技术兴趣比较深厚,所以后期工作慢慢踏入良性循环。
待遇低、条件艰苦、工作时间长、工作压力大是团队中最大的难题,这方面公司在某些方面决策层有着严重的错误思想,造成技术人员对公司埋怨增多,在这方面我本人只能以劝架婆的身价去安慰身边的兄弟,因为我明白现在公司的问题与当前中国软件行业的通病一样,盲目追求利益最大化,不求质量,但求速度,整个社会风气造成软件行业良莠不齐发展,整个中国三四个人的开发团队组成的公司数不胜数,整个程序员阶层生存状况可想而知,疯狂加班、代码质量低下、维护成本大、稳定性差、用户体验差……。
当然我们本身不能去逃避这个现状,对于个人来讲任何假大空的口号都是没有意义的,程序员作为技术人员最重要的是心态,以良好的心态去面对各种问题,发现问题、解决问题,发现问题抱怨是解决不了问题的(“it民工”是我个人认为it人最没有正确的自我定位的一个称谓,试想一个人连自己都看不起自己的职业,他能做好自己的工作吗?),最主要是解决问题。
我在面试员工时反复提到的三点是:工作态度、发展潜力、工作能力,由前向后排序,心态最重要,大公司大家都想削尖脑袋往里挤,但名额有限,所以广大的程序员同志绝大多数都集中在二流三流四流的软件公司,这个时候更应该做好个人职业定位。以我个人的经验,新员工选择一家公司往往最看重工资待遇跟发展潜力,程序员是一种不可以混日子的职业,工作能力很重要,但不是最主要的,工作态度是最重要的,工作态度往往跟个人的思想认识还有职业所在的环境有关,我个人的体会是绝不能太过于情绪化,情绪化无论是对工作还是对个人的发展都是不利的,就是说哪怕是明天你要辞职,你今天都要把今天要做的事情认真用心做好。
对于工作责任心不够的员工是尤其值得关注的,他们往往自我意识过于强烈,追求以自我为中心,很多时候伴随着工作得不到认可、工作感觉不充实不开心,我会主动找他谈话,我认识:你管理的是一个实实在在的人,他不是一台任你摆布的机器,人会有情绪往往是有心结,找到原因,多加开导,用心去关心每个成员。对于实在不适合在本团队发展的员工要做好最坏打算。程序员这个职业与现在的大学生具有一致的特征,一个是从天之骄子沦为多余人,一个是从高智商人士成为今天中国通行的”it民工“。另一方面是程序员往往年龄集中在20-25之间的男性中,情绪化、失落感、心理不成熟等一系列问题都会出现。但这个阶段的人往往也最易沟通,可塑性也较强,适当的引导、合理的方式会比野蛮的管理效果强上百倍。
程序员个人年终总结范文5来公司担任程序员一职已一年多时间,在这一年时间里,我学到了很多东西。每个人都是在不断的总结中成长,在不断的审视中完善自己。在这半年里自己也是在总结、审视中脚踏实地地完成好本职工作,现将这半年的工作总结如下:
一、思想方面:
严格按照一个程序员应有的素养要约束自已,爱岗敬业,具有强烈的责任感和事业心,积极主动认真的学习专业知识,工作态度端正,认真负责,听从公司的安排,积极配合全友家私完善ERP 系统,任劳任怨。
二、工作方面:
热爱自己的本职工作,能够正确认真的对待每一项工作,工作投入,热心为大家服务,认真遵守劳动纪律,按时上下班,有效利用工作时间,坚守岗位,需要加班完成工作按时加班加点,保证工作能按时完成。在这半年里,我本着把工作做的更好这样一个目标,开拓创新意识,积极圆满的完成了以下本职工作:
配合全友家私开发并完善 SRM 系统
独自开发全友家私 SAP 日志维护系统
三、存在不足:
绪言
随着软件产业的迅猛成长,市场对软件人才的需求越来越大,于是越来越多的高校都开设了软件技术专业。但是,尽管高校每年该专业的毕业生数量相当庞大,软件公司和企业却反应招不到合适的软件人才。另一方面,学生也抱怨找不到与专业相关的工作,高校对口就业率低。这就是当今高职高专院校软件技术专业发展所面临的主要问题:人才培养与企业对人才的需求出现脱节,即学生找工作难,企业人才难求。归根结底,导致这种尴尬结果的原因是学生实践动手能力不足,缺乏开发经验,而这正是企业所要求的,于是传统的教学模式已经不能满足时代所需,实践为主的教学体系改革迫在眉睫[1-4]。
马鞍山师范高等专科学校软件技术专业成立于2006年,是在充分调研软件行业发展现状和趋势,以及对软件应用人才需求的基础上,经过专业建设指导委员会指导,针对地方经济发展需要而设置的。我校软件技术专业完全根据市场动态开设专业方向,目前开设的方向有Java Web开发方向、C# .NET Web开发方向和手机软件开发方向,拟开设软件测试方向。近年来,本着“更新教育理念、加强内涵建设、提高人才培养质量”的目标,我校积极参与专业建设,大胆进行实践教学方面的改革与探索。经过不断的努力,软件技术专业在创新人才培养模式、推进工学结合、实习实训、基于工作过程的教学改革等方面取得了长足的进步,人才培养质量逐年提高。
一、加强实验实训条件建设
要加强实践环节的教学,就必须完善相应的实验实训条件,实验实训条件的提高和完善是培养高素质技能型人才的基本条件。我校一直以来都十分重视教学的硬件资源建设,每年投入大量经费。特别是在2010年,为满足我市软件服务外包产业加快发展实现突破的需要,由市政府批准,依托现有马鞍山师专资源,于6月挂牌成立马鞍山师专软件学院。同年年底,在全校上下的共同努力下,在省教育厅和财政厅的大力支持下,软件学院获批“2010年度中央财政支持的职业教育实训基地建设项目”,中央出资150万,学校配套资金150万,共计300万元用于软件技术专业群实训基地建设。现有标准化多媒体教室28间,其中60座21间、80座3间、120座4间。机房4间,主流配置机器260台。一体化教室5间,有手机软件实训室、Java实训室、.NET实训室、软件实训工厂、系统集成模拟实训工厂,这些教学设施完全满足软件技术专业的教学及实训需要。
二、加强校企合作
学校要了解企业对人才的需求,必须深入企业。最好、最直观、也最有效的方法就是进行校企合作,使学校了解企业的运作方式和技术要求,让企业辅助学校教学,双方通力合作,资源共享,信息互通,从而有效地推进高职院校软件技术专业的教学改革。我校软件学院联手一大批知名企业共同参与办学,以集中优势教育资源,实施集中培养。软件学院理事会单位由安徽清华紫光国信信息科技有限公司、马鞍山视聆通软件园有限公司、上海狂龙数码科技有限公司、安徽开源软件有限公司等近三十家企业组成。企业全程参与学生的培养工作。
(一)企业参与制定培养方案
软件技术专业有一套科学、规范、相对稳定的专业人才培养方案,同时也根据社会产业的经济结构变化以及市场的需求,不定期联合软件学院理事会单位、省内外多家软件公司召开会议共同研讨,不断地对培养方案进行适当的调整更新,采取“将企业引进学校”、“把专家请进课堂”、“把教师送到企业”等模式施行校企合作办学,使得软件技术专业人才培养方案具有一定的前瞻性、创新性和科学性,可操作性强,培养目标与规格定位与职业资格标准相结合。
(二)企业参与职业素养课程教学
学生入校第一学期,开设公共基础课和职业素养课,其中职业素养课程由校企联合开展,如专业带头人进行专业介绍,企业负责人、专业技术人员到校开展讲座,优秀校友论坛和到校开展专业技术及职业生涯规划讲座,组织学生到企业参观,专业潜能测试等。经过一学期形式多样,内容丰富多彩的职业素养课程的学习,学生基本能够把握各专业方向的基本情况并且能够对自己的未来的职业规划有较清醒的认识。
(三)企业参与课程实训
2011年1月,我校2010级软件技术Java班与中软国际ETC(无锡)签订联合培养协议,在第二、三学期专业(核心)课程学习期间,由中软国际ETC(无锡)的项目经理到校开展为期1-2周的课程实训,如Java SE桌面项目实训(1周)、Java SE桌面数据库项目实训(2周)、网页设计项目实训(1周)、Java EE Web项目实训(1周)等。2012年1月,2011级软件技术.NET班又与中软国际ETC(无锡)签订联合培养协议。这使得学生在课程结束时就能较早的了解企业对该门课程的需求以及该门课程在培养职业岗位能力过程中起到的作用,并较早的接触企业环境,提高学生的实践技能。
(四)企业参与校内实训,双教师授课
在第四学期,学生在校内开展项目实训,由中软国际ETC(无锡)到校实施。在企业项目经理到校开展课程实训和校内项目实训过程中,配备一名校内专任教师随堂,实行双教师授课,这样做的优点包括:让教师在校内就有机会学习企业一线软件开发人员的工作风格,学习他们的先进技术和经验,同时还可以起到监督和辅助作用,一举多得。
(五)引入“双证书”制度
我校将职业资格证书纳入专业人才培养方案。引入不同级别的职业技能资格证书,实施“双证书”教育,如程序员、软件设计师、SCJP认证等。在教学计划内,将理论专业课程和实践性课程形成模块化,构成的与之相应的职业证书教育体系,为每位本专业学生储备对应的能力基础。
(六)校外实训基地建设
在加强与完善校内实践条件的同时,我校还根据高素质技能型人才培养的需要,建立了校外实训基地,至今已与上海狂龙数码、东华软件工程有限公司、安徽晟峰信息技术有限公司、安徽开源软件技术有限公司、安徽贵世信息技术有限公司等29家单位建立了实习基地,与企业在人才培养、资源共享、师资培训、课程开发及技术交流等多方面展开合作,充分发挥了企业主体在人才培养中的作用。校外实训基地每年接纳顶岗实习学生150人以上,这为我校软件技术专业学生在第五、六学期开展为期一年的顶岗实习提供了保障。
三、教学改革
(一)实行大类招生,“1212”分段培养
我校在2010级新生中实行计算机大类招生、调整人才培养方案,实行“1212”分段培养的人才培养模式,即第一学期(“1”),开设公共基础课和职业素养课;第二、三学期(“2”)开设专业课程;第四学期(“1”)组织进行校内项目实训。第五、六学期(“2”),安排学生到企业顶岗实习,同时完成与岗位相符的毕业设计。
大类招生的优点具体表现在如下几个方面:一、减少考生填报志愿的盲目性,第一学期结束时,学生完成职业生涯规划,选择相应专业和专业方向学习,很大程度上缓解了高考学子在专业选择上的迷茫和无措,有利于激发学生学习的积极性和学习兴趣;二、更好地满足志愿选择,督促教与学,实施大类招生给考生一个机会先进大类,再通过自己的努力选择自己感兴趣的专业,很好的激发了学生和老师学习和教学的激情与热情;三、培养复合型、创新型人才,按照大类招生培养人才,就可以打破专业界限,依据学生的实际水平组合班级,有针对性地组织教学,确定目标,因材施教;四、提高学校的办学能力和资源利用;五、利国利民,平衡所谓的“冷热”专业。
(二)构建“理论够用,实践为主”的技能培养体系
以企业需求和职业岗位为依据,优化教学内容,简化理论教学,加强实践。如我校软件技术专业(Java Web开发方向)的职业岗位是Java开发工程师和程序员。根据软件技术专业高素质技能型人才的培养目标,坚持以能力培养为主线,加强课程规划与建设,全面整合和优化课程体系,强化实践教学。基础理论以“必须,够用”为度,加大实践教学比例,达50%以上,同时注重课程和实训项目的综合化建设。
以职业岗位为出发点,工作过程为导向,职业能力为标准,序化教学内容。如分析“Java工程师和程序员”的岗位工作过程,邀请企业专家和专业教师一起分析完成该工作过程必须具备的各种核心技能,将知识融入工作过程。
跟踪新技术,融入教学,拓展职业能力。如在《数据库基础及Java数据库编程》教学中大胆引入新技术、新工具,以工作任务为专题,讲、练一种工具MySQL,演示、扩展SQL SERVER 2005,了解Oracle。教会学生完成一个任务多个工具的解决方法,力图提高学生适应环境的能力和知识的迁移能力。
(三)改革教学组织与教学方法
教学过程由多媒体教室加机房授课改为在一体化实训室组织实施,具体教学安排基于工作过程,项目引导,激发兴趣,任务教学,目的明确,课堂教学,以学生为主体,教师做引导。
教学中首先构造一定的场景,在场景中提出问题,引起学生的思考,激发学生解决问题的欲望;然后和学生一起分析问题,讨论可行的解决方案,引导学生利用已有的知识和能力,建构解决问题的知识准备;引出新知识,演示典型案例的实现过程;学生模仿完成类似的任务,对工具的实现产生认同感,完成一定量的任务达到熟练操作的程度;之后解决实际场景中的任务,与学生一起总结经验,将经验升华到一定的理论,指导以后的实践。
为加强学生的实践动手能力,教学内容由典型、实用的软件项目,按照工作过程进行展开。整个项目按照“项目背景――项目分解――下达任务单――学生讨论分析――教师引导――学生实践――教师总结――学生再实践”的过程完成教学任务。
微观课堂教学采用“问题引导,任务驱动”的教学法,以学生为主体、教师做引导,教师是问题的提出者、设计者,依据工作过程分解的工作任务,结合学生的知识结构,由浅到深逐步引导学生完成工作任务。教学方法如下图1所示:
同时教学中结合使用实践操作法、小组讨论法和专题研究法等教学方法。
(四)改革考核形式
在新的教学体系中改革传统的考试方式。采用上机考试、作业完成情况、课程设计、校内企业实训项目考评、论文答辩等多种形式对学生的学习效果进行评价,注重过程评价。
实习成绩由带队教师和企业的工程技术人员根据实习情况和实习报告进行评定。在学生的实习情况表上需有企业人员的评语和签字并加盖公章。
毕业设计(论文)成绩由指导教师、答辩委员会根据论文、软件系统开发完成情况和答辩情况进行评定。
成绩评定后,任课教师进行成绩分析,查找在教与学、命题、阅卷等各环节可能存在的问题,以期改正、完善和提高,促进教学质量不断提高。
四、加强师资培养
师资队伍建设是人才培养工作的关键,是高职教育教学的重要保障。高校应采取有力措施加强教师的培养、培训和师德建设,转变教育思想,更新观念,切实提高教师素质。我校在教育教学中不但从企业引进有经验的教师到校内讲学,同时还注重提高教师的专业实践技能和先进的理论水平,具体措施如下:
(1)实行教师导师制,师徒互助,共同提高;
(2)教学培训:鼓励教师参加校内及校外组织的各种培训;
(3)挂职锻炼:鼓励教师利用课余时间到企业一线挂职锻炼;
(4)听课:鼓励青年教师听课,指导教师随时检查其教案和课堂教学;
(5)教学研究:在进行完一轮教学后,鼓励青年教师撰写教学体会和论文。
通过不断的努力,我们已经打造了一支学习型教师队伍,终身学习的观念已经深入人心,并取得了一定的教育科研成果,促进了学校、教师和学生的共同发展,一支业务精干、结构合理、素质优良、特色鲜明的师资队伍正在快速的成长。
五、结语
我校通过几年的实践教学改革,专业特色鲜明,办学思路科学,教学设施、实验实训条件、实习基地、网络资源建设日臻完善,构建了“理论够用、实践为主”的、基于工作过程的技能培养教学体系,并积极探索实践“工学结合”人才培养模式及“项目引领、任务驱动”等教学方法,通过校企合作对校内专任教师进行双师素质培养,教师双师素质明显提高,教科研方向稳定,成果突出。近年来,毕业生质量逐年提高,大部分在南京、苏州、上海、杭州等长三角地区及北京地区等软件企业就业,成为企业技术骨干,得到了社会各界的认可和支持。
基金项目:马鞍山师范高等专科学校质量工程项目“大类招生前提下软件技术人才培养模式创新试验区”(项目编号2011xjrcpy02)
[参考文献]
[1]何婕.对高职院校软件技术专业人才培养模式的研究与实践[J].科技信息,2010,(15):628-652.
[2]曲桂东,张诚洁,丛迎九等.国家示范性高职院校软件技术专业实践教学的探索与实践[J].软件工程师,2010,(Z1).
一、背景
《国家中长期教育改革和发展规划纲要(2010- 2020年)》中提出“大力发展职业教育;职业教育应把提高质量作为重点,以服务为宗旨,以就业为导向,推进教育教学改革;实行工学结合、校企合作、顶岗实习的人才培养模式”,所以在未来一段时期内,调整专业结构、优化课程体系、建立中职学校与社会各方面联合培养人才的创新机制将成为中职教育教学改革的主旋律。笔者围绕中职计算机软件应用开发专业的人才培养模式改革与创新这一主题,以计算机软件应用开发专业课程建设为主要内容,结合当前中职软件开发专业在校企合作方面存在的不足,通过引入“企业课程”,探讨中职计算机软件应用开发专业企业课程建设的思路和策略。
二、当前中职软件开发专业校企合作的形式及存在的问题
(一)当前中职软件开发专业校企合作的形式
为培养符合市场需求的中职人才,当前部分中职软件开发专业也在积极探索有效的校企合作方式,合作的形式主要有以下几种:
1.与校办企业进行项目合作。实力较强的中职学校应成立校办产业软件开发公司,软件开发专业相关的教师直接到校办企业进行挂职,或者是公司接到项目后,把部分项目转给专业教师进行开发,这样,校办企业就能够定期提供固定的岗位给学生。
2.与校外合作企业的交流合作。
(1)邀请企业专家担任专业指导委员会委员,对专业建设起出谋划策的作用。
(2)邀请企业高层人员到校举行企业和行业发展等方面的技术讲座。
(3)企业为顶岗实习的学生提供一定数量的岗位。
以上的校企合作方式,促进了学校与企业的交流与合作,为专业能力较强的教师提供了开发实践的机会,在一定程度上也提高了教育教学的质量。
(二)当前中职软件开发专业校企合作存在的问题
1.开办的专业课很大程度上只是针对校办企
业,和校外的企业市场需求并不适应,比如笔者所在单位的校办软件公司,使用的核心技术主要是JAVA,所以软件专业开设的课程主要也是针对JAVA技术的,但笔者所在的地区,大部分软件公司使用的主流技术是.net平台,所以培养出来的学生与企业需求不符合。
2.培养出来的学生严重缺乏项目开发经验,学
生到企业顶岗实习后,企业还需要花半年左右的时间对学生进行专业培训,之后,学生才能承担相应的开发工作。
3.大部分专业教师缺乏项目开发经验,不了解专业的市场需求,所使用的技术和教学资源过于沉旧,对学生的专业引导不够市场化,学生开发出来的项目与市场需求差距太大。
4.企业高层人员到校举行企业和行业发展相关的技术讲座,但仅流于形式,缺乏持续性,效果欠佳。
5.由于计算机软件专业的特殊性,大部分的软件企业都是中小规模企业,每家企业每年能提供给学校的岗位都是个位数的。
因此,为了培养能承担计算机软件开发实际工作项目的、有经验、高技能的中低层技术人才,缩小中职毕业生与市场需求的差距,中职学校还需进一步加大校企合作的力度,开设更能适应市场企业需求的专业课程,使得中职的人才培养同企业的需求有效地融合在一起,为此,“企业课程”应运而生。
三、企业课程概念
“企业课程”源于校企合作过程中的“课程置换”,即用学生在企业培训学习的相关内容,以课程的形式替换原培养方案中相关的专业课程。
“企业课程”的设置要求是使中职学校的人才培养能够面向多个企业及市场企业对人才的动态需求,同时又能够使中职学校有效地执行课程实施方案。
四、中职软件开发专业企业课程建设思路
(一)调研企业需求
由于“企业课程”需要满足不同企业的动态需求,所以“企业课程”的创建需要学校和企业一起,对企业的岗位需求进行调研,调研分析出不同企业的共同需求,从而明确专业的人才培养目标以及根据相应的岗位需求明确专业课程体系的内容。经调研分析,笔者所在地区的大部分软件企业能为中职生提供的岗位主要有程序员、网页美工、软件实施及维护、软件培训等,而程序员使用的技术有.NET、PHP、JAVA、SQL数据库技术等。
(二)明确企业课程内容
根据专业课程体系内容以及企业的市场需求,明确企业课程的内容,企业课程一般开设在高二学期,比如.net综合实训、4G应用开发均可作为企业课程。
(三)明确人才培养模式
在确定了课程体系内容之后,学校根据专业的特性以及市场企业需求确定人才的培养模式,根据调研显示,软件开发专业以“项目”的形式带动教学生产是相对有效的培养模式,所以笔者所在专业采用了“项目一贯制”的人才培养模式。
(四)选取企业课程项目
根据课程体系内容及人才培养模式,学校与企业一起选取课程需要的项目资源,项目主要由校企合作企业提供,项目可以是企业已经开发的项目,也可以是企业正在研发的项目,所选取的项目应涵盖培养人才所需的知识、技术与能力等,项目的难易程度也有所不同。比如,为培养.net综合应用人才,可以选取企业的微信公众号、信息系统、企业官方网站、文件审批系统等企业项目作为.net综合实训课程的项目。
(五)制订企业课程标准
根据课程体系内容以及所选取的课程项目,对项目需要的文化知识、专业技能及其他能力进行整合,制订相应的课程标准。
(六)明确企业课程教学方式
1.如果企业规模够大,课程教学就可以在企业进行,任课教师由企业具有资质的工程技术人员担任,学校派出专业教师辅助实施。
2.如果企业条件有限,课程教学可以在学校提供的实训场所进行,并且按照企业氛围布置实训环境,由企业人员按照企业的方式进行教学,学校派出专业教师辅助实施。
3.企业课程教学过程中,以“项目”为引领,在项目的不同阶段对学生进行不同知识与技能的引导与补缺。
(七)企业课程考核评价
课程教学过程中,对学生进行过程性的学习评价,课程结束后,由企业技术人员以及学校辅助教师进行考核评价。
我在编写程序的时候觉得其中一个地方要按我以为的怎样怎样写,后来项目经理在测试的时候发现了问题,和其他程序员的模块衔接出现了一些乱码,就是用全角的中文输入时会出现乱码状况,项目经理就很气氛,把我给批了一顿。但是当时感觉自己的想法没有错,却没有想到会出现乱码状况,才发现自己学的还是不是很系统。项目经理的话或者说老板在公司中就是头儿,服从,其实也是职员该做的事情。
2)学会了沟通和处理问题的能力。
和需求公司的人聊他们的需求的时候,那个人对网站的一些术语不是很懂,就需要我们用最通俗的话去和他们沟通交流,在做项目的时候得学会和同事交流沟通,相互帮助相互的发现彼此的问题,团队精神在尤其是做项目最后的时候得以体现。同时明天沟通交流的重要性,比如我的程序中我没有用过全角的汉字输入测试过,但是项目经理就查出来了,如果让其他同事帮我测试下,说不定就可与避免这种问题。毕竟一个人的能力不可能样样都通。同时做事情一定要细心,遇到任何事情都不要慌张。
3)我快速学习的能力也得以提升。
在学习中老师不肯能把所有的东西都教会你,在学校中老师只是大概提了一些的东西甚至一点都没有提到的知识,在做项目的时候却用到了。就需要你快速的学习能力,接受能力,并且把所学到的东西快速的运用到实践中去,做好工作计划,让工作有条有理。
实践,就是把我们在学校所学到的理论知识},运用到客观实际中去,使自己所学的理论知识}有用武之地。只学习不实践,那么所学就等于零。理论应该与实践相结合。而另一方面,实践可以为以后找工作打下基础。通过,,这段时间的实习,我学到了一些在课堂上学不到的东西。因为在这里身处的环境不同,所接触的人与事也不相同,从中学到的东西自然就不一样了。要学会在实践中学习,从学习中实践。