软件专业职业培训课程设置之我见

来源:互联网 发布:武林外传人物 知乎 编辑:程序博客网 时间:2024/04/28 00:22
从去年以来,在工作中陆续面试了不少IT职业培训机构的毕业生。首先说明一下,我现在所在的是一家软件开发公司,我负责面试的都是应聘程序员或项目经理职位的。遗憾的是,我还没有录取过一名这类培训机构的毕业生。也许有人会说我对这些机构有偏见。我想如果确实有偏见的话,我就连面试的机会都不会给他们了。之所以没有录取这些应聘者的主要原因,我认为和这些机构的培训课程的设置有关。
这些培训机构的学习周期一般都不会太长,短的我见过8个月的,长的不过一、两年。但是设置的培训课程却很多,C/C++, Java, ASP, VB, HTML, 数据库等等往往都要学。结果在不长的学习周期中样样都学了,却样样都没学会。
说样样都没学会会不会太夸张了呢?这要看“学会”的标准是什么。即以Java语言而论,是不是懂得基本语法就算会了呢?我觉得不是。如果不知道String类中的常用方法,不懂得如何遍历一个Collection,不知道使用Exception,这样的水平, 我觉得无论如何是不能称得少“会”Java的。遗憾的是,有很多这样的应聘者却在简历中写“熟悉”甚至“精通”Java。所以我对这些“熟悉”和“精通”从来都是要降低一个等级来理解的。这是题外话,扯远了。
培训科目的繁多和培训时间的相对较短这一矛盾是导致这类培训机构的毕业生不能很好满足用人单位(至少是我们)的需要的主要原因。这一矛盾直接导致学生在每一门科目上的学习时间都很短,实践太少。而且后学的科目记得还比较牢,而一开始学的,到毕业找工作的时候已经忘得差不多了。
那么对用人单位来说,这些学生学得多一些,难道没有用处吗。我的观点是用处不大。比如我要找一个Java程序员,那么同样两个参加了一年职业培训的学生,一个用了一年的时间在学Java,另一个一年时间学了C/C++, Java, ASP, VB等等,如果你来面试他们,在其他条件相当的情况下你会要哪一个呢。我肯定要第一个。或者说,如果我要找一个Java程序员,那么他是不是会ASP, 是不是懂C/C++,对我来说都不重要。而且一个真正在Java方面有相当实践经验的程序员,真正能做到举一反三,触类旁通的程序员,再学ASP, C#,乃至C/C++都不会太难的。
如果让我来为这些培训机构设计培训课程的话,我首先就要为入学的学生设定方向,比如对企业级应用,入学时就区分J2EE和.Net两个方向。对J2EE方向来说,学习课程就是J2SE, Servlet/JSP, HTML, JavaScript, EJB和J2EE中的其他API略作介绍。另外对于J2EE项目开发中经常用到的工具,框架也要做重点介绍。比如Ant, JUnit, Struts, Spring, Hibernate等。关键是要多实践,通过在实际项目中,或接近实际的项目中应用学到的知识,去体会,去理解。
那么这么细的方向划分会不会影响学生今后的毕业呢。至少目前来看,无论是J2EE还是.Net,市场上的人才需求量还是非常大的。只要学得好,应该都不难找工作。至少不会比三脚猫难找。
有人会说是不是你们公司不愿意对员工进行培养,所以要那种来了就能用的人呢。我觉得这里有一个学校、培训机构和公司在人才培养上的分工问题。好比军队,在平常的训练中必然要教会士兵射击、投弹、基本战术这些东西,在临上战场的时候再做些强化训练,重点是适应、熟悉战场环境。试想如果一个士兵枪都打不准,就准备送上战场了,这有点草菅人命的意思吧。同样的,学校和培训机构应该完成对学生基础知识和基本技能的教育和培养,这些学生进了软件开发公司以后需要的就是一些特定的工具、方法、过程的培训,和相关业务知识的学习。这样分工明确,才能打牢中国软件行业发展的人才基础。而当前,不仅和IT培训机构,就是一些大学,计算机专业的毕业生的基础知识和基本能力方面也有很大欠缺。特别是在最重要的编程能力而言。从一些学生的面试情况来看,我很怀疑他们在学校了究竟编过多少行代码。究其根本,还是因为实践太少。