前言
“蓝桥杯”软件大赛
1984年,被称作中国现代公司的元年。这一年,在中国科学院计算所的传达室内,一家新技术公司成立了,时年40岁的柳传志担任主管经营的副总经理。在上任前,中科院副院长周光召找柳传志谈话,问他对公司有什么打算,他信誓旦旦地说:“将来我们要成为一家年产值200万元的大公司。”
这家公司,就是后来的联想。2013年,它成为了世界第一大PC厂商,市值超过100亿美元。
柳传志当然想不到联想的扩张会如此地迅速,当然,他也未必能预测到,另外两家成立于1998和1999年的小公司——腾讯和阿里巴巴的市值会超过1000亿美元。
联想、腾讯和阿里巴巴为什么会有今天?没人否认柳传志、马化腾和马云的智慧,但他们成功背后的信息化浪潮也许更为重要。谷歌科学家、腾讯副总裁吴军在《浪潮之巅》一书中说:“近一百多年来,总有一些公司很幸运地、有意识或者无意识地站在技术革命的浪尖之上。一旦处在了那个位置,即使不做任何事,也可以随着波浪顺顺当当地向前漂个十年甚至更长的时间。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。
这些公司里面大大小小的人在外人看来都是时代的幸运儿。因为,虽然对于一个公司来讲,赶上一次浪潮不能保证它长盛不衰;但是,对于一个人来讲,一生赶上这样一次浪潮就足够了。”
所以,我们这一代人是何其幸运,能够赶上人类社会的一次大变革。所谓时势造英雄。而所有学习软件的学生,这种幸运比之普通人,则更多了一个量级。因为你们近水楼台,有先得月的优势。也许你最终不会像上述名字那么显赫,但你已经有了不平庸的机会。
整个IT领域的快速成长,也反映在中国各大高校的专业设置上。根据统计,全国设置计算机相关专业的高校超过1000所,以满足企业源源不断的人才需求。
但一个吊诡的现象出现了,那就是就业难。2013 年,全国有699 万大学毕业生步入就业市场,这一年也被称为“史上最难就业年”。其中,求才若渴的IT领域,也并不例外。
为了了解整个软件行业的人才现状,工业和信息化部人才交流中心进行了一系列的调研工作,并研究如何来解决高校软件相关专业大学毕业生的就业难题。通过与高校和企业座谈,以及实地调研,最终得出了一个结论:中国的软件人才是结构性偏差。
企业,并不缺乏就业机会。我国IT产业在过去的五年里,经历了28%的年均增长速度,是同期国家GDP增长速度的三倍。2012年,我国软件产业共实现收入2.47万亿元,同比增长31.5%,首次迈入2万亿台阶;预计到2015年,这个数字将达到4万亿元。
企业所苦恼的,是高校毕业生不能满足其实际需要。如果企业自己培养,则需要付出高额的时间和金钱成本,加重企业的负担。
高校,并不是不想改变。美国硅谷,与斯坦福大学相得益彰,成为一段佳话。但全世界的成功案例,也寥寥无几。那些名声赫赫的大学,也同样在苦恼于如何去适应快速变化的时代。身处在改革之中的中国高等教育,则更多了一份挑战。它们所苦恼的,是学生技能,如何对接到现实的市场需求。教育体制改革,绝非一日之功,而学生需求,则时不我待。
为了改变软件人才短缺制约产业发展的状况,加快培养、选拔和输送优秀的软件专业技术人才,缓解企业人才招聘压力,工业和信息化部人才交流中心筹办了“蓝桥杯全国软件大赛”。自2009年开始,“蓝桥杯全国软件大赛”每年举办一届,参加比赛的高校规模达到1100多所。全国大部分的“211”、“985”、一类本科和二类本科及其他院校参赛,每届参赛的大学生超过20000人。大赛同时吸引了全国100多家知名软件企业参与其中,直接面向参赛大学生进行招聘,并对获奖者提供“绿卡”,获奖者毕业后可以免试入职这些知名企业。
基于多次研讨确定的软件行业人才选拔和培养标准,工业和信息化部人才交流中心组织了部委、高校、企业的专家组成专家委员会,联合IBM教育学院,经过一年多的精心策划和组织,设计了培训课程,并编写了系列教材作为课程的核心和基础。课程根据所用技术、面向职位不同,又可分为Java方向课程、软件测试方向课程等,本套教材是Java方向课程所使用的教材。
课程设计理念
本套课程采用先进的课程设计理念:逆向课程设计。有别于传统的正向课程设计(先确定培养目标,再设计课程大纲,然后组织编写教材),逆向课程设计强调通过企业调研获得培养目标;对企业调研中获得的在企业工作中需要的技术点进行评估,选择能帮助学生进入IT行业从事相关岗位的技术点作为课程的重点;在介绍这些技术点的过程中,采用项目贯穿的形式组织技术点,使学生既能学会技术点,同时也知道如何在项目中使用这些技术点。这样设计出来的课程更符合企业工作要求,培养出来的学生更能满足企业招聘需求。
技术点选择——面向岗位直接需求
从Java方向相关岗位企业需要的技术点上看,通过企业调研分析,不同的企业Java方向相关岗位需要掌握多种不同的技术,而让一个在校学生在有限的时间里全面掌握这些技术是不可能的,也是没有必要的。所以课程在技术点的选择上,侧重点放在面向就业岗位的直接需求,选择那些能帮助学生进入Java软件开发工程师等相关岗位,并能直接上手开展工作所需要的技术点。
本套课程对技术点的讲解不求大而全,不求面面俱到,而是企业中用什么、怎么用。课程主要内容集中在核心技术原理、软件开发流程、主流框架技术、常用开发工具、编码调试经验等,让学生通过这些内容的学习,掌握实际的技能,独立从事Java方向相关岗位的工作。
课程组织形式——案例验证、项目贯穿
选择完需要讲授的技术点之后,课程采用了案例验证和项目贯穿的形式组织这些技术点。案例验证是指在讲解每一个技术点的时候,都会通过一个或多个案例对该技术点进行验证,加深学生对该技术点的认知和理解。项目贯穿有两种形式:一种形式是在讲解完几个或十几个技术点后,通过完成一个完整的项目或者项目的一部分来贯穿之前学习的这些技术点,使学生既能理解这些技术点,同时也知道在项目的哪些地方需要用以及如何用这些技术点;另一种形式是一边学习技术点,一边完成项目的某些对应功能,这样,当这些技术点的学习告一段落时,项目也完成了主要的功能。
在案例的选择上,课程力求选择最具有代表性的案例进行讲解,使学生的理解更加深刻。在项目的选择上,既考虑选择与企业实际项目类似的实用性强的项目,同时也注意不选择那些需要花很多的时间去理解业务的项目。通过这样的选择,能保证学生在相对较短的时间里获取更多的项目经验。
课程体系结构
本课程是为培养Java软件开发工程师及相关岗位而精心设计的课程。全部课程分三大部分,下面对这三个部分进行简单的介绍。
第1部分:Java基础
Java基础部分,介绍的是JavaSE的内容,在整个课程体系中起到了基石的作用。该部分包含“使用Java语言编写程序案例”和“深入学习Java开发简单应用”两门课程。
在“使用Java语言编写程序案例”课程里,读者将学习如下内容:
(1)Java程序工作原理,Java开发环境。
(2)数据类型和运算符,程序流程控制,如何使用数组以及使用方法组织程序结构。
(3)用面向对象的思想理解类、对象,使用包组织类结构以及进行访问权限控制。
(4)面向对象的封装、继承、多态等特性,会使用抽象类和接口。
在“深入学习Java开发简单应用”课程里,读者将学习如下内容:
(1)Java异常处理机制。
(2)数据结构、集合和泛型。
(3)XML及使用Java进行输入/输出操作。
(4)反射机制、多线程、网络编程、Java注解等。
(5)软件测试及JUnit单元测试工具。
第2部分:Web应用技术及数据库
第2部分包含“使用前端技术展现Web系统”、“从程序员角度学习数据库技术”和“运用后端技术处理业务逻辑”三门课程,概括起来就是分别介绍Web应用的前端技术、数据库和后端技术。
在“使用前端技术展现Web系统”课程里,涉及的主要技术包括:
(1)HTML结构和基本标签。
(2)CSS样式表使用。
(3)使用表格、框架和DIV+CSS等进行页面布局。
(4)JavaScript语法,使用JavaScript进行BOM、DOM编程和CSS操作。
(5)使用JavaScript进行客户端表单验证。
在“从程序员角度学习数据库技术”课程里,主要包含如下内容:
(1)关系型数据库Oracle介绍。
(2)简单查询、多表连接查询、单行函数、分组和组函数及子查询。
(3)插入、删除、更改表数据,数据库事务。
(4)创建、修改、删除表,创建和维护约束。
(5)数据库用户和角色,授予和撤销对象权限。
(6)视图、序列、索引、存储过程、触发器等数据库对象。
在“运用后端技术处理业务逻辑”课程里,主要学习到的后端技术包括:
(1)JSP基本语法,JSP九大内置对象。
(2)Tomcat服务器,Eclipse集成开发环境。
(3)JDBC连接数据库,数据库连接池技术。
(4)JavaBean和分层模式。
(5)EL表达式和JSTL标签。
(6)Servlet生命周期,Servlet处理用户请求。
(7)AJAX技术原理及具体应用,JQuery框架。
第3部分:主流三大框架
第3部分围绕着Java方向主流的SSH三大框架进行讲解,包括“使用Hibernate框架轻松连接数据库”、“使用Struts搭建MVC模式商业应用”和“使用Spring整合框架及银行业务简介”三门课程。
在“使用Hibernate框架轻松连接数据库”课程里,介绍了Hibernate框架的如下内容:
(1)ORM概念、Hibernate核心API、持久化对象的3种状态。
(2)一对一、多对一、一对多、多对多关联。
(3)开发模式与Hibernate工具的使用。
(4)HQL查询、Criteria查询、原生SQL查询。
(5)Hibernate加载策略,Hibernate缓存优化。
(6)持久层设计,JPA介绍。
(7)5iJob项目实战。
在“使用Struts搭建MVC模式商业应用”课程里,将会学习到如下内容:
(1)MVC模式、Struts 2工作原理。
(2)Struts 2开发和配置。
(3)OGNL类型转换和表达式,Struts 2内建转换器、自定义转换器。
(4)Struts 2标签库、Struts 2 UI标签。
(5)拦截器、Struts 2国际化支持、Struts 2常用插件。
在“使用Spring整合框架及银行业务简介”课程里,涉及的主要内容包括:
(1)Spring整体架构。
(2)IOC容器、依赖注入。
(3)AOP框架、声明式事务管理。
(4)SSH集成开发。
(5)电话银行中心部分业务需求介绍。
“蓝桥杯”,旨在为软件企业和高校学生之间搭建起一座桥梁。作为在校大学生,要想成为优秀人才或精英人才,需要全面提高综合素质,同时转变观念,通过各类途径提升技能和经验,才能在激烈的竞争中把握机会取得成功。“蓝桥杯”将与高校学子和企业一起,共同成长,共创辉煌!
编 者