时间:2022-02-03 09:10:44
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇程序员项目总结,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:职业素质;综合能力;理论基础;工作习惯
中图分类号:TP311.5 文献标识码:B
文章编号:1672-5913(2007)10-0056-03
我院实行院企联姻,把IT企业中培训过程引入到学校教育过程中,目的是扩大就业门路,缩短学生的社会适应期,降低学生的学习成本,提高学生的就业质量。按照当前行业所使用的最新技术进行项目训练,使其达到或接近就业的专业素质要求,达到积累工作实践经验的目的。在培训过程中,除了对学生进行专业的培养外,本人认为还应该在职业素质、综合能力、理论基础、工作习惯等方面进一步培养。
1职业素质
未走出象牙塔的学生心比天高,一向“饭来张口,衣来伸手”的生活方式培养出来的嫩芽撑不住劳动强度的摧残,对于有些工作不是不能,而是不为,出现了退缩念头;有些学生就业期望值太高,受经济利益的驱使,想一口吞个胖子,淡化了过程培训的含义,情绪上出现烦躁,导致对前途迷茫,失去信心。
程序员的工作是枯燥的,整天面对计算机,用26个英文字母和其他符号编程。程序员的工作非常辛苦,是一项智力劳动,需要投入很多的精力,因而需要程序员能够热爱这个职业,有工作热情,有投入的精神。虽然有的人很聪明,但是对软件开发没有兴趣,或者工作很不专心,工作效率很低,别人半天能干完的,他需要两天甚至三天才能干完;情绪浮躁,抵挡不住计算机游戏、各种新闻等诱惑,不能处理好工作与娱乐的关系,自制力和自控力差;写出的代码漏洞百出,质量不高,这样的学生不适合做程序员。有时程序员的成就在很大程度上不是取决于智商,而是取决于情商。程序员应该雄心壮志,面对困难时比较坚毅,吃苦耐劳、讲纪律、讲服从、讲诚信。
2综合能力
综合能力方面主要是:良好的逻辑思维能力、沟通能力与再学习能力。
2.1逻辑思维能力
软件开发过程是解决复杂业务逻辑的过程,是简化复杂逻辑的过程,是用精确来实现模糊的过程,开发人员需要具有良好的逻辑思维能力才能胜任。现实空间是模糊的,数字空间是精确的,在现实世界中很简单的问题,在数字空间中模拟时,就变成了一个复杂的问题。它要求程序员能够全面、准确、简洁地把握、分析和解决问题。
下面要求学生画出问题的程序流程图来测验学生的逻辑思维能力:输入三个整数,作为三角形的三个边,判断是否构成:等边、等腰、直角、锐角、钝角三角形。
这个题目的逻辑很简单,需要处理的逻辑包括:
1) 输入的合法性判断:输入的是否是正整数。
2) 是否构成三角形:任意两边之和大于第三边。
3) 是否构成等腰或等边三角形。
4) 是否构成钝角、直角、锐角三角形。
上边的题目是一个很简单的程序,但是学生回答完全的却很少,常见的错误见下表。
类似的逻辑问题在实际的软件开发中是经常用到的,需要程序员能够对各种情况进行仔细的分析、归纳、总结。如果在这样的问题上出错,是很难成为出色的程序员的。
2.2沟通能力
现在的软件越来越庞大,需要多人来协同工作。作为程序员要善于沟通,习惯沟通,要有团队精神。学生与学生、学生与老师交流问题时,往往要花费大量的时间描述问题。有的学生自己心里明白,但就是说不清楚,或者干脆不说,默默地做项目,甚至闭门造车。这些情况都会降低整个团队的工作效率。
再者,全球IT外包市场主要是欧美和日本,其中85%的IT外包市场是以英语为沟通语言。作为未来软件企业生力军,程序员应具备良好的英语应用能力,这是最基本的要求,如果对英语的熟练程度不高,对待引进的高技术以及与客户的沟通将会出现语言上的障碍。
2.3再学习能力
信息技术的更新速度是惊人的,程序员的职业生涯是一个要求不断学习的过程,永远不能满足现状,必须有很好的再学习能力。只有善于学习的人,才能够不断进步。真正优秀的程序员一定是掌握了很好的学习方法,否则现在是优秀程序员,两年后可能就被淘汰了。只有再学习,才能谈到创新,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法是通用的,可以举一反三。再学习的方法有很多,类比法、询问法、阅读示范程序、网上检索相关的资料等等。
3理论基础
大学计算机专业课大多是从二年级开起,有的学生由于目标不明确或数学基础不好,对专业课程学习不是非常扎实。由于信息技术发展快,有些课程内容陈旧。在培训阶段,对于知识的汇总归纳是非常有必要的。如果基于.net做多层结构的软件开发,以下的知识是必须的:操作系统原理、实体关系理论、SQL语句、面向对象的基本理论、数据结构、软件工程、VC++/JAVA、ASP/HTML、PSP/TSP/ISO、专业英语、程序设计风格、系统分析与设计等等。可以看出如果没有学过数据结构、程序设计方法、数据库概论以及软件工程的基本知识,要想成为一名合格的程序员显然是很困难的,而且一名熟练的程序员需要的知识远不止这些。掌握了基础的计算机科学理论,再拥有一定的学习能力,才能不断进步。
4工作习惯
良好的工作习惯是程序员个人开发过程成熟的体现,是效率的保证。程序员的培养很大程度上是习惯的培养。在实训过程中应注重培养如下几个方面的习惯:
4.1按照明确的编码过程工作
在进行一项编码工作时,需要按一个规范的过程来进行:
第一,定义做什么,包括功能范围、接口,任务;
第二,定义如何做,包括数据结构、算法;
第三,定义验收标准,如何检验正确与否;
第四,动手编程序、调程序;
最后,测试程序。
按照规范的过程来编码,才能真正提高工作效率。职业程序员的设计时间长于编码时间,业余程序员编码的时间长于设计时间。职业的程序员是设计程序,业余程序员是调试程序。职业程序员是预防BUG,业余程序员是修改BUG。为什么会出现这种情况呢?因为职业程序员是按照一个规范的编码过程来工作,编码的前期工作量超过了其实际的编码工作量。有的程序员经过简单考虑后就急于去写程序,往往是把简单的问题搞复杂了,复杂的问题搞乱了,效率很低。
4.2编码之前写文档
文档是软件实现思想的载体,是开发人员之间、开发人员与管理人员之间交流的工具,是设计人员与编码人员之间、设计人员与需求人员之间的一种约定,是组织的软件设计经验的积累,是组织软件财富的记录,是软件复用的基础。只有真正认识到了设计文档的重要性,才能积极主动地写文档。对程序员而言,在动手编程之前通过写文档可以把实现的方法想清楚、表达清楚、讨论清楚,这是已经通过无数的实践来证明了的好经验。初级的程序员往往在写程序的过程中发现越写越觉得复杂,程序越改越乱,等真正把工作做完了,再反思一下,却发现原来是很简单的事情。为什么会有这种感觉呢?问题就在于事先没有真正想清楚,弄明白,一旦进入问题的解决细节中,就很容易出错了,所以职业程序员应该具备写文档的好习惯。
4.3遵循设计进行编码
程序员不能随意自己决策,不按设计人员的设计去施工。同一个问题,可能有多种解决方案,在考虑解决方案时,程序员想的是局部,设计人员想的是全局,因而在进行决策时,设计人员是从全局的角度的考虑问题。在这种情况下,程序员要严格按照设计去实现,不能在如何实现上偏离设计,造成隐患。对于设计中有疑问的问题,可以讨论,但是不可以随意变更。
4.4按照良好程序设计风格编码
对于程序设计风格,原来要求效率第一,而现在要求清晰第一。
有人讲程序设计是一门个人艺术,包含了程序员个人的创造性,正是这样,才使得很多程序构思精巧,耐人寻味。但是同时它又使得程序的可读性较差,尤其是在多个人合作开发一个软件时,风格迥异的程序使得软件的可靠性与可维护性大大降低。程序设计语言一方面是人与计算机之间进行交流的工具,还是人与人之间进行交流的工具。单纯地作为人机交流的工具,只要程序能够正确、忠实地表达设计者的思想,也就发挥了其作用。但是人与人之间的交流没有一种固定的统一的模式,因此作为人与人之间的交流工具,还要表达得清晰易懂,能够为其他程序员所理解,这也正是要求程序员讲究程序设计风格的主要原因。
5总结
通过严格的专业素质训练和职业素质、综合能力、理论基础、工作习惯的培养,基本上可以使大学生走上社会前,从“学校人”转变为一个准“职业人”,使大学生在就业市场立于不败之地!
参考文献
[1] 王长春. 印度软件人才教育 成功就这么简单?[J]. 软件工程师,2005,(Z1).
[2] 刘克青,廖建新,张俊光. 软件项目策划中的工作量估算方法探讨[J]. 计算机工程与应用,2004,(27).
[3] 李洛,吴绍根. 基于印度NIIT培养模式的两年制高职软件人才培养思路[J]. 高教探索,2004,(2).
[4] 杜建立. 软件人才培养新挑战[J]. 中国远程教育,2004,(2).
收稿时间:2007-2-5
关键词:对日软件外包;职业素质;CSDP
中图分类号:G642 文献标识码:A
目前,重庆市从政策上大力扶持软件产业,加大投入力度,而其中的一个重心就是放在软件外包产业上。基于这个前提,市场必然需要大量的软件外包人才,本学院已经完成两届对日软件外包人才培养工作,在此基础之上,时刻把握市场对于人才职业素质要求的变化,进入对日软件外包企业深入了解实际需求,制定有针对性的培养计划就具有重大意义。
1软件外包企业人才需求现状
软件外包企业面临的问题是极其缺乏合格的软件人才。学校和社会培训机构培养了大量的软件人才,但大部分不能满足企业的实际需求。
软件外包项目是开发满足用户需求、及时交付、不超过预算和无故障的软件的任务,它以质量保证为基础,包括过程、方法和工具等要素。若要成功顺利地完成软件外包项目,还必需具备软件外包团队,这支队伍要有合理的软件人才结构,即“金字塔”型:塔尖的5%是软件架构师,中、高层的35%是管理项目、技术和产品的高级软件工程师,底层的60%是软件编码人员。
然而,三个层次的人才供应都有问题。首先是在整个软件开发过程中起着重要作用的软件架构师,由于需求量较少,要求也最高,单靠国内自己力量很难培养可胜任大项目的架构师,重庆市在金融风暴来临之际,出台优厚政策,高薪从国外聘请具有跨国大型项目经验的人才。其次是金字塔底层的程序员,学校教育理论与实践的脱节使得毕业生缺乏实际动手能力,不能满足企业的需求。现在,社会涌现出一批实训教育机构,以弥补学校教育的缺失,可勉强解决人才结构的底层人才数量问题。但是这些实训教育机构缺少规范和标准,人才质量无法得到保障。
最关键的是金字塔中约占35%的中、高层工程师问题,是整个人才问题的难点,它体现着企业生产和实施项目的执行力,他们必须懂得正确地生产开发外包软件的管理方法和国际标准,不再是手工业作坊式的管理与操作。中国软件行业起步于20世纪90年代,欧美国家的软件产业已经有约50年的历史,多年的积累已经形成了对软件生产环节系统的管理和规范,有效地控制软件开发的流程。这些操作规程已被国际上软件企业普遍接受,执行多年,并且形成标准。遗憾地是国内绝大多数公司的工程师和项目经理,完全不知道这些标准的存在,有些虽然知道但也没有仔细研究、更不用说应用。不执行这些标准并不妨碍面向国内客户开发生产软件产品,但是当走向国际市场时,是不能够胜任任何外包项目的要求。
2对日软件外包人才应该具有的职业素质
对日软件外包人才应该具有很强的专业技能并接受系统的软件工程实施规范的熏陶。笔者从外包人才的两个层面进行说明。
2.1中、高层工程师层次
对于中、高层工程师层面的人才,需要使用软件工程国际人才标准来进行衡量,比如懂得国际软件工程标准CSDP(Certified Software Development Professional),该认证体系由IEEE-CS(国际电子与电器工程师学会-计算机学会)创建,是对全世界范围的软件工程师在知识领域、工作经验及职业道德等方面的资质的正式认证。虽然需要拿到相关认证书是极其困难的(到目前为止中国拿到CSDP认证的只有30多人),但是所有这个层面的工程师应该积极向这个标准看齐,CSDP国际认证的基本内涵是按照国际标准规范化地开发软件。试想,一个外包企业,如果有3~5人通过CSDP认证,何愁外包项目做不好。
2.2程序员层次
程序员层面人才(高校本科教育能够为工业界输送的软件人才层次)应该具有的职业素质是:具有较强的快速学习能力,扎实的高级数据结构和算法基础、娴熟的编码技能、良好的编码习惯、能够熟练地使用2~3种流行的开发工具,能够写出规范的项目文档,善于沟通、具有极强的团队协作精神、奉献精神和务实的作风等。
2.2.1快速学习能力
快速学习能力是软件外包程序员非常重要的一个素质。笔者与几位IT公司面试官在讨论学习能力和已有的知识储备对于应届毕业生来说哪个对于该毕业生发展更重要这个问题时,得到的一致结论是前者。原因很简单,软件外包行业是随时要保证跟上IT技术发展的步伐,而IT技术的发展变化快是当前其他任何行业都无法相比的。相关从业人员如果不能跟上技术发展变化步伐,就会失去主动。所以在繁忙的工作之余能够利用较少的时间快速学习新技术、新的架构思想就显得非常重要。
2.2.2数据结构算法基础
扎实的高级数据结构和算法基础是程序员必须掌握的基础技能,但往往也是很多包括已经在业内工作多年的程序员没有重视的一个问题。对于现在很多高级的集成开发环境以及应用框架、类库等已经将很多数据结构和算法细节隐藏以支持RAD,很多程序员已经不必再去了解这些细节就能够透明的去处理业务和UI。这种情况针对小项目没有太大问题,但对于跨国外包项目来说,在处理一些软件项目时要从全局性能的角度考虑问题,此时高水平的底层数据结构设计和高效率的算法思路就显得十分宝贵了。
2.2.3编码习惯
良好的编码习惯对于在外包团队内部工作的程序员来说是非常重要的。在规范的软件外包团队中,程序代码需要给其他程序员复审,在维护阶段还会有其他程序员进行代码维护工作。如果程序员没有良好的代码习惯,那么上述情形不管对于自己还是对于团队中的其他成员来说都是噩梦。
2.2.4重视文档的作用
在软件工程中,文档的重要性是显而易见的。然而,至今大量的国内软件项目都还是编码基本完成后再回头来补齐文档,这对于软件外包来说肯定是行不通的。软件的设计实施都需要按照文档的规范定义来严格执行。对日软件外包人才必须具备规范的项目文档编写能力。
2.2.5语言能力及精神品质
对日软件外包程序员必须要具有较强的日语口语交流技能,这样才能直接精确的理解客户的需求,完成良好的沟通。而团队协作精神是当前很多行业都要求职业人应该具备的基本素质,软件行业当然不会例外,当今的软件产品规模越来越大、架构越来越复杂,一个人是不可能完成大型软件项目的开发工作的。软件外包行业由于其特殊性,必然的面临着大量的加班压力,从业人员必须从容面对经常性的加班,这当然会从某种程度上影响从业人员的其他生活,但从全局出发,这样的牺牲是必须的、是值得的。要从思想上要求从业人员做好心理准备,能够吃苦、自愿奉献。
3如何培养具有高素质的对日软件外包人才
要使软件人才的素质达到国际标准,并能够顺利做好对日软件外包项目,首先要在中、高层工程师层面寻找出提升高级软件人才素质的切实可行的办法与途径。解决问题的方法是:直接引进软件工程国际标准与软件工程人才标准,普及与推广CSDP是迅速提升人员素质达到国际水平的一条“捷径”。这个群体一旦培养成型具有一定规模后,对于底层软件外包人员的发展壮大以及素质的全面提升都是至关重要的。
中、高层工程师层面的问题解决了,对于底层的对日软件外包程序员的从业素质培养有一定带头指导作用,但仍然需要一整套科学合理、符合各地域实际情况的培养模式。笔者结合本学院两届对日软件外包人才培养经验,以及重庆市实际情况提出一个概要的培养方案设计思路。
首先,高校应多与企业进行交流和合作,让高校能够根据企业需求适当进行教学改革,鼓励学生多参加社会实习实践,使大学生具有相应的就业能力。同时,软件外包企业应与IT职业教育和培训机构合作,将更多的应届大学生培养成IT应用型人才。因为目前学历教育更专注于学生的基本素质培养,其就业能力、工作技能的培养应由学校与职业教育机构共同完成。就本学院的经验看来,在以往传统的计算机教学模式下,学生基本上将精力投入到计算机基础理论学习中,走向社会找工作时,发现IT职场更需要的是具有一定理论基础的、较强的动手能力的实干型人才。经过两届的对日软件外包校企合作培训,已经有半数毕业生的实际动手能力能够为软件外包企业所认可。
其次,由企业与培训机构共同推动大学生IT实习实训基地建设,通过IT实训提高高校毕业生实际动手能力,并大力支持和发展大学生IT就业中介服务机构,为大学生提供专业的就业信息、职场素质、就业推介等服务。
再次,重庆位于我国的西南部地区,学习外语的大众推动力和外语培训的教学能力较之沿海发达地区有一定的差距。对日软件外包人才必须具备较好的日语交流能力,特别是对日软件外包技术专业术语的领会和表达能力是语言能力培训过程的重中之重。特别缺乏既熟悉日语教学,又具备一定软件开发经验的人员作为对日软件外包日语培训师。
目前,我国教育现状更多还是应试教育,这样培养出来的人才从一开始在团队协作方面就有一定的欠缺。在高校教育的过程中,应该有意识的去培养学生的团队协作精神,激发学生对团队的奉献热情。
4总结
本文分析了重庆市软件外包企业人才需求现状,归纳了对日软件外包人才应该具有的职业素质,概要的提出了对日软件外包人才培养方案设计思路。我们相信重庆市的软件外包产业必将走向美好的明天!
参考文献:
[1] 刘绍坚. 中国承接国际软件外包的现状、模式及发展对策研究[J]. 国际贸易,2007(6):27-32.
[2] 李岳云. 国际服务外包趋势与我国服务外包的发展[J]. 江苏对外经贸论坛,2007(3):25-30.
[3] 赵桂玉. 中国软件外包业发展的障碍及解决措施[J]. 现代企业,2006(6):65-66.
[4] 刘先雨. 大连软件外包产业集群发展探讨[J]. 现代商贸工业,2008(10):121-122.
Research on Cultivating Professional Quality of Software Outsourcing towards Japan
WU Yu, YANG Hao
(1. Institute of Computer Science, Chongqing Three Gorges University, Wanzhou 404000, China; 2. Institute of Computer Science, Chengdu University of Technology, Leshan 614000, China)
关键词:课程改革;学习情境;任务驱动;项目导向
文章编号:1672-5913(2010)08-0076-04
中图分类号:G642
文献标识码:A
JavaEE编程技术是我院软件技术Java开发方向的专业核心课程,它是继学生修完Java程序设计、JSP程序设计之后的一门重要课程,对培养学生在企业应用中的开发能力,培养中高级Java程序员和Java服务器端程序员起着至关重要的作用。
JavaEE是一个庞大、分支众多的技术体系,同时也是一个需要不断接受新思想、解决新问题的系统,要想在有限的学时内学好,很难做到面面俱到。同时,作为一门高职课程,JavaEE不能太理论化,而应该面向实际应用。JavaEE是服务器端技术,要解决的问题是企业级应用,企业级应用的重要表现形式是分布式系统,EJB、Web服务、JMS这些企业级系统常用的技术,其学习难度大,应用环境很复杂,这给实践教学的开展带来一定的难度。
高等职业教育的课程改革不仅仅是方法的改革,还是理念、内容、实施方法等多方面的改革,高职教育的特点应该以实践教学为主。本文以企业对人才的需求为导向,结合笔者多年的教学实践经验,按照基于工作过程的改革思路,探讨了JavaEE编程技术课程改革过程中教学内容的优化整合、学习情境的设计、教学方法和教学手段的革新等多方面的改革实践。
1 按照企业需求和成长规律优化整合教学内容
1,1课程改革源于专业的整体要求,同时必须符合企业的需求
一门课程不是孤立的存在,课程改革来源于专业的整体要求,而专业人才的培养必须符合企业需求。企业对Java程序员的岗位需求分为两类,即Java客户端程序员和Java服务器端程序员。这两类岗位所要求的知识和技能既有较大的差异,又存在紧密的联系。一方面,客户端程序是独立运行的桌面应用,一般具有丰富的图形用户界面,经常需要直接与数据库进行交互,也需要调用服务器端程序提供的服务。客户端程序员需要具有丰富的Java图形用户界面编程经验,数据库编程经验,对Java服务器端技术有一定的掌握和运用能力。另一方面,服务器端程序运行在服务器上,它为别的程序提供服务,需要程序员掌握组件的编程、应用在服务器端的主流框架。作为高职院校软件专业毕业的学生,应该能够胜任软件企业对Java程序员的不同岗位需求。
1,2明确Java主线课程教学任务的侧重划分
我院以Java为主线的核心课程有3门:Java程序设计、JSP程序设计和JavaEE编程技术。其中,Java程序设计主要培养Java客户端程序员,同时解决基础问题。JSP程序设计和JavaEE编程技术主要培养Java服务器端程序员。事实上,JSP属于lavaEE的Web组件,是JavaEE分层架构中表现层最重要的技术,同时,在使用Java技术建立Web应用时,JSP因其便于掌握和可实现快速开发的优点成为很多小型Web应用采用的技术。我们将JSP作为一门课程放在JavaEE之前,不仅符合JSP的自身体系,还可以减轻JavaEE的教学压力,平滑JavaEE的学习曲线。
1,3确立JavaEE课程的教学目标和教学内容
在理清了各课程的关系之后,我们确立了JavaEE编程技术的教学目标:学习完本课程后,学生能够独立搭建JavaEE开发环境,能够熟练进行三大组件(servlet、JSP、EJB)的编程,能够运用Singleton、DAO、MVC设计模式,能够运用Struts框架,能够实现数据访问层,能够按照不同的方案设计和实现JavaEE多层结构的企业级应用。
教学内容包括:JavaEE开发环境、在JavaEE中使用XML、Servlet组件的编程、JavaBean组件在JSP中的应用、数据库访问技术、MVC架构、Struts框架、EJB 3.0组件编程。
教学内容的重点在于JavaEE三大组件技术(JsP组件主要在“JSP程序设计”中介绍)、数据访问层、设计模式、MVC架构和Struts框架;难点在于如何运用这些技术和框架实现一个既符合JavaEE分层结构,又遵循MVC架构的企业级应用系统;能力目标在于培养具有一定理论知识,又具有较强的实际编程能力和开发能力的应用型人才。
2 基于工作过程进行课程开发与设计
2,1课程开发的思路:教学内容、工作任务、软件项目三位一体
“教学内容、工作任务、软件项目三位一体”的含义是:巧妙地将理论知识点融入到完成不同的工作任务中;工作任务不是孤立的存在,而是软件项目中的一个个局部功能;学习进度与项目进度相一致,学习内容与项目内容相一致,用完整的项目贯穿课程始终。具体而言,主要具备以下3个特色:
特色1:软件项目贯穿。选择一个综合性的项目贯穿整个课程,项目根据学习情境分成一系列局部功能,在不同的学习情境中,学生将学会实现某个(些)局部功能,当完成所有学习情境,整个项目就可以完成。
特色2:理论教学采取任务驱动教学模式。整个课程划分为不同的学习情境,每个学习情境都有若干个典型工作任务,理论教学采取任务驱动的教学模式,将相关理论知识点融入到完成不同的任务中,并布置相近似的任务在课后实验中指导学生动手完成。
特色3:实践教学采取项目导向教学法。实践教学分为两个层次,第一个层次是在理论课后的作业和实验中阅读和模仿课堂上老师给出的代码,完成近似的任务。第二个层次是项目的开发,课程安排了三次大的课程设计,随着课程内容的推进,将同一个项目分别用不同的技术和框架实现三遍。第一层次的任务是为项目作准备,是项目中的一个个局部功能,这样学生可以实现从任务到项目的平滑过渡。
改革后的课程体系完全颠覆了传统的教学模式,符合高职教学以实践为主的理念,更加有利于培养高素质的技术、技能型人才。
2,2学习情境的设计
在上述课程改革思路的指导下,我们设计开发了“学习情境、能力目标总表”,如表1所示。
3 按照高职教育理念构建教学实施模式
3,1理论教学:任务驱动
改革后的理论教学以任务引领,按照“提出任务;完成任务的思想、方法、操作:边学边做完成任务;总结规律和技巧”4个步骤实施教学。
教师在讲授某个(些)理论知识点之前,首先提出一个具体的任务要求,让学生明白需要完成一个什么样的工作任务。例如:在课程早期讲授Servlet请求 和Servlet响应时,如果从理论到理论,不仅难以理解而且枯燥乏味。那么我们不直接从理论入手,而是首先推出一个任务“创建登录系统”,要求包含一个登录页面和一个LoginServlet。其中:登录页面接收用户填写的用户名和口令,点击提交按钮之后,LoginServlet将用户名和口令以HTML的方式返回给客户端(因为不想涉及到数据库);接着,将要完成的任务演示出来,使学生看得见、摸得着,以此激起他们强烈的兴趣。教师可乘机将“Http请求和响应的格式,如何发送请求,如何提交表单数据,如何处理请求,如何生成响应”等教学内容巧妙地融入到这个任务当中,讲解实现程序的代码,演示完成任务的步骤。
为了让学生真正掌握课程内容并且能够自己动手,教师必须提出新的要求。做法是:布置一个近似的但又有所不同的任务,比如,在登录的基础上添加注册,这样,学生必须阅读和消化代码,才能够模仿和创新,通过完成任务达到掌握所学知识的目的。在此过程中,教师要及时收集学生在完成任务过程中出现的典型问题和共性问题,结合理论知识点,在课堂上进行有针对性地讲解,给出解决问题的办法。
最后,要求学生总结规律和技巧,将完成任务过程中遇到的问题及解决办法写成实验报告,督促学生及时总结实战经验,实现知识的融合和再学习。
在“任务驱动”教学法中,“任务”的设计是关键。一方面,教师必须精心设计出一个个实际任务,将教学内容巧妙地隐含到这个任务当中。另一方面,为了配合项目导向教学法,任务的设计不能脱离项目而独立存在,而要为完成项目服务。任务实际上是项目这个大要求下的一个个小局部的功能,当学生完成了一定数量的任务之后,那么切入项目的时机就成熟了。
3,2实践教学:项目贯穿+项目改写
项目导向教学法,就是教师讲解项目的要求和涉及的知识点,学生在教师的引导下,上机实现项目。学生边学习边做项目,学习内容与项目内容相一致。请注意,项目导向教学法强调学习进度与项目进度相一致,用项目贯穿整个课程,而不是到了课程的最后才开始做项目。
为了实现项目导向教学法,就要考虑课程内容、课程进度与所要实现项目的相关性。事实上,在绝大多数课程中,很难找到一个完整的能够贯穿课程始终的项目。为了解决这一难题,可以在课程中及时地引入若干个小项目,让每个小项目近可能涵盖前一阶段课程所涉及的知识点。这样一来,整个课程就由若干个小的项目贯穿,既增加了课堂教学的灵活性,又降低了项目实施的难度。
幸运的是,JavaEE项目有自己的特点,Java EE项目可以选择不同方案来实现,如不同的分层结构,在一层中可以采取不同的技术,还可以选择不同的方法实现MVC设计模式。每一种方案都有自己的特点以及学习曲线。这些因素带来的影响在项目进入开发阶段后非常显著,学生在学习中需要适应这些选择。而正是由于JavaEE项目这一特点,使得采用一个项目贯穿整个课程成为可能。
本课程选择了“在线商店”作为贯穿始终的项目,该项目采取不同的方案被实现了三次。由于课时的限制,只要求实现“在线商店”前台的登录子系统和在线订货子系统。登录子系统包括注册和登录:订货子系统部分包括浏览商品目录、查看商品详情、商品搜索、购物车、商品定购。在表1中“载体”一栏显示了项目在各个学习情境的切入情况。
本课程的实践教学还有另一个新颖之处,那就是:教师不是直接布置学生做一个项目,而是给定一个原始项目,要求学生按照指定的要求进行改造。例如,在表1中的情境6,交给学生一个采用JSP+JavaBean模式实现的登录子系统,这是一个典型的JSP应用,只有两层结构,要求学生采用基于Servlet实现MVC模式进行改造,并用DAO设计模式实现数据访问层,数据访问采用连接池技术。在情境7,给定一个采用MVC模式实现的在线订货子系统,要求学生以此为基础运用Struts框架进行改造,实现基本项目的全部功能,鼓励实现扩展功能。在最后的情境中,用EJB改造现有的购物车功能。原始项目和改造后项目的比较参见表2。
通过对现有系统的改造,学生的知识和认识水平不断提高,阅读程序的能力得到训练,这也能帮助学生体会到各种技术和框架的应用特点。学生给出了很好的评价:“这是一个比较新颖的实验方式。以往的实训是自己或者以小组的方式开发一个小型项目,但这次是给了项目要求以另外一种方式改造该项目,这给了我们一种全新的思维方式。以前开发总有很强的依赖性,就是没开始做的时候总想着到网上去淘一个类似的系统,稍加修饰,便可以上交。改造项目就缩小了搜索范围,所以我必须先要完全读懂原项目的代码,然后再深层次理解Struts的特点,最后才能动手”。
说这句话的人,大部分是这个产品经理在自嘲。Glen认为,真正牛X的产品经理,不可能什么都不会,反而是什么都要会,而且必须在其中的一个或几个方面达到熟练。今天我们就来一起聊一聊产品经理和技术的关系。
【1两个平行世界】产品经理为什么要懂技术?
你得明白,人跟人的差距,比人跟猪的差距还大。两种不同的职业,看问题的方式那真的是天差地别。
(1)程序员的世界
程序员的世界既简单又复杂,在他们的眼里,世界的元素基本是固定的:
If和Else构建了世界
For和While是成果的复制
True和False是世界仅有的两种状态
Exception(异常)表示程序的世界不和谐因素
Function(函数)让我们专注解决问题
Class(类)抽象世界为对象
程序员们的思维基本如上,他们往往冷静、机智、思维敏捷,但往往也带来副产品,如自负(多少有一点)、较真(程序员往往不怕加班,但是痛恨多次返工、白干)、好面子(不要轻易评价程序员们的工作)。
(2)产品经理的世界
产品经理的世界,不是一个纯粹理性的世界。这个世界不只有黑和白,在黑和白中间还有无数的灰色空间。
产品经理为什么要懂技术?
产品经理的主要工作就是寻找、抓住用户需求,然后通过一定的手段做出产品满足用户需求。而需求是难以用黑白、对错两种状态来表述的。我觉得,这就是程序员的世界和产品经理的世界最根本的差异了。
一句话概括:程序员相信世界是数学构建的,0和1能够创造一切;产品经理相信世界不是纯粹理性的,人不是纯粹理性的,黑与白之间广阔的灰度空间是难以用数字表述的。
【2平行世界的统一】产品经理为什么要懂技术?
世界不是唯一的,但多个世界也不是完全孤立的,两个平行世界在某个维度下也会有交集。
(1)让需求落地,可能更加困难
产品经理的工作内容之一,就是找到不同世界的交集,然后将两个世界最强的点融合起来,聚合后发挥出巨大的能量。
产品经理想到、搜集到某个需求是一件很难的事,但是在找到需求后,如何让需求落地,可能是一件更加困难的事。统一产品经理和程序员的世界,是其中一个非常重要的步骤。
(2)如何做到统一世界呢?
第一步,产品经理要懂程序员的世界,不懂怎么做到统一?最好你就从那个纯粹理性的世界来,你自己在程序的世界生存过,你会明白程序员们思考问题的逻辑,你会很容易做到换位思考(换位思考时常被提起,但只有你做过对方的工作,你才能真正做到换位思考)。
第二步,产品经理要明白世界不只是0和1,至少目前不是(天网没有灭绝人类之前)。世界永远有很多东西是无法被解释的,不要抓狂,容忍不完美,在缺陷中才能找到需求和秘密,那是我们创造、改进用户体验的源头。
第三步,产品经理要做好沟通,说服程序员们用他们的黑和白,来做出你想要的多彩世界。沟通,是连接两个世界的绳索。每一次愉快的沟通,都会在两个世界之间连接上一段绳索,当绳索数量达到一定程度后,两个世界也就不分你我了。多鼓励,少贬低,在需求实现过程中多关注程序员的工作。
【3必知必会的技术术语(干货)】产品经理为什么要懂技术?
产品经理通过沟通来联系程序员和产品经理的世界。有效沟通的前提是你们有共同话题,他说的术语你能懂,他说的方案你能够参与讨论,并且说出专业的见解,这容易让程序员们产生共鸣,感觉你和他是同一种生物。做好了有效沟通,那么以后的工作的推进难度,起码降低80%。
下面分享一下我在跟项目期间,总结的出现频次比较多的技术术语,懂了他们,你跟程序员沟通需求时、闲聊扯蛋时,就不会觉得自己在听相声了。
1主流操作系统:Windwos(xp、7、8、10),Linux(服务器比较多),UNIX(服务器比较多),OS X(苹果出的操作系统)。
2 MAC地址:计算机的物理地址、硬件地址,它是生产厂商烧录好的,一般不能改动。
3 IP地址:用来给Internet上的电脑一个编号,方便别人找到你,容易更改。
4 HTTP:超文本传输协议,浏览器通过它,将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。
5 FTP:成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上。
6接口:顾名思义,就是两个程序之间,通过一个通道传输一些信息。
7带宽和宽带:带宽指的是你的上网时由于设备限制所能达到的最高数据流量理论值,而宽带则是一种宽泛的概念,即带宽达到512k以上的所有上网环境。
8数据结构和算法:数据结构指数据在计算机中存储存在的方式,算法就是计算机处理解决问题的计算机能理解的方法。
9 TCP/IP:要使计算机连成的网络能够互通信息,需要有一组共同遵守的网络协议,不同的计算机之间必须使用相同的网络协议才能进行通信,在Internet中TCP/IP协议是使用最为广泛的通讯协议。
10内存/闪存:内存是运行软件的,闪存就是存东西的,现在很多人总是说自己的iPhone是16G内存,这种话如果在程序员面前说,那他一秒把你当做外行小白。。。
关键词:软件开发;编程规范
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)26-6409-02
Studying on Code for Programming Standardization
HE Cheng-ju1, GUO Wei2
(1.Nanning Municipal Public Security Bureau, Nanning 530022 China;2.Nanning City Personnel Testing Management Office, Nanning 530022, China)
Abstract: There are something to focus on when using c# language programming, according to author's many years experience on software developing, this paper mentions several points need to concentrate on when programming and gives a way to resolve the problems base on practical examples.
Key words: software developing; programme criterion
随着软件行业的日益发展,C#作为软件开发语言中的后起之秀,在软件开发领域中的地位日益提高。目前,已成为面向对象开发中仅次于JAVA和C++的开发语言。本文探讨了运用C#语言开发软件中需要注意的编程事项,包括变量命名规则、方法格式、语句长度等方面需要注意的细节。
1 我们对软件开发有一定的认识
经历过大大小小的成功,也经历过不少的失败。对于软件编程,只有在有一定的编程水平和经验积累的情况下,才能写出质量较高的代码。一部完善的软件规范可以对程序员的工作起到事半功倍的作用,因此,需要有一套较为完善的软件编程规范来对程序员的编程行为进行约束。
那么,对于代码规范都需要注意哪些方面呢?
1.1 同一项目组中,需要统一的编程规范
在软件规模和大小不断扩大的今天,个人单打独斗完成一个软件编码工作的情况已经越来越少,更多的软件开发需要以团队合作的形式完成。这样就需要在项目开发之前,制定出一套相应的规范,方便程序员之间进行交流,在一个程序员离开项目组后,新加入项目组的程序员能够很快接手工作,进行新的功能开发。
在编程规范的制定当中,倘若项目组中之前从未制定编程规范,那么可以考虑以网上较为成熟的代码规范基础,结合核心程序员的编程习惯,制定出项目组的编程规范。这样既保证了核心程序员不至于因为编程规范的大规模变动而影响工作效率,也对新加入项目组对员工以及新入职的员工起到了良好的规范作用。如果项目组公司已有编程规范,那么则需要对新入职及新加入项目组的员工进行培训,以让新员工尽快将编程规范运用到工作中,在编写代码的过程中熟悉和掌握编程规范。
1.2 命名规则
变量、方法名、类名及接口名称的命名必须清晰明了,能够让人很快知道该变量的含义,避免容易被主观解释和难懂的名称。类似x、y、a1、b1这样的命名方式,不能让人很快理解该对象的含义,应尽可能使用于短循环索引中。
在变量命名时,必须采用英文名称命名变量。推荐在类属性中不要包含类名,例如Color.blackColor,应该命名为Color.black。
在类名、枚举类型、枚举值、事件、接口、只读静态字、接口、方法、命名空间、属性中应使用Pascal大小写规则,对于方法参数、方法变量应采用Camel规则。
在大小写规则中在,对于C#语言最重要的两个规则是Pascal和Camel规则。Pascal大小写规则的含义是“将标识符的首字母和后面连接的每个单词的首字母都大写”,例如,GetColor();Camel大小写规则的含义是“标识符的首字母小写,而每个后面连接的单词的首字母都大写”,例如blackColor。这样方便开发人员理解变量及类名的含义。
对于ASP页面中的ASP控件,命名时采用控件名简写+英文描述的方式进行命名,采用Camel规则进行命名,英文描述首字母大写,这样便于区分控件类型,提高代码的可阅读性。
1.3 代码格式
在同一项目中,代码的编写格式需统一,每行代码的开头统一缩进四个空格,代码需要垂直对齐左大括号和右大括号,格式如下:
If (x == 0)
{Response.Write("必须输入用户编号!");}
不允许以下格式出现:
If (x == 0) {
Response.Write("必须输入用户编号!");}
对于if、while这些控制软件流程的语句,必须跟随大括号,这样不易产生混乱。同时,大括号需要另起一行,不能与语句并行。
由于一般开发人员所用的电脑显示器尺寸为17寸4:3比例的显示器,分辨率为1280*1024像素,因此每行代码列宽大约控制在110个字符左右,这样既基本满足了Visual Studio开发软件的布局宽度,又满足了17寸显示器在显示上的需要。在代码超出规定列宽后,请在逗号后换行或者这操作符前换行。
为了区分代码块,方法与方法、类与类,以及方法中的逻辑块之间、类的属性与属性之间、属性与方法之间需要增加空行,以方便程序员阅读和熟悉代码,在发现Bug的时候,也能很快定位到相应代码处进行修改。
方法中的关键词和左括号、等号与变量以及赋值结果都必须以空格隔开,方法中的每个参数除了以逗号隔开外,必须在逗号后添加一个空格。。在Visual Studio运用较为熟练的情况下,完成方法里的最后一条语句之后,删除方法的右大括号,然后自己添加一次,所有必须的空格均可由Visual Studio2008/2010自动添加。上述方法同样适用于为ASP页面编写的JavaScript函数。
对于方法而言,每个方法最好仅仅完成一项功能。若对代码进行分层,每层代码必须仅仅完成一种类型的功能。这样的架构不仅满足了面向对象编程中抽象和封装的概念,也提升了代码的可阅读性。每行最多只有一条语句,超过一条语句会让代码显得不美观。对于方法中代码的行数,如果是按照某些大公司的要求,每个方法体中代码行数不要超过40行,但是对于 C#编程,尤其对于新入职的员工,很难达到这一要求,那么也应尽量控制代码的行数,以尽量简洁和高效率的代码完成功能的编写。
对于新人而言,在编写代码中很容易犯的一个错误是将别人写的代码移植到自己的代码中时,会将与实现功能不相关的代码一起拷贝到自己的文件中,甚至会由于执行不相干的功能而降低后台文件运行的效率。那么,必须在代码移植之后,仔细检查一遍代码,若是不必要的功能,需要尽可能的精简掉,以免影响代码效率。
1.4 代码分层
在软件规模不断扩大,开发工作日益加重,尤其是以JAVA、为代表的网络编程发展不断加快,技术手段日新月异的今天,软件代码分层的重要性不断体现。软件架构分层不仅提高了代码的可读性和优雅型,更是大大提高了代码执行效率。
目前,网站开发通用的MVC(Model、View、Controller)架构就是一个很好的分层架构例子。在此基础上,通过对Controller层的进一步细化,可将该层分解为页面控件控制层(主要是JavaScript函数)、后台逻辑层、数据库访问层、数据模型层等架构,在这其中,页面控件控制层控制前台页面的样式,通过WebService调用后台逻辑层的运行结果。后台逻辑层通过调用数据库访问层的代码,获得从数据模型层中返回的操作数据库结果。这样的分层结果,使得每一层次的代码只能调用自己下一层次的方法获得返回结果,层层调用,层次分明,大大提升了代码的效率和可读性。
1.5 代码注释
代码注释是软件编程中一个非常重要的问题。程序员在编写代码的过程中,如果能多花半分钟编写代码注释,在后续开发中将大大提高代码的可读性和可重用性。
例如,如下一段代码:
if ( 1 == 1 )
{statement;}
相对于初学者或者新加入项目组的程序员来说,对于“1 == 1”这个判断条件的理解就会产生歧义,但是如果在if语句后加上注释,如下所示:
if ( 1 == 1 )// always true
通过注释语句,明显可以知道,该判断条件的意思是每次该语句的判断结果均为true,每次程序运行至此都将进入该判断语句下的方法体中。
如果是初学者,在不熟悉代码注释格式的情况下,可以考虑采用Visual Studio的Visual Assist X插件来统一注释的格式。在日常开发工作中,对该插件的注释功能应用较多,但是其他功能相对使用较少。该插件可以自行编辑注释的格式,也可以对注释及代码拼写进行校正。该插件也可以对Visual Studio的编程界面进行更改,让程序员在工作的时候更为舒适。
1.6 代码优化
对于 C#网页编程,代码效率的高低主要体现在循环语句和分支判断语句的使用上,尤其体现在数据库操作和DLL文件的引用调度上。良好的编程规范,能够大大提高代码的运行效率。
对于循环语句,需要减少一切不必要的循环操作。当页面逻辑完成必要的循环操作后,如果还未达到循环体语句规定的循环次数时,为了减少不必要的服务器资源消耗,提高页面反应速度,必须跳出循环。对于分支判断语句,例如if()...else if()...else...以及switch ()...case “xxx”:...,需要将命中次数较多的条件放在判断语句序列的前列,命中次数较少的判断语句放在判断序列的末尾。以
上的编程规范在网站访问量较少的时候体现不明显,但是当网站的访问用户达到一定数目之后,将会对服务器负载产生较大影响。
在完成一套软件的开发之后,如果有时间,必须反复不断的对源代码进行重新阅读和检查,在检查过程中可以不断发现源代码中可以优化的部分。提高了软件效率的同时,也提高了自己的编程水平,积累了更多的经验,一举两得。
2 结论
总之,上述几点是我们对于软件代码规范中的一些小小的看法。对于编程来说,需要不断地在实践中总结经验,时刻将编程规范运用于软件开发中,通过实践,不断提高自己的编程水平,养成良好的编程习惯,提升代码的运行效率,增强代码的优雅性。
参考文献:
[1] 石晓宁.C/C++风格软件的编程规范与稳健性探讨[J].雷达科学与技术,2005(6):346-349.
[2] 刘洋.编程规范与交流能力是国际化嵌入式软件人才基本素质[J].电子设计技术,2008(5):143.
日子在弹指一挥间就毫无声息的流逝,就在此时需要回头总结之际才猛然间意识到日子的匆匆。下面是小编给大家整理的关于程序员试用期工作总结2022范文,欢迎大家来阅读。
程序员试用期工作总结1光阴如梭,半年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的20__年,满怀热情的迎来即将到来的20__年。在这年终之际,现对来公司6个月的试用期里所作的工作汇报如下:
一、erp项目的编码工作。
从了解新疆正义项目的背景、及计划安排,熟悉正义公司制度及业务流程,再到熟悉新能开发模式,之后我根据需求调研报告,从基本的数据库创建,到编码,完成了销售部、生产部、采购部、质检部四个模块的基本单据的制单、审核、选单、查询、打印等系列的编码工作;完成了正义项目的模块测试及流程测试。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
二、erp项目的实施工作。
从十一月初开始进行正义项目的实施,每天早起赶在企业上班前赶到企业进行erp的实施。实施期间主要是软件的安装实施及对企业的erp系统的使用人员进行软件使用培训;纪录客户使用过程中出现的问题,晚上下班后加班加点将每天的小错误及客户变更修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多与客户交流的技巧及业务上的知识,更加明晰了erp系统的流程。但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
三、帮助和使用手册文档的编写。
帮助的编写使我熟悉了dreameweaver和fireworks的使用,为后期的oa开发也奠定一定的基础,使用说明的编写,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并又一次的对软件整体进行了测试,对暴露出的小bug进行了最后的修改。
四、利用工作之余的休息时间加强学习。
平时注意收集有关pb方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习java及oa方面的知识(现转为学习),为后期的工作打好基础。
展望临近的20__年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。相信自己会完成新的任务,能迎接新的挑战。
程序员试用期工作总结2我于年_月_日成为本公司技术部的一名程序员,三个月的试用期转眼就过去了。这段我人生中弥足珍贵的经历,给我留下了精彩而美好的回忆。在这段时间里您们给予了我足够的关怀、支持和帮助,让我充分感受到了领导们海纳百川的胸襟,在对您们肃然起敬的同时,也为我有机会成为影响力在线的一员而惊喜万分。
这段时间,在领导和同事们的关怀和指导下,我通过不懈努力,各方面均取得一定的进步,现将我的工作情况做如下汇报:
一、通过理论学习和日常工作积累经验我的各方面有了很大的进步
刚到公司不久,我便开始负责net方面的网站开发和广告平台开发和维护,刚开始的时候对我来说确实压力很大,因为各方面都还不熟悉,而且与之前的公司相比,节奏也有点快,不过我慢慢的习惯了环境,和同事相处的比较融洽,领导对我也比较关心,在公司里工作就像是在一个幸福的大家庭里一样,我很快喜欢上了这里。
我到公司不久,第一个项目是___公司网站,做这个项目的时候我遇到了几个问题,我在以前公司做的时候没有在这么短的时候完成一个项目的,在效率上提高了我的能力。做这个项目的时候我也遇到了许多以前没有遇到过的问题,我请教同事和朋友,还有借助网络一一解决了难题。
之后,我将b2b广告招商平台进行了改版,开发了___智能建站广告平台以及以后网站的维护工作。
接下来,我又做了一个比较棘手的项目___在线咨询系统。为什么说棘手呢,因为我以前没有做过这方面的项目,而且我问遍了所有认识的朋友,搜遍了网络也没有找到如何解决的方法,之后我翻书籍,接着搜索网络。功夫不负有心人,终于我找到一个聊天室的小例子,但是功能差的太远,于是我把
这个示例一点点的研究,从一点也不懂到后来慢慢看懂,从对aja_技术一无所知到基本熟练运用。接下来我就开始自己开发,到最后终于把它开发了出来,虽然不是很完美,功能不是很强大,但是它是我辛苦的劳动结晶,我相信以后会把它开发的'更强大,更完美。
二、明确岗位职能,认识个人技术能力不足
经过三个多月的工作,虽然完成了一些项目的开发,我的技能也提高了很多,但是感觉我的技术还有待提高,所以我会在以后的工作中更加努力,努力提高自己的技术和各种不足,努力使自己成为一名称职的职员。
三、提出自己努力计划
1、学无止镜,时代的发展瞬息万变,各种学科知识日新月异。
我将坚持不懈地努力学习各种技术知识,并用于指导实践。
2、业精于勤而荒于嬉,在以后的工作中不断学习知识,通过多看、多学、多练来不断的提高自己的各项技能。
3、不断锻炼自己的胆识和毅力,提高自己解决实际问题的能力,并在工作过程中慢慢克服急躁情绪,积极、热情、细致地的对待每一项工作。
4、努力提高自己的日常交际能力。
时光流转间,我已到公司工作三个多月。非常感谢公司领导对我的信任,给予我体现自我、提高自我的机会。这三个多月的试用期工作经历,使我的工作能力得到了由校园步入社会后幅度的提高。
程序员试用期工作总结3进公司以来,本人尊敬领导,与同事关系融洽。为尽快进入工作角色,本人自觉认真学习本公司、本部门、本岗位的各项制度、规则,严格按照公司里制定的工作制度开展工作。在这近三个月的工作和学习中,接触了不少人和事,在为自己的成长欢欣鼓舞的同时,我也明白自己尚有许多缺点需要改正。工作以来,在领导的教导和培养下,在同事们的关心和帮助下,自己的思想、工作等各方面都取得了一定的成绩,个人综合素质也得到了一定的提高,现将这三个月来的个人工作情况汇报如下:
一、工作情况
怀着对生活的无限憧憬,我进入了__公司。
在试用期的工作中,一方面我严格遵守公司的各项规章制度,不迟到、不早退、严于律己,自觉的遵守各项工作制度;另一方面,吃苦耐劳、积极主动、努力工作;在完成领导交办工作的同时,积极主动的协助其他同事开展工作,并在工作过程中虚心学习以提高自身各方面的能力;工作细节中,我看到公司正逐步做大做强,以目前的趋势,我可以预见公司将有一个辉煌的明天。作为新员工,目前我所能做的就是努力工作,让自己在平凡的岗位上挥洒自己的汗水,焕发自己的热情;使自己在基层得到更多的锻炼。
二、学习情况
现在是我努力学习的阶段。"三人行,必有我师",公司中的每一位同事都是我的老师,他们的丰富经验和工作行为对于我来说就是一笔宝贵的财富。记得我刚到公司的时候,对生产线上的一切都感到陌生而新奇。因为我之前没有过类似的工作经验,所以知道的也有限,但是在领导和同事的的热心帮助下,我受益颇多。带着饱满的工作热情,我逐渐熟悉了设备的操作。尽管我只是入门,而且相对而言年龄要大一点,但是我和其他年轻人一样对工作充满着热情。为尽快提高自己在本职方面的知识和能力,充分发挥自己的主观能动性,我利用业余时间多和同事交流学习,在短短三个月中理论结合实践让我对IT技术有了真正的认识,这为今后的工作打下了基础。
作为新员工,我经常思考的问题就是如何避免失误,特别是在试用期间,严谨的工作态度决定了自身的工作效率,为此我经常向同事请教。
在公司呆了三个月,我接触了很多同事,就在接触他们的同时,我才知道在集体和谐相处是快乐工作的保证。无论是社会还是单位"为人处事"都是一门高深的学问。对于这门高深的学问,我目前首要做的是诚实做人、努力工作!
三、思想情况
作为一名新员工,我今后的职业生涯还很长,学习的机会还很多。为此我将尽我所能地对我的工作进行开拓,做出成绩。为早日实现目标,我要求自己:努力工作,保持优点,改正缺点,充分体现自己的人生价值,为企业美好的明天尽一份力。我更希望通过公司全体员工的努力可以把公司推向一个又一个的颠峰。
程序员试用期工作总结420__年2月2日,我有幸成为北京超图一员,应聘为公司的java软件工程师。入任职以来,在部门领导的带领下,自己感觉无论学习、技术、生活等方面都有很大的提升。20__年里我主要完成的工作有三方面:
1、荆门石油石化巡检系统的调研和开发。
该项目是我工作以来第一次涉及到调研,对我来说算是一个不小的挑战。在调研过程中,让我学会了如何通过和客户的沟通来了解客户的需求。由于自己的工作经验不足,在调研工作中体现出一些问题。不能很直接的在和客户沟通中非常准确的了解客户的更多需求,有很多需要和客户交流沟通多次才能明白客户的最终需求,也没有把自己作为最终用户并站在用户的角度上来考虑问题,这些都是我在以后的工作中需要提高和改进的地方。在巡检系统的开发工作中,让我进一步巩固和加强了自己的开发能力。
2、电信12530增值业务的开发与维护。
从5月以来我就开始接手公司的主要业务之一,12530电信增值业务。由于前面负责这个项目的同事突然离职,导致这个项目的交接工再做得不够好,对我顺利接手这个项目造成很大的困难。而刚一接手这个项目,马上就需要新上一个投票活动,并要对一些主要代码进行修改,让我倍感压力,几乎都快放弃。最后在金总的指导和鼓励下,顺利的完成这次活动。在完成这次投票活动后,为了避免下一个接手这个项目同事与我遇到同样困难,我第一时间将这个项目的相关技术文档补充完全,保证别人能够顺利的进行该项目工作。通过这个项目,让我加强了自己在高强高压下工作的能力,也让我找到更多自信。
3、襄樊、鄂州家政网络服务中心的开发与实施。
在这两个项目中,除了承担开发工作以外,也逐渐涉及到项目管理的职责,让我在个人能力上有所提高。为了这两个项目能够顺利完成,除了完成自己的工作外,还主动关心其他同事的工作完成情况。让我在项目管理和项目进度的把控能力有很大的提高。将襄樊、鄂州家政网络服务中心顺利实施,为我公司拿下湖北省其他市的家政网络服务中心奠定基础。在工作之外,我也注重个人能力的提高。工作之余,主动学习一些新技术,与同事沟通配合,搭建一个ssh的开发框架。也学习springsecurity知识,这些新知识的积累,对我以后的工作有很大帮助。
程序员试用期工作总结5伴随着充实紧凑的工作生活,两个月的时间已经过去了。这一段时间里有工作上的收获,知识的丰富,经验的增长,同时也暴露出很多问题和不足。总结经验,吸取教训,本文将主要从几个方面来对工作进行总结:
工作的主要内容;其中的失败和教训以及成功和经验;展望下一阶段的工作,确定自己的目标。以此作为惩前毖后的记录。
1、工作的主要内容
在这两个月的工作中,我的总体任务是协助同事__做好___矿业权管理系统的后期测试,编码,修改,文档编写的工作,分解开来之后,我主要做了三件事:
(1)编写矿业权系统的各类文档;
(2)矿业权系统的编码及bug勘误工作;
(3)矿业权系统的测试工作。
下面依照时间来对我的工作进行介绍:
初踏入职场,进入专业的软件制造公司,对我,一个没有接触过标准软件制作过程的新人来说,起步就是一个很大的难题。若直接做开发,则业务不熟练,代码不规范,弊大于利;若仅做学习,则不能跟上项目的步伐,不能以最快的速度融入工作中去。
在我还在忐忑自己到底要做什么工作的时候,任务已经下达了,首先进行矿业权系统的测试工作。这样的好处在于能够在测试的过程中,了解项目的整体布局,了解项目中的业务逻辑,了解项目中尚未完成的工作并以此作为下个阶段的工作目标。至此,入职工作顺利起步。
在对矿业权系统进行测试之后,暴露了系统的诸多问题,测试过程中发现矿权系统没有进行输入限定,为了解决这个问题需要对整个系统的数据进行整理,我的下一个任务就是编写矿业权系统的数据需求文档。在编写该文档的过程中,对矿权系统进行了更深入的了解,为之后的bug勘误工作奠定了一定的基础。
完成了矿业权系统的数据需求文档的编写之后,新的任务是对整个矿权的输入数据进行输入限定,在任务开始之处是极为困难的,幸而得到了同事们的帮助才得以顺利完成任务。任务虽然完成,但是对输入限定实现方法的一知半解以及任务完成过程中的不仔细,为之后发生的问题也埋下了苦果。
在对矿业权系统添加输入限定完成之后,进入了解决程序小问题的阶段,对矿权系统进行细微的缝补工作。这段时间是学习多于工作的,不同的问题督促我要每天和百度亲密接触数百次,又要劳烦诸位在百忙中的同事抽出时间来给我帮忙。虽然辛苦一点,但收获却是满满。
完成了系统的修补之后,我们的程序送到了四惠进行第一轮测试,在测试的一周里,我主要是补充网络编程的基础知识。
第一轮测试结果出来之后,我们项目组开始了紧张的第一轮矿业权系统bug勘误工作。拿到bug列表之后,发现有一小半错误皆是因我而起,输入限定问题很多,我也主动承担了输入限定部分的bug勘误工作。
第一轮bug勘误工作完成后,进行了第一轮了回归测试,测试结果已然不尽人意,仍然存在大量的问题需要修改,而且很多问题还是因我而起,输入限定仍然存在大量问题,再一次进行修改之后,我们的程序送到了十五所进行所检。
在进行所检之余,我又接到了新的任务,完成矿权系统的概要设计以及详细设计文档的编写。这两份文档已于9月2号编写完毕。
现阶段我的任务是根据所检的bug列表,对矿权系统进行回归测试。
2、工作中失败的教训以及成功的经验
对于失败的教训要吸取,成功的经验要进行总结。我对成功的定义是:在保证质量的前提下完成既定的计划或目标就是成功。其他的所有结果都是失败。
成功的经验:
(1)、敢于接受任务并想尽一切办法完成
入职两个月的收获就是敢于接受任务并想尽办法完成,每一个任务对于初入职场的我都是一个挑战,如何保质保量完成任务是最基本的要求。这两月的成功在于没有一次任务是拖沓的,每次都尽努力完成了任务。
(2)、勇于承担错误,正视自身的问题
在这两个月的工作中可谓是错误不断,从文档的错别字这种小问题到矿权系统bug修改不正确导致崩溃这种大错误,暴露出来了很多的问题,我秉承着有错即改,下不为例的思想,正视自己的错误并积极改正,因此这也算是一个成功。
失败的教训:
(1)重视每一个细节,不要忽视小问题
在最初进行矿业权系统数据需求文档的编写的过程中,对某些页面的数据在数据库中没有存储的情况没有加以重视,在后期进行数据限定的时候,还要重新修改数据需求文档,造成了不必要的时间浪费。从这个事情上得到教训就是不要放过任何一个小问题,这个小问题可能导致之后的大问题。
(2)进行重复工作也不能大意
在对矿权系统进行输入限定的方法熟悉之后,都是重复性的工作,给每个页面,每个字段进行输入控制语句的添加,在进行了数个页面之后,出现了有的页面没有添加完整,或者提示语句不正确的情况,在后续的bug勘误中出现了大量此类问题,浪费了大量的时间和精力修改。从这个事情上得到的教训就是工作不能大意,重复性的工作更要完成好。一般重复性的工作第一次做不好,后续检查修改是非常浪费时间的。
(3)考虑问题要严谨
在对矿权系统bug勘误的过程中,对输入限定条件的判断出了问题,我想当然的按照我的主观思路对数据进行了限定,而在回归测试的时候出了问题,这些都是考虑不严谨的后果。这个事情的教训就是考虑不严谨直接导致问题推倒重来,影响了工作效率,而且很容易埋下隐患。
(4)、注重用户体验
在矿权系统bug勘误的过程中,修改最多的在于坐标系统的提示语句,因为坐标系统不仅要求数据必须填入,而且每一个数据都有严格的格式限定,因此每一个错误提示的弹出都要本着如何让用户知道哪里错了为原则进行设置。在最初的限定里面,语句粗糙,弹出语句不明确,造成了用户使用的不方便,还得重新进行改造。这个问题的教训是一定要从用户的角度出发考虑问题,注重用户体验从简单的提示语句做起。
3、展望下一阶段的工作
下一阶段短期内我们的工作主要针对矿权系统的使用的数据库变更来对我们的系统进行修改。我的工作任务主要是学习oracle数据库和sql数据库的使用上的区别,做好从sql数据库向oracel数据库的迁移工作。
关键词:程序设计实践;素质培养;学习能力培养;课程改革
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 22-0025-03
1传统程序设计实践课程的不足
程序员素质的内涵很丰富,没有统一的标准,公认包括如下几个方面 [1-5]:① 持续学习的能力;② 团队协作能力;③ 需求理解能力;④ 文档习惯;⑤ 良好的代码编写风格;⑥ 测试习惯。
在目前的计算机课程体系中,程序设计实践课程是培养程序员素质的一门关键课程,一般安排在程序语言课程之后,通过指导学生动手完成一个设计课题来达到三个目标。一是让学生加深对编程语言的理解,提高综合运用能力、自学能力与创新能力;二是让学生体验完整的开发过程,获得具体的开发经验;三是训练逻辑思维能力,培养严谨的科学作风。在具体的实践中该课程存在如下问题[4]:
(1) 在学生的组织上,经常是多个学生独立完成同一个课题。学生没有被组织起来,相互间的协作、沟通不够。
(2) 在课程的选题上,过于偏重于语法,课题内容陈旧,趣味性不强,不能引起学生的兴趣与积极性。
(3) 在开发的流程上,教师无法对学生的开发过程实施准确有效的监督与控制,编程习惯、编程风格等方面的引导、训练不够。
(4) 在课题的考核上,评分以程序最终实现的功能为主,考核指标中缺乏对文档、代码格式等方面的考虑,并且无法完全杜绝抄袭的发生。
这些问题极大地阻碍了学生程序员素质的培养。针对这些问题,我们结合教学的实际,以提升学生的程序员素质为目标,以培养学生的动手能力、学习能力和创新能力为核心,在组织、选题、流程、考核等方面对程序设计实践课程进行了改革,取得了较好的成果。
2程序设计实践课程中程序员素质的培养
2.1团队协作能力的培养
团队协作能力是程序员应具备的基本素质。我们在课程中把学生分为若干个小组,每组3~5人。分组时适当参考学生的实际能力,避免能力较弱的学生分在同一组。
每组一个组长,由老师指定或者学生推举产生。组长应当具有较好的动手能力和奉献精神,负责整个小组的成员组织以及程序开发的进度协调。
小组中的每个成员都要完成一定的编码量,可以独立或者与其他人合作来完成整个课题。碰到问题时一起交流、讨论,各尽所能,取长补短。好的思路可以被整个团队共享。
实践证明,这种组织方式一方面培养了学生的责任感,提高了团队协作能力,另一方面也有利于课题的进展,减少了被难题卡住的可能性。对教师来说,这种方式部分减轻了对学生个体的答疑工作量,使教师能把更多的精力放在程序设计的整体指导上。
2.2学习能力的培养
由于采取了小组模式,多人合作来共同完成一个任务,因此可以选择相对较大的课题。从培养学习能力的角度出发,选题时我们考虑了如下几个方面:
(1) 由于程序设计教学是编程语言教学的进一步深入,因此对编程语言中的一些语法难点进行了有意识的强化,包括动态内存管理、文本菜单、文件操作、链表操作、高级指针、排序查找算法等,以夯实学生的理论基础。
(2) 选题时注意实用性与趣味性,并尽量与学生的专业相结合,以提高学生参与的积极性与主动性。
(3) 选题时注意新颖性,一方面提高了学生的兴趣,另一方面也能避免从网上搜到现成的代码。
(4) 课题具有一定的伸缩性,每个课题都设置了一些选做的功能,以满足不同层次的学生。鼓励水平高的学生完成较多的功能以及对功能的合理扩展。
(5) 为了培养学生的自学能力,出题时布置了一些超出课本范围的内容,如一些函数(数学函数、延时函数、发音函数、随机函数等)的使用以及界面的设计等。
(6) 鼓励学生自己提出符合上述要求的新课题,以进一步提高学生参与的积极性。
表1是我校近年来老师与学生所设计的部分课题,涉及体育、专业、娱乐等多个方面。实践证明,课题的多样性扩大了知识点的覆盖面,提升了学生的参与热情,保证了程序设计实践课程的质量,促进了学生学习能力的培养。
表1 我校近年老师与学生所设计的部分课题
2.3分析设计、编程风格、文档习惯等多种能力的综合培养
学生的动手能力是通过开发实践锻炼出来的。对开发过程实施积极有效的控制干预,是实现培养目标的关键。我们在课题进程中实施组长监督与教师引导的二级管理,注意培养学生的多种能力,并在不同阶段各有侧重。具体如表2所示。传统的程序设计实践课程对编码、调试能力强调较多,这里不再详述,下面讨论其他几种能力的培养。
表2 课题实施各阶段能力培养的侧重点
(1) 分析能力与设计能力
对于刚学完编程语言的学生,这两个方面不宜提过高的要求。我们在这两个阶段与学生进行较多的交互与指导,使学生能明确课题的功能需求与性能需求,学会正确表达程序设计的思路。通过对这两种能力的培养,可以让学生了解自己的任务在整个课题中的地位,并建立初步的软件工程观念。
(2) 编程风格
在现代软件开发中,良好的编程风格不仅有助于代码的移植和纠错,也有助于不同技术人员之间的协作。我们参考了一些知名软件公司的开发规范,从变量命名、注释、空行、缩进格式等方面对学生进行简单的引导与训练,帮助学生培养良好的编程风格,以适应将来社会的需求。
(3) 测试习惯
测试是软件工程质量保证的重要环节。在课题的实施中,我们要求学生掌握一定的测试方法,并养成及时测试的习惯,每编完一个函数都要进行测试。这样做既能提高学生的查错能力,也能帮助学生树立的软件产品质量保障的观念。
(4) 文档习惯
文档是软件产品的重要组成部分。一些知名的软件公司要求员工必须将30%以上的工作时间用于编写技术文档。我们对此也予以充分重视,要求学生在各个阶段都进行文档的记录,包括分析方案、设计方案、每天的开发进度、总结报告等。对于学生来说,这样做可以培养良好的习惯。对于教师来说,可以通过这些文档掌握课题进度,及时进行干预,并且这些文档也是最后评分的重要依据之一。
(5) 自学能力
自学能力是创新能力的基础。我们在课题实施中,强调发挥学生的主观能动性。布置课题时,提供了一些网站、工具书和论坛供学生参考。学生遇到问题时,教师以引导和提示为主,一般不直接提供答案。从而使得整个过程成为学生主动求知、探索的过程。
2.4全方面的考核
为了最大程度的杜绝抄袭现象,在课题结束时,我们要求每个学生进行答辩,介绍自己的作品和工作。成绩的评定在综合多个方面之后给出,主要的指标体系包括如下几个方面:
(1) 程序方面,从功能的实现与代码的风格两个角度来进行评价。
(2) 文档方面,从文档的质量、数量以及报告的内容来综合评价。
(3) 团队协作方面,主要评价个人在团队的作用,包括个人工作在课题中的比重,与他人的合作情况等。
(4) 答辩表现,包括PPT的制作和问题的回答情况等。
通过以上这些方面,能够对学生进行比较全面、公正的评价。
3比较
程序设计实践课程改革前后的比较如表3所示。从表中可以看出,新的实践课程能够保证课程质量,全面提高学生各方面的能力。学生的反响也比较好,不少学生在总结报告中表示“得到了很大的锻炼”、“受益匪浅”、“找到了编程的乐趣”。
表3 程序设计实践课程改革前后的比较
4结束语
合格的软件人员是我国信息化进程中的中坚力量。为了培养符合社会需求的软件人才,我们进行了一定的探索。我们的程序设计实践课程注意发挥学生的主动性,注重对学生程序员素质的培养,因而取得了比较显著的成效。这也是一个值得深入探讨的课题,我们将继续进行研究,以期能进一步提高效果。
参考文献
[1] 教育部计算机科学与技术专业教学指导分委员会. 中国计算机本科专业发展战略研究报告[R]. 中国大学教学, 2005, 5:7-10.
[2] Gerald Weinberg. The Psychology of Computer Programming: Silver Anniversary Edition [M]. New York: DORSET HOUSE Publishing Company, 2003
[3] Andrew Hunt, David Thomas. The Pragmatic Programmer: From Journeyman to Master [M]. New York: Addison Wesley Publishing Company, 1999
[4] 李晓明, 陈平, 张铭, 朱敏悦. 关于计算机人才需求的调研报告[J]. 计算机教育,2004,(8):11-18.
[5] 梁肇新. 编程高手箴言[M]. 北京:电子工业出版社, 2003.
作者简介
郭剑(1978-),男,讲师,南京邮电大学计算机软件基础教学中心,主要研究方向为演化计算、计算机在通信中的应用。
朱立华(1970-),女,副教授,南京邮电大学计算机软件基础教学中心主任,主要研究方向为计算机软件。
【关键词】教学模式;行动导向;五位一体
【中图分类号】G640
【文献标识码】A
【文章编号】1672—5158(2012)10-0034-01
一、课程定位
《SQL Server 2005数据库设计》是软件技术专业的一门核心课程。是软件技术专业培养方向中,JAVA程序员、NET程序员、数据库管理员、信息系统管理员、软件测试员等所必须掌握的数据库知识学习,重在培养学生对SQL Server2005数据库的操纵与设计的能力。开设于新生入学第一学期,后续课程有C#程序设计、ASENET程序设计、JAVA程序设计、J2EE程序设计、ORACLE数据库设计等。它对后续两线课程都起着重要的支撑作用。是一门处于重要地位的职业基础课程。
二、课程设计的整体思路
课程以企业用人为依据、以提升职业能力为目标,针对岗位群所需解决的工作任务为导向进行基于工作过程的课程开发。按照由简单到复杂分划分为7个学习情境,数据库基础、安装与配置、基本操作入门、数据库编程、数据库高级操作、前台语言访问后台数据库、数据库综合设计。每个学习情境又根据工作任务的独立和先后连贯性分解为子情境,每个学习情境或子情境下对应一个或多作实训任务。即全程共有18实训任务,3个综合实训任务。而且随着课程的深入将会出现新的项目载体如(图书馆管理系统),以培养学生对非教学过程中的数据库进行操作和设计的能力,直至数据库综合设计阶段,将会出现更多个实际项目载体,通过组建项目开发团队,要求学生通过分工配合,完成对项目的需求分析,系统功能的确定,并能根据功能和业务规则对所选项目的数据库进行分析与设计。培养学生的职业能力、职业意识,从而为实现与就业岗位“零距离”奠定良好的基础。
三、课程教学的组织与实施
1、教学模式的探索
在教学中尽可能本着突出职业导向,以学生为主体,突出能力训练为原则,在教学、教改中慢慢摸索、不断实验,总结出了该门课程的教学组织模式:基于行动导向的教、学、做、训、评合一的一体化教学模式。实现了课上有考核,课下有任务训练的新的高职教育评价要求。在实际运作中教学环节分为五大步骤:即预习与探究——做与导——查与训——考与评——巩固与拓展。
单元课程中,由于在网络机房授课,一人一机,借助凌波多媒体教学软件,不但可以充分实现在做中学,在学中教,增加了训(查与训)、评(考与评)环节,即实现了在做中训、在训中考,在考中评。不但实现了“教学做合一”,而且能达“教、学、做、训、评五位一体”。
2、教学方法和手段的运用
示范法、分组法、鼓励法、讨论法、对比法,典型案例法、设问法将贯穿整个课程单元教学之中。但是对于不同的学习情境的学习,为能够突出重点,突破难点,培养学生各方面能力可恰当选用行动导向的教学方法,除了学习情境1-6,采用了任务驱动、项目引领教学法外,学习情境7综合数据库设计主要采用情境模拟法。
在软件行业,一个项目的开发,是由一个软件开发团队共同配合完成的。在该门课最后一个情境一一数据库综合设计中模拟实际职业工作进行教学,在学生中构建多个项目开发团队,进行角色分配。如项目经理,项目助理,程序员(即对应组长、副组长,成员)组织教学和实施,在项目总监(教师)的调控、监督指导下,各项目组成员分工配合,共完成一个管理信息系统的需求分析任务,并进行数据库分析与设计工作。在这个过程中,不但让学生对课程的教学内容有一个全面的复习、巩固和提高,同时会培养学生进行数据库的分析与设计能力,初步体会软件开发工作中的最重要的一部分(需求分析所做的工作),也能让学生在学校的环境氛围中对自己未来的职业岗位有一个比较具体的、综合性的理解,有利于学生全面职业素质的提高。为了保障这一环节顺利实施,效果有保证,教改组制定了多项规章,并形成文件,如《项目小组划分原则》文件、《各岗位职责》文件、《项目验收与答辩要求》文件和一系列的过程监控文件和激励办法等,使学生在团结协作中收获了知识、积累了经验、提高了动手能力、增强了就业力。但学生模拟实际工作中也难免会暴露一些个人弱点,如胆小,协调能力较差、团队意识较弱等。但最终在老师和同学的帮助下能够意识到不足,并加以改正,最后同样收获了成功和喜悦。
四、实践教学效果
课程组的授课教师,经验丰富、技能娴熟、加之以德高身正,教学方法得当,深受学生爱戴和好评。在院、系举行的《sQLSever2005数据库设计》公开教学中曾多次得到学院督导处、教务处领导及系部老师的一致肯定,曾获“一创新、二特色、三突出”好课的评价;学生项目小组在此门课的学习后结合一门开发语言,开发设计了多项小型的应用管理系统软件,和网站。本课程的精品课程申报网站和网络课堂,就是项目小组同学第三学期的一项作品。课题组老师曾带领学生多次参加各类省级职业技能大赛荣获一、二等奖。
五、课程特色
1、教学模式有特色
《SQL Server 2005数据库设计》采用了基于行动导向的教学模式,且实现了教、学、做、训、评五位合一。形成师生之间的良性互动,增强了教学效果,学生活学活用的能力充分展示出来,培养了学生的创新能力。
2、教学方法有特色
课堂教学使用的教学方法中,任务驱动法、情境模拟法、项目引领法都是属于行动导向教学法。其中情境模拟法,轻松实现了企业工作环境与课堂教学环境的高度融合,实现与就业零对接。如今黑龙江农垦职业学院软件技术专业其他课程也正借鉴此教改成果,在教学中逐步推广和使用。
3、教学手段有特色
课程的教学课件均使用思维导图软件(Mind Manager)制作,结构清晰,动感性强。使学生的思维紧密跟随着教师,同又有思维的发散,开发锻炼了学生的右脑机能。在线考试系统和网络课堂的开发实现了教学同步,提高了效率,也为学生业余自学提供了保障。
1 需求分析,目标确定
本培训课程的培训目标为:培训后,项目经理能在合同规定时间(合理)内,交付完全达到合同条款并且客户签署验收合同的项目,能够上线使用。
培训对象:网站开发门户类项目项目经理经理。
关于培训的必要性和实用性分析:
项目经理的培训如果使用课外读书方式在快节奏的工作中很难保证。据我在此公司两个月的观察中发现,几乎所有的项目经理都会存在加班现象,甚至加班时间可以到周末。一旦所属项目在本周之内上线,那么项目经理和后端程序员就必须全程监控项目的上线使用情况,一旦发现问题就要及时修改,这就不可避免的造成了加班。一位项目经理很可能负责3-5个项目的跟进,当然,其中或许只有一个项目在制作中,其他项目则可能停留在试用期阶段,一旦项目在试用期出现使用问题,项目经理就要协调更改。如上所述,项目经理的个人休息时间将会非常有限,很难用强制措施对其进行读书的要求,提升其个人素质。而我将这次培训设置为为期一周的课程,课程每天进行三小时,总学时为15个小时,项目经理可以在等待程序员和设计人员的工作的空闲时间进行课程培训。
项目经理是作为承上启下的作用的中坚力量,项目经理在项目的开发过程中,是全部工程的总负责人,具体组织和领导项目的动态管理以及各个要素的优化配置和组合,确保在低于公司预算情况下圆满完成本项目,达到验收合格水平。
2 学习者和环境分析
[信息类型\&数据来源\&学习者特征\&1.入门技能\&调查和访谈:
人事经理,某项目经理(对人事部门的询问和面试时的从旁观摩)\&应用环境:学习者已经具备了撰写项目进度计划表和详细了解开发时长的能力
学习环境:学习者有极强的小组协作和沟通能力。\&2.对该领域已有的知识\&访谈:
项目经理\&应用环境:学习者面对实际项目时,缺少案例经验,缺少应急策略,缺少应对方案
学习环境:学习者具备应急时沉着的心理素质,具备有余地的说话艺术\&3.对内容的态度和教学传递系统的态度\&调查和访谈:
项目经理\&学习者对提升自己的问题解决能力和增长典型案例经验的课程内容有较大兴趣,对于小组和课堂的模拟教学已经习惯\&4.学习动机(ARCS)\&调查和访谈:
项目经理\&学习者对提升自己的问题解决能力和增长典型案例经验的课程内容需求很强烈,\&5.学业能力水平\&调查和访谈:
人事职员,项目经理\&受教育水平:学习者大部分为高校或高职的毕业生,有基本的知识储备和学习素质
能力水平:项目经理的交际能力经过招聘的面试可以保证一致性\&6.学习偏好\&调查和访谈:
项目经理\&学习者喜欢进行小组讨论和角色扮演,进行团队间的沟通交流,因为成为一名优秀的项目经理是他们的目标,也是能够被录用的前提。\&7.对培训机构的态度\&调查和访谈:
项目经理\&学习者对于外聘的培训教师有质疑,对于能否获得实用技能持怀疑态度。
对于这种培训的结果并不是都十分看好,有人认为会浪费时间和精力\&8.群体特征
a.异质程度
b.规模
c.整体印象\&调查和访谈:
项目经理\&异质程度:学习者的学历大致相同,学校水平和学习力有一定差异,来自不同的省市,文化差异会较大
规模:培训规模保持在10人左右,因为学习者仍然肩负一定工作任务,仍然有2/3的员工是在岗状态,否则会引起工作人员不足的情况\&]
3 编写绩效目标
3.1 利害关系人分析
本部分不赘述全部绩效目标的编写。
a) 能够画出利害关系者与企业影响关系表。
3.2 项目成本管理
A. 项目成本管理
学生能够画出如下的按类别的成本管理,所属子项可以给出,学生能够从给出的子项列表中选择出来分别放入类别中。
B. 项目生命周期
a) 学生能够指出项目生命周期分为哪三个阶段,并能说出每个阶段成本的具体内容
b) 指出在生命周期中成本控制的核心阶段是哪里?每个阶段可以控制的部分有哪些?
c) 能够画出如下表所示的阶段成本表格
[成本\&项目决策成本\&人员工资成本\&现场支持服务成本\&项目投标费用\&差旅成本\&通讯服务成本\&\&软硬件成本\&差旅成本\&]
d) 根据详细的阶段成本明细表会用挣值法计算出各个阶段的计划成本,能够在项目的进行,因为项目某一方的需求变化引起成本变动时不断地修改计算计划成本
e) 到最后项目结项是,能够计算出挣值=计划值-实际值,通过挣值法对成本进行管理
4 开发教学策略
对于利害关系人分析的开发策略,步骤如下:
4.1 计划教学前、评测和增强活动
4.2计划内容呈现和学生参与
2. 对于支持性利害关系人应该采取何种策略\&模拟练习\&由学生扮演不同的项目利害关系人进行相应的模拟演示。例如,某个项目的发起方频繁地提出了修改意见,对项目的正常进行造成了很大的阻力,这时,项目经理的扮演者要针对这一个利害关系人进行策略分析并给予相应的协商和对策。在进行完相应的对策提出后,其他学生对扮演者的对策进行评价,并提出自己的意见。
在进行完成多个案例的扮演后,学生自行总结案例中的收获。
4.3 为各节课安排活动
基于教学策略的课时分配
1)内容引入,案例展示,先为学生播放一段视频,让学习者能够在案例视频中意识到,利害关系人的分析和对利害关系人使用不同的策略可以有效地解决问题,保证项目的成功完成。
2)前测:对利害关系人部分目标进行前测;对利害关系人部分进行讲授;后测:做相应的测试试卷。
3)用系统的案例进行利害关系人分析综合运用。
4)进行案例的角色扮演和讨论,得出给定案例的分析结果和决策方法,并轮流给出意见。
5)教师做出案例分析总结,汇报。
5 总结
如果没有程序驱动,计算机不过是一堆金属和塑料而已。程序可以让计算机忠实地实现人的意图,严谨的逻辑思维是程序设计的关键,而学生最容易接受的是“流程图”,这正是描述逻辑思维的最好工具。大厦有施工流程图,装电视机有装配流程图,而企业的生产线则是运动的流程图。流程图就是秩序,就是逻辑。画流程图必须充分考虑各种情况,力求无懈可击。作为训练,教师应要求学生上街购物前画购物流程图,班委策划活动应画活动流程图,进而写程序也须先画程序流程图。有了程序流程图,就可按图索骥,迅速将思维转化为程序。
2 学习规则,利用规则,在限制中求发展
对程序设计初学者来说,最头痛的事是太多的语法规则限制,动辄语法出错,进而望而生畏,失去信心。这主要是教师的心理教育没有跟上、学生思想不通造成的。其实,生活本非随心所欲,它是充满各种限制的。如国有国法、校有校规,玩游戏要遵守游戏规则,过街口不也受红绿灯限制吗?歌德诗云“在限制中显示出能手,只有规律能给我们自由”。计算机语言的各种规则是科学家们智慧的结晶,已经深入人心,由这些语言编写出来的程序给社会创造了极高的效益和效率。据作者所知,特别是计算机语言,规则和规律是紧密联系在一起的。只要细加分析,这些规律是很好掌握的。无论做什么事,均似刨丁解牛,掌握规律之时,就是游刃有余之日。
3 标新立异的算法,追求事半功倍
算法是程序的灵魂。衡量程序质量的高低,算法是重要指标之一。
思路决定出路,人生是需要思考的。俗话说“磨刀不误打柴工”,先思考后行动,可以规避风险,提升成功率。
4 程序模块化思想,培养学生管理意识与合作意识
打一场战役,要分成若干阶段,在若干战场实施。这种“分解大任务,各个击破”的思想,正是现代模块化程序设计的思想。其实,模块化思想在生活中有着广泛的应用:企业分部门,军队分兵种,学校分专业……,各类计算机语言中的函数、过程等正是为此而设,它实现了将复杂问题简单化。编程时应尽量要求学生把问题分解为功能相对独立的子模块,将它们定义成函数、过程,这样既增加了程序可读性、可改性,又方便了系统编译。
5 从项目入手,举一反三,提炼特殊中蕴含的普遍规律
程序有顺序、选择、循环三大结构,无论程序要解决的问题多么复杂,均可用这三种结构来实现,这就是程序设计的辩证法。一个优秀的程序员不在于它写了多少个程序,正如高考状元并不是做题最多的学生。当然,不做题,也绝对当不了状元。对于程序设计这门课程,教师应该采用项目教学法,以项目作为实训的基本单位。每个项目做完后,还应指导学生回头分析,认真总结规律,然后再利用规律去完成一个类似的项目。只有掌握了事物的规律,才能反过去更好地驾驭事物,进而达到人生的上乘境界。
6 把握变量类型、作用域及生存期,学会节约资源,量体裁衣
虽然现代计算机硬件配置越来越好,但其运行的软件也越来越大,特别是当运行多个任务时,往往会因争夺有限的系统资源而导致软件运行速度降低,甚至死机。每一种计算机语言均提供丰富的数据类型,还可以控制诸变量的作用域和生存期,使程序紧贴硬件运行。
7 潇洒的程序风格,宛如一首人生的诗
1.1软件研发人员的管理
计算机软件行业不同于其他行业的就是它对人才、技术的高要求。在整个研发、生产的过程中,人是贯穿始终的重要部分,因此人员的管理非常重要。软件生命周期中软件研发人员从最初设计资料、设计语言、设计模式的选择,到具体的程序编写一直到后期的维护工作都需要相关工作人员的积极配合。那么各项工作的人员除了要相互协作之外,关键是要有过硬的专业素质,能把份内的事情完成好。管理人员也需要把握员工的基本情况,根据他们的优势进行合适的安排,并为软件研发人员工作创设良好、轻松的工作氛围。
1.2组织机构的管理
组织机构强调的是组织的系统协调性,不是松散的人员组织。创建好的组织机构需要发挥各项人员的优势,并将优势整合,促进整体的发展。组织机构主要有以下几种:
1.2.1民主化组织。这个组织主要强调软件研发人员的民主性的发挥,岗位轮流交换,虽然有利于发挥个人的能动性和创新能力,但是针对专业性过强,又及其强调过程化管理的软件工程来说,这种模式不太推崇。
1.2.2专家化组织。专家化模式的限定强调个人专业技能,各有所专,各有所长,这种模式虽然能把个人能力最大化,但是却不利于与人员之间的相互协作。
1.2.3主程序员化组织。软件工程开发
结构化发展在组织机构的优化管理上,最著名的案例就是IBM公司提出的主程序员组织。主程序员负责统筹发展,技术人员负责数据分析和具体程序开发,后期维护工作也有专人负责。
1.2.4用户管理
软件就是为用户而研发的,没有用户需求就没有软件业的新发展。用户管理需要时刻关注用户的需求,对特定软件用户进行调研,根据调研结果进行相应的改进,并能够依据用户的反馈进行改善发展,提高软件的研发效率与质量。
二、优化计算机软件工程管理的方法
2.1建立健全计算机软件工程管理体系
在计算机专业发展的如火如荼的今天,软件工程尚属新型学科,软件工程过程化管理也没有形成规范的系统,因此要建立健全计算机软件工程管理。高质量计算机软件的研发与生产一般周期性较长,自动化程度不高,所以说在整个开发过程中,要加强各项人员的管理。在软件行业,要人尽其才、人尽其用,充分调动人员的积极性,加大自主创新能力,达到整体上的协调发展。还要对加强管理人员,尤其是项目负责人进行专业知识和管理知识的培训,理论和实践有效结合。最后要从制度上予以规范,让具体项目执行有度可依,完善激励措施,奖罚分明,奖罚有度,使得管理工作得以顺利高效进行。
2.2注重团队化建设,加强团队协作性
计算机软件工程建设是一项复杂的工作,包括了有设计模式的选定、设计标准的设置、程序设计语言的选择和软件开发工具的选用等等。各项工作并不是单一的,而是相互联系的,因此要特别强调整体的协作性。团队建设不是单个人的直接组织,首先要明确分工,技术人员要有过硬的专业素质,能把份内的事情完成好,各项工作能够有条不紊的进行;其次,还要进行团队协作教育,把沟通协作理念渗透到每个人心中。最后,在团队意识建设工程中,还要充分调动个人的主观能动性,为团队更好发展贡献自己的力量。
2.3加强风险、进度管理和预警机制
在计算机软件项目运行过程中除了正常因素之外,还要关注风险意识。尤其是项目管理人员要加强自身的风险意识,对项目的实施有宏观的把握。风险意识的加强除了在具体项目执行过程中把握,还要专门学习风险理论,能学以致用,正确认识风险和规避风险。除了总的宏观上的把握,还需要定期做好计算机软件工程项目的风险评定,风险意识要贯穿于项目始终,不能放松警惕,将风险发生的机率抑制在萌芽状态中;最后,要专门制定具体项目的进度和风险管理预警机制,结合具体实际,进行监督管理。
2.4优化工程管理具体方案
采用精研——软件工程管理平台,尤其是对于软件开发商而言,软件平台可以更好控制项目成本、进度等可调控因素,合理进行人力资源配置,确保不会因为人员的变动导致项目的难以为继,使得软件公司和软件需求方实现共赢。
三、总结
关键词:NIIT 引进 教学目标 教学课程 教学过程 实习
为了适应信息时代的需要,我国的计算机技术教育早已如火如荼地开展起来,为国家输送了大量的信息化人才。但是,我们培养的计算机人才依然难以适应社会的快速变化和飞速发展。究其原因,就是我们的计算机人才培养受到了传统观念的影响和制约,没有从“工业化思维”跃进到“信息化思维”,没有正确理解“信息时代”的真实含义。因此,更新观念,引进世界先进教学模式并结合我国实际情况进行教学改革和创新尤为迫切和重要。
一、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) 类培训教材
[5]中国信息导报,试论创新人才,1999年第7期NO.71999。