关键有没有真的学好?有没有下苦功夫?
关键是很多学生什么也没有学到,就讲学单片机吧!这次招聘我们有一个考题,使用汇编语言编写程序,对MCS51内部128字节RAM全部清零,仔细用过Keil C51的人都知道,这是Keil的一个初始化范例程序。还有一个单片机的RC复位电路,要求指出是高电平复位还是低电平,没有几个人答对,难道不是一种痛苦和悲哀吗?然后要求划出复位过程的波形(上电与下电),难道这点要求也算高吗?至少学过电路分析基础或者电工学吧!这考的是基础知识。我们“海考”了不知道多少人,研究生也不知其数,但凡是考对的人我们几乎都录取了。后来发现,这些题目考对的人都是对单片机的理解比较透彻以及基础非常扎实的人,都是动手做单片机软硬件程序一年以上的人,其它的题目也都能够考出来。还有考8个发光二极管循环显示的程序,也没有几个人能够做出来,我简直感到愤怒!有说不出的痛苦和万般无奈。
难道真的是学校没有条件吗?还是自己的原因呢?我认为,只需要花几百元就可以购买一个板子,无论是单片机还是ARM都可以学好。我学习ARM的经验是“逐行、逐句、逐段、逐页”地学习和理解,争取做到对理论的认识,每句话都要达到能够用自己的语言给别人讲解的程度,而且对于难以理解之处,自己通过用自己的语言改写,用图或表更加清晰地表述,对照手册的每一句重要的“话”自己一一写程序印证,比如,“对于LPC2000系列ARM,与其它中断源最大的区别就是外部中断输入可将处理器从掉电模式唤醒”,学到这里的时候,怎么办?写程序,通过日积月累就会形成一本非常丰富的实践手册,最终对ARM基础的理解必将烂熟于心,倒背如流岂有找不到工作之理,但是很少有人愿意这样下苦功夫。试想连简单的东西都不能透彻理解,何谈钻研更加高深的知识与技术呢?很多人骂我做的板子简单,其实世界上没有绝招,“绝招”就是简单地重复做好一件事。2007年我主要的工作就是去全国各地给初学者讲解我对ARM的理解,与此同时第二个目标就是争取成为uC/OS-II专家,能够写出一本人人都能够轻松看懂、会用uC/OS-II的《嵌入式实时操作uC/OS-II原理与应用》教材,然后再去传播这些基础知识帮助更多的人成功,我的水平不高,我的目标也不大,这是我在做好公司的同时喜欢做的事情之一。
尽管我也一直在做ARM的相关工作,我深知自己也并非完全达到专家的水平。古人云:知耻而后勇!这两年来我就一直在钻研ARM的基础知识,每天钻研和学习到深夜从不间断,用了2年的时间学习和钻研ARM7的内核以及LPC2000系列ARM的细节,终于学有所成刚刚完成了对《ARM嵌入式系统基础教程》第二版的修订工作,前后几次推倒重来这一版重新写作了80%的内容,特别是对ARM7体系结构部分完全实现只要初学者看过一遍就一定懂了,看过几遍之后就一定能够达到完全理解的程度。与此同时还将推出新的课件和配套的辅导参考书,两年之后我将推出第三版争取达到炉火纯青的地步。
我很快就要满43岁了,我从来不觉得自己会随着年龄的增长而不断退化,也从来不曾有半点怀疑技术威力的作用。周航慈教授已经63岁了,大家可以看看他的最新力作《基于嵌入式实时操作系统的程序设计技术》(基于LPC2000系列ARM与uC/OS-II,北航出版社),他是我的学习榜样!
希望与有志者共勉!!!
周立功(2006年12月1日) |