一、以就业为导向 —— ACCP是什么样的课程?
以就业为导向是ACCP课程最根本、最核心的特征。ACCP是职业教育,不是学历教育,而职业教育的本质就是就业教育,学习的目标就是为了就业,有助于就业的我们就学,无助于就业的我们就不学。
为了能够满足就业的需求,我们做的第一件事情就是去软件开发企业了解用人状况和技术需求,经过1年多的努力,共收集了5362家企业的招聘信息、对36个城市的386家企业进行了重点跟踪、与41家企业进行了实地接触和深入访谈,通过对掌握的一手数据进行详细分析和多次专家研讨,比较全面地掌握了企业用人需求。
时至今日,软件开发企业用人主要有以下几个特征:
- 外包开发行业快速发展,对“人才”在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高;
- Java和.NET技术在市场上平分秋色,都有大量的岗位需求,同时值得庆幸的是二者在应用层面上的技术差异越来越少;
- 软件开发企业对开发人员的基本技术素养强调得越来越多,例如:面向对象的程序设计思想和代码组织方法、HTML/CSS/JavaScript客户端技术;
- 为了保证质量和工期,企业中大量使用各种框架技术,要求开发人员至少熟悉一种框架技术;
- MIS、OA、ERP、CRM、系统集成、物流、进销存、电子政务、网站建设这一类B/S系统,成为软件工程师需求最大的业务领域。
但是企业强调得最多的,是关于软件开发人员的职业素养要求:作为一名职业人,守时、踏实、耐心的习惯,以及适应能力、学习能力、抗压能力、规范意识、合作意识、沟通意识,都是是不可或缺的要素。多年的跟踪数据显示,具备这“三个习惯、三个能力、三个意识”的软件工程师,在职业上获得了良好的发展,否则技术再强也难有好的发展机会。
为此,ACCP5.0把职业素养训练课程(COT)作为课程的重点来实施,整个学习过程中,监督并要求学员能够不断反省自己、养成良好的生活工作习惯,顺利完成从“学校人”到“准职业人”和“企业人”的飞跃。
二、以实用技能为核心 —— ACCP如何选择课程内容?
软件开发领域内所涉及到的技术内容是非常多的,不同的行业会使用不同的技术,不同的项目也会使用不同的技术,在技术选择上我们遵循了实用原则和80/20原则:
1、实用原则:所选择的技术一定是能够解决实际工作中的实际问题的技术。打个比方,假设我们是在学习修车,关于汽车原理、发动机原理、轮胎橡胶特征我们就不会花费精力去学习,因为这些内容在修车过程中很少会使用到,而如何使用各种检测设备和螺丝刀等工具、以及不同品牌汽车修理和保养的经验,则是汽车修理人员最迫切需要掌握的技术。因此ACCP课程主要内容也集中在如何解决软件开发项目中所涉及到的技术工具、技术框架、开发流程和编码调试经验等方面。“不要去背诵对象有哪些方法、属性,而是要去使用这个对象去解决实际问题”。
2、80/20原则:80/20原则包含两层意思,第一是企业80%的时间在使用的那20%的核心技术我们重点讲解,而那些80%不常用的非核心技术我们弱化讲解,或者只作为介绍或者拓展内容(例如Oracle和Linux课程);第二是花费80%精力才能够能学会的20%内容我们不讲解(例如C/C++技术)。
总之,以用为本、学以致用、不用不学、用时才学、学了就用、综合运用是ACCP5.0选择课程内容的最终标准。
三、以案例为主线 —— ACCP如何组织课程内容?
与传统的教材编排方式不同,ACCP5.0内容的安排是以案例为中心来开展的,并适当地把多个案例联结成一个工程项目。在每一门课程中,都采用了一个实际的开发案例来组织技术内容,理论课上老师会通过一个案例、小项目的讲解来引出技术内容,而上机课要求学员自己逐步完成一个类似的项目。
在案例的选择上,我们在考虑到案例的实用性的同时,也尽可能地提高案例的趣味性、并加强与日常生活中遇到的问题和现象的联系,从而帮助你理解案例内容。
通过这种案例教学的方式,学员不会迷失在浩如烟海的知识中,同时会具备更多的行业知识和项目经验。
四、以动手能力为突破点,以项目经验为学习目标—— 怎么样才能学好ACCP课程?
ACCP5.0课程最终的学习目标是:“能够运用Java或者.NET技术,在团队合作的基础上,参与到整个软件项目开发过程,熟练、规范地完成企业级B/S系统模块的编码、调试和文档编写,成为企业紧缺的技能型应用人才”。这长长的一句话再浓缩成四个字,就是“项目经验”,学习完ACCP5.0,相当于具备一年的实际软件项目开发经验,这也是目前绝大多数软件企业招聘时的最低要求。
学习的目标改变了、学习的内容也改变了,必然要求学习方法也去做调整和改变。以往的死记硬背不再适合于ACCP5.0的学习,ACCP5.0需要的是通过“动手”,来训练技能,不但要快、还要规范。
把发动机的各项参数背得再熟练也是不会修车的,而快速判断问题发生的原因,使用扳手、螺丝刀快速搞定问题才是正道。修车高手只能通过大量的实践、总结、再实践才能够达到快刀斩乱麻解决问题的境界。同样,ACCP的学习也要求学员“动手、动手、再动手”,要敢于编码、乐于编码、大量编码才能够达到熟练的程度。
现代企业要求合作,代码规范是团队开发的基础,没有人能看得懂的代码,不管自己觉得写得如何漂亮,终将被称之为“垃圾代码”,在全部学习过程中,我们要求学员:“代码运行通过了不算代码写完了,代码规范了才算”
我们认为,只有通过大量的、反复的动手实践,才能具备熟练、规范的编码和调试能力,具备真正实用的技能,才有可能被称之为应聘者中“有项目开发经验的人”,成为一名企业真正需要的“人才”,在日益激烈的职业竞争中拔得头筹,ACCP5.0向这个目标迈进了一大步。
与上一个版本ACCP4.0相比较,ACCP5.0在以下方面进一步完善:
1. 以“技能”为核心的职业教育产品设计,凸显“实用”导向
ACCP课程注重训练学员能解决什么实际问题、完成什么实际任务,而不是传统教学的懂什么概念、了解什么知识;因此,从一开始,课程内容的设计和安排依据就是用人单位所需要掌握的技能,然后我们的培训目标中确定了286个“实用技能点”。
最后,通过这些技能目标我们找项目、设计项目来编排课程,确保所学有用、能用、够用。
2. 全面强化职业素养培养
课时大大增加:S1:S2:Y2 = 30:28:30
在ACCP4.0沟通、表达的基础上,增加以下的内容:
——固化学术活动,促进学习方法和学习习惯养成
——针对不同阶段学习特点,解决不同学习上的问题
——增加时间管理、压力管理、团队合作、人际交往等训练内容
——入职训练系列和求职面试系列,完成从院校人到企业人的转变
——增加视频教学提供职业素养过程实施和监控、考核
3、突出项目经验和IT行业背景,重现企业工程项目场景
提供26个企业真实项目案例
上机比例增加到65%,保证代码熟练度
整个学习过程将完成50000行代码的编写,其中项目代码20000行
S1S2Y2阶段项目时间分别为24、24和76学时,项目开发周期在30-45天
提供行业手册,介绍行业术语、项目架构和开发流程
4、提升学员动手能力训练的力度和强度,提升了课程性价比
增加上机时间,理论和上机课时比例高达2:3,上机操作高达总课时的65%
通过标准化方法,加强了上机课和项目实践课的过程控制,达到更好的训练效果
5、案例贯穿、项目驱动的课程组织方式,让学员轻松学习
学员边学习,边在课程中完成贯穿项目14个,大大增加了学员实战的机会和学习的成就感,增强了学员综合运用所学技能解决具体问题的能力。
课程关系说明:
第一学期:
- 先学习进入软件编程世界,才能够具备计算机Java语言学习的基础;
- 第一学期Java课程结束后,.NET课程的基本语言语法都与Java课程类似,将对比进行学习;
- HTML语言是独立的课程,不牵涉到程序编写,学习Java课程之后,为了缓解学习压力,调整学习节奏,先学习这门课程;
- SQL Server课程和.NET课程共同结合起来完成第一学期的阶段项目;
第二学期:
- 第二学期刚开始就学习SQL Server课程,是在第一学期学会SQL基本操作、基本查询的基础上学习高级知识;
- 第二学期两门.NET课程有严格的先后次序关系,并且是在第一学期的基础上进行拔高;
- JavaScript课程是在学习完成.NET课程之后进行,同时要求首先学会第一学期的HTML课程,否则无法建立页面,更谈不上动态效果;
- Java的两门课程也存在严格的先后次序关系,只有熟练理解、掌握了面向对象的思想,才能够进入到MVC开发模式的学习,否则将会存在很大的理解上的困难;
- .NET课程中的三层结构模式,与Java的MVC模式,存在诸多相似之处;
- 学习完Java课程,将结合数据库课程、HTML、JavaScript课程,综合来完成第二学期的阶段项目;
第二学年:
- 第一门Java课程,核心技术JSP/Servlet/JavaBean,就是MVC模式的经典实现,需要第二学期JSP课程作为基础;
- 只有在掌握了JSP/Servlet/JavaBean的应用以后,才能够体会到框架的必要性,第二门Java课程中的Struts/Hibernate/Spring中,JSP/Servlet/JavaBean是最基本的应用,并在此基础上做框架的集成,因此这两门课程也存在严格的先后关系;
- Ajax技术在Java课程中先讲解基础、原理,并要求手写Ajax代码,继而在.NET课程中使用方便的控件来实现,因此Java和.NET课程安排的次序不能变更;
- .NET第一门课程是基于三层结构的企业级B/S系统开发,因此三层结构是这门课程的基础;
- 只有掌握了ASP.NET中的B/S开发技术,并且实现了网上书店的应用系统开发,才能够在该系统上进行优化和提高、扩展更方便的功能,因此,第二门.NET课程也必须在第一门.NET课程之后进行;
- 毕业设计项目分别在Java课程结束、.NET课程结束后都会执行,整个第二学年的学习过程,将有三个月时间的实战训练(其中集中编码的课时为免费学时)。
课程之间的关系,可以用以下的图进行说明:
`
|