今天学到了一个新名词——OJT培训
刚才王洪亮提到了OJT工作法,咋一看不明白啥回事,于是百度了一下:OJT即On the Job Training的缩写,意思是在工作现场内,上司和技能娴熟的老员工对下属、普通员工和新员工们通过日常的工作,对必要的知识、技能和工作方法等进行教育的一种培训方法。
这立刻引起了我的兴趣,这其实和程序员圈子里的师徒制度,松结对编程(见陈勇的博客)具有异曲同工之妙。有过几年教师经验的我,一直在思索自己的一个问题:从老师到研究,再改行写程序,这其中走过多少弯路?如果时光真的能够倒流,我会如何避免那些问题?我能否在每一个阶段成长得更快更好?
我本物理学出身,硕士阶段的研究方向也是凝聚态物理,凝聚态物理可能很多人不懂,如果我告诉你和材料物理有点类似,你或许能理解得多一点。三年的研究生学习一闪而过,很快到了要找工作的季节了。我拿什么找工作?这个问题难到了我。外面的招聘广告如果能有那个公司说要招物理专业的,我们一定会瞪大眼睛跑去看个究竟。在找工作的过程中,我发现“软件工程师、程序员”这个词出现的频率特别高。于是想着能干这个的话,也许找工作会容易些。看了看要求,Linux,Java,Web,C/C++,数据结构,算法,操作系统....之类的名称出现得最多。其中很多我都没有听说过,只有C/C++我还听说过,并且在做研究课题的时候,用C写过一些小程序用于数值计算。于是决定把C/C++学一下,能否给自己的简历增加一个亮点。
奇怪的是,很快我就找到工作了。来到公司,进入项目组,其实我是啥工作都干不了的。因为我连C++都还没学入门,除了会做几个题目外,我压根就不会用C++写程序,更别说一些实际的应用了。公司也没有明确的培训措施或制度,加之我是一个性格比较木讷的人,不太善于主动请教同事。在项目里,我几乎从零开始,我从最简单的做起——不,最简单的我也不会。我印象最深的一次是,我需要修改完善一个同事写的界面(其实很简单,当然这是现在看来),我无从下手。后来同事颜给我讲了一些知识后,我似乎懂得了一些,但仍然云里雾里的。不过说那时确实来劲,那天晚上,我把那个界面的每一句话都注释/放开,运行结果看每一句代码的效果。到最后硬是把整个源代码几乎重组织了,一直忙活到凌晨3点多。就是这样一个实践,让我突然知道了一些。再往后,张给我带来了布局管理器的原理和使用,王让我知道了C++这玩意居然还有封装,抽象,多态这些概念。自始至终颜一直扮演着我的导师,对我的帮助也是最大的。
这样,我很快的能干活了,帮助团队做一些工作,实现一些简单的功能,我慢慢的在成长,一段时间后我似乎能够适应工作的需要了。但我非常清楚:这不正常!因为我知道的太少,所以导致我不知道的也少。很快我发现自己停止不前了,我不知道自己需要学习什么?我不知道哪些东西重要,哪些东西不重要?我陷入了迷茫。与秦的交谈,让我知道了有《C++ Primer》这本书,网上一搜,一大堆对这本书的评论。于是买了一本,如饥似渴的阅读,练习......,不久我换了一份工作。
好了,是该停下来思考一下这个阶段的历程了。我将这个阶段叫做我的基本功阶段,当然这也许还有点高,那且就叫做入门阶段吧。从一开始到换工作,掐指算算得有两年多的时间。这期间我的大部分成长都是在同事的帮助下发起的,他们的指点和不经意交流让我知道了不足和努力的方向。从另一个角度回想一下,如果当时,能够从公司或者部门层面明确这样一种老人带新人机制,那么我个人的这种成长速度是不是会更快呢?我经常想,如果时光能够倒流,我觉得那两年多学到的东西一年时间就足够,那另一年时间我干啥去了呢?我在寻找“我不知道哪些东西?”“我需要知道哪些东西?”“哪些东西重要?”“哪些东西应该先学”这些问题的答案了[但其实,这些问题的答案还是从别人哪儿得到的]。如果有一个人直接告诉我这些,那么他就拯救了我一年的光阴。换言之,如果没有颜,张,王,秦等四人的交流和帮助,我或许三年也学不到那两年的知识。
换一份工作后,新的同事、新的工作环境、新的项目让我学到了许多新的知识和技能。
我学到了哪些?我怎么学的?我走了哪些弯路?我进一步需要学些什么?今天不写了,换了时间吧。