打印

振南启示录II(振南系列励志**)致在技术上精益求精的人们

[复制链接]
2399|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2013-12-19 10:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
振南启示录II
很长很长时间以来,我都有一种心理或者说思想:我希望在某一方面成为一个有分量的人,或者说充当一个重要的角色,起码不被人轻视,不比别人差。也许我代表了一个人群。我只感觉这种心理会让人患上强迫症,与别人的差距,或对自己的不满意都会触及到内心,并产生前进和努力的动力。所以,它会让人变得执着、坚毅,但也会让我被所谓的“完美”所累,生活于疲惫之中。
不知道你对于“完美”是怎样看的,可能你觉得完美主义者是令人敬佩的。但追求完美意味着要有更多的责任心,同时也要花费更多的精力和心思。这与其它很多事情都是一个道理,涉及到一个度的问题。我经常举一个例子:有AB两个人在作同一种产品,A很追求完美,但是B却认为产品差不多就可以了。他们同时开始研发,A一遍遍地实验,为了达到最好的效果;B作出了一个雏形,加以一定的完善,就直接推向市场。虽然说可能会有问题,但总归还可以让用户接受。用户首先看到的是B的产品,并开始大量订购,迅速占领了市场。与此同时,A仍然在不断深化和优化,而不推向市场。他总认为自己感觉不够完善的产品提供给用户是不负责的。B此时占领了市场的很大份额,并不断对用户手中的产品进行后续的升级完善,从而获得了较好的口碑和信誉。当最终A觉得产品完美的时候,他发现市场上留给他的空间和机会已经很小,他主动去向用户推销,但用户对他说:“你的产品确实功能多,性能好,但我们已经买了并习惯了B的产品,我们不会再买你的产品了!”结果就是,A的产品虽然很优异,但他的销售量却远不敌B。上面说的这个例子,或许有夸张的成份,但它也足以说明一个问题:“过于追求完美,不知变通地追求完美,会阻碍自身的发展。”所以,如果让一个极度的完美主义者来管理一个公司,那可能会使这个公司大难临头!当然,不追求完美也是不可取的,如果上面例子中B作的产品根本就是垃圾,那么他非但占领不了市场,反而会砸了自己的招牌,把市场拱手让给A,成为A的反面典型。这一切都是一个度的问题,如何把握好它就在于我们的思想。如果我们的思想正确,那我们就能在成功的路上越走越远,越走越宽。
学习这种事情,我认为一定要达到忘我的地步才能够精通。以前看过一部电视剧《陈景润》,讲述的是陈景润如何从一个名不见经传的小字辈成为一代数学大师的奋斗史。他的学习历程,可谓是极度忘我。听政治讲座看数学公式;去图书馆看书入迷到被锁其中;吃饭时看书以至于根本不知道自己吃的是什么……我总有一种感觉,他前生也是一位数学大师,在他离世之时,后悔一生中浪费了太多的时间,他发誓如果有来生一定要加倍抓紧时间,把全部精力放到事业和探求中去。于是,转生今世,他就一直孜孜不倦,忘我地工作。我们可能并不搞数学,但道理是一样的。不论学习或研究什么,都要有忘我的精神,把每一天都当作是生命的最后一天。
一个人技术好,学识广博,同时伴随着他的,通常还有稳重、坚毅、平和等品质,在我们打算去学习某样东西之前,我们要问问自己是否具备或有条件具备这些品质。我见过很多想要学习知识和技能的人,但我知道他们学不好,或者说至少学不到太好,因为他们过于浮躁,我称之为“月光族”,此“月光族”的意义是指他们的学习热情会在1个月内消耗殆尽。
一方面的专长,是精力和时间的积累,是需要下苦功夫的。很多人知道我编程能力比较强,但并不知道我在编程上下的功夫。我认为学编程就像是学习语言一样,当我们把编程熟练到母语一样的地步,才算是真正学到家了。在我们编程让计算机按照我们的意思去实现某一功能的时候,你能不能流利地与机器对话呢?如果你还纠缠于语法、格式这些基础的东西,那么这标志着你还没有摆脱初学者的行列。
七年前,当我来到哈尔滨,刚开始上大学的时候,我同样对C编程、电子、嵌入式等一无所知。我是对编程有着浓厚兴趣的,从初中就是如此。在大学以前一直用的是BASIC,经常会用它写一些小软件或小游戏。对C语言的学习是从大学才开始的。当时虽然学校开设了课程,但是我基本还是自学的。我的学习比老师的教学进度要快得多。后来,我开始看英文原版的C教程,最有用的一本就是K&R的《C language and pointer》,让我受益很大。它让我恍然大悟,C不光是用于描述算法的,它与硬件是紧密相关的。为什么有那么多人无法理解指针,谈指针则色变,主要还是因为他们脑子里还没有硬件层面上的模型。忘我的精神此时为我打下了坚实的基础。
我知道很多人在大学里都有过包宿上网打游戏的经历,我也不例外。记得当时我们寝室一共是8个人,每当大考后的晚上,我们就会集体去包宿。可能我对网游或者人们普遍热衷的一些东西天生不感兴趣。但我坐在电脑前并非无所事事,也和其他人一样忙。他们很纳闷既然我没有加入到游戏中,那我到底在忙什么?有人过来打探,顿吃一惊,因为我在写程序。他们问我“C语言都考完了,你还学它干什么?”我要说,在我眼里编程就是最有意思的游戏,比你们玩的那些好玩多了。所以,到现在为止,我还连一款网游都不会玩,从某个方面来说也是一种遗憾吧!
我学编程起初并没有想着去作硬件,而只是想以后作纯软件。所以在学习C的同时,我还学习了很多其它的编程语言,包括网络语言,比如pascaladaJSPASP PHP等等,记得当时还抱着一本PHP的函数手册不停地啃。在网络编程方面 ,我是懂一些的,不过都是皮毛。其实下功夫最大的就是VC。每当放假,都要从图书馆借很多VC的书回家研究,慢慢练习。起初写的都是一些功能单一的小软件。比如修改注册表、文件操作、菜单设计等等。但这些最为基础的内容也为以后打下了良好的基础。
其实我搞这些东西,既不是学校的要求,也不是项目的需求,完全是自己感兴趣。当时,在我身边的同学可能还没有开始接触这些。他们也许知道作软件要用VC,写网站用PHP,但大多都没有真正的去学过,很多人是在大三、大四,尤其是作毕业设计的时候,才开始去刻意地学习这些。
有人会问,你一个作软件的又是怎样涉足硬件的呢?其实计算机专业的学生大多还是以软件为主,尤其是对于本科生来说。像单片机、DSPARM等这些比较偏硬件的东西,还是信通专业或自动化专业接触的比较多。在我学了很长时间的软件后,一件事情让我思想上产生了转变。
在我们学校每年五月都有一个校内的科技作品竞赛,各系的学生将自己制作的科技作品拿到赛场上去展出,接受大家和评委的评审,最终评出不同的等级,并给以荣誉与物质奖励。学校就是通过这样的方式来激励大家投身科研,勇于创新。
平时比较要好的一个朋友,他本身是黑龙江省唯一的一个特长生。他参加过这个比赛,获得了二等奖。我问他:“为什么不是一等奖,以你的水平应该可以轻松搞定啊!”他却说:“一等奖都是属于那些电子类、机械类的作品的,因为它们都有实物,更能够吸引评委和观众。他们对纯计算机软件似乎并不太感兴趣,顶多得个二等奖。咱们系近几年来很少出硬件的作品,所以一直与一等奖无缘。”这番话对我的触动很大,我只感觉自己制定的方向错了。
由此,我萌发了转向硬件的念头。
大家也许也有过这样的经历,我们看到了自己的不足和前进方向的错误,并希望对其进行改进和修正。但最后发现这并不容易,实现的过程充满了迷茫和荆棘。在内因与外因的共同作用下,最终丧失了斗志,因此仍然保持现状。我想,如果我们都能坚定不移地将自己所能看到的不足真正的加以改正,那我们每一个人都能成为伟人!
我在学习软件编程的时候,其实就对硬件也有一些兴趣。但一直没有真正去接触。说实话,那个时候连电烙铁都没有拿过。还记得第一次焊电路板,要去电子市场买一把烙铁,但我当时连烙铁叫什么都不知道,只感觉它就是一把能够熔融焊锡的“枪”。于是,我就问人家:“老板,有焊枪吗?”老板先是一愣然后说:“焊枪?应该是电烙铁吧?!”我只好陪笑,忙道:“对对,是电烙铁!”当时感觉很丢人,但现在想想其实我们都要经历这个阶段。
学习一门知识,其实最难的是入门。入门之后,我们就可以知道它是怎么回事,有了继续深入的基础,进而会激发起更大的兴趣和热情,甚至忘我。所以,我们前面所说的忘我的境界不是随便可以达到的,它是要有技术和知识储备的,还要有明确而宏远的目标。再引用前面的例子,陈景润之所以投入数学而无法自拔,是因为他看得懂,知识水平达到了那种高度,并且坚信他的研究能够解开世界性难题“1+1”!
接触硬件必然要学习单片机,并且在以后很长的时间内都会研究它,学习它,应用它,为它疯狂,为它忘我!有人问,你学硬件,一开始对硬件不了解,你怎么知道就要学单片机呢?其实刚开始我根本就没有听过“单片机”这个词,计算机系也没有这方面的课程。知晓“单片机”完全得益于一次说话中同学的只言片语。
在哈工程的这几年,对我起影响作用的人有几位,首先要说的是XX,无论在当时还是现在,我都觉得他是一个具有传奇色彩的人,或者可以说是个挺不着调的人。其实也很难说,这个人不好描述。我总在说学习和研究需要“忘我”的精神,这个人到后来我感觉已经有点“弃我”的意味了,甚至颓废。但无论如何,他对于我的启蒙起了很大作用。
有人不禁会问:“这样的人,你是怎么认识的?”正如前文所说,都是得益于“只言片语”。XX在学校是小有名气的,主要是因为他的蛇形机器人获过“挑战杯”二等奖,以及因此而得到了央视《小崔说事》节目的邀请和专访,还有各种媒体对他的报道。其实公众看重的并不是他得什么奖,而是他研究过程中的“忘我”精神和艰苦经历。
一次谈话中,谈及他,同学说:“XX的蛇形机器人很牛的!单片机用了很多片。”他也许只是无意之间抒发感慨,我却记在心里了。心想:“这个人我一定要找到,跟他学单片机!”
后来,我得知我那个朋友(前面提到的因软件才华而特招的那个人)与XX早就认识,并且正在协助他研发蛇形机器人第二代(第二代据说是使用了多台计算机进行无线控制,并有视频上的监控和处理,因此有很多软件方面的需求)。通过他的介绍,我来到了XX的实验室。因为在机器人方面的成绩,学校专门在41号楼给他批了一个实验室。说是实验室其实条件还是比较恶劣的,几台破电脑,椅子也是很旧的木头椅子。当时是1月份,哈尔滨的1月即使是在屋里也是滴水成冰,加之暖气是坏的,进入实验室顿时寒气逼人。
“想学电子,行,那你在这干点什么吧……Protel吗?”XX问。
“不会,现在就会一些软件编程,也不是很精!”我说。
“行啊,慢慢学吧!”说完又开始干自己的了。
“那我在你这随便看看行吗?”
“行”。
我环顾四周,看看有没有什么感兴趣的东西。在一张桌子上看到了很多的芯片,整齐的插在一块大泡沫上,我问:“这是什么?”
他答道:“哦,这是五夭子,就是51单片机啊,从一代上拆下来的,留着以后继续用。
我很纳闷:“要用这么多单片机吗?”
“蛇形机器人一共11节,每一节都要用两三片,你算算要用多少片?
“这么复杂,怎么作啊?”
“主要还是把多机通信作好。你学单片机,那先焊个最小系统吧,这东西高手都不一定能一次焊成功,看看你焊得怎么样吧”
“怎么焊呢?”
“唉,你还是拿个现成的最小系统去学吧。”说着,递过来一个小板。
这块最小系统板也许能算是我启蒙的开发板了!拿到了最小系统板后,我就开始写我的第一个程序了—流水灯。流水灯估计每个人都知道,就是将发光二极管依次点亮。在编程方面我是有基础的,毕竟学过很长时间的C语言了。单片机然也是用C,但它贴近于硬件,所以对标准C进行了扩充。比如增加了可以用于定义寄存器的关键字;用于实现中断处理
的中断函数等等。学习单片机,就要去了解这些与硬件紧密相关的东西,让我们的思想到达更为底层而基础的水平。
经常有人问我这样一个问题:“学单片机,汇编和C我要学哪个?哪个更好?”。我的回答是:“它们并无好坏之分,因地制宜!”众所周之,汇编比C语言效率更高,的确是这样!以我实际的经验来看,汇编可以使单片机达到无与伦比的运行效率。有时候我们需要产生一个较为精细的时序,比如一个脉冲信号宽度要达到20ns这样的量级,如果用C语言,就算优化再优化,可能只能达到50ns。这是为什么?主要就是因为,在编译的时候一条C语句被分解为了若干条汇编语句。在某些对运行效率非常敏感的应用中,也许慢几个ns就可能导致结果的大相径庭,此时C语言的弊端就很明显地暴露出来了。
可能有人会说:“哪有那么多应用要求这么高?除非是工军或航空航天领域吧!”有一些应用我不说大家可能很难能够想到和体会到。拿我自己的一个实验来举个例子。有这样一个函数,它负责系统中所有的数据通信。很多函数都要调用到它,也就是说,它是调用次数最多、最频繁的函数。那么,这个函数的运行效率在整个系统中就非常重要了。如果它被调用10000次,每调用1次慢100us。那么,最终一共就差了1s。一个对通信速率要求较高的系统,1s足以决定其成败。最好的解决方法就是用汇编对此函数进行实现,并将其嵌入到整个工程中去。用汇编确实会让单片机“飞”起来,迫出其最大的潜能。

相关帖子

沙发
autopccopy| | 2013-12-19 12:13 | 只看该作者
记号:振南启示录II(振南系列励志**)致在技术上精益求精的人们

使用特权

评论回复
板凳
zhitao2072| | 2013-12-19 16:19 | 只看该作者
前排。。。

使用特权

评论回复
地板
dl349621994| | 2013-12-19 20:33 | 只看该作者
回复再看

使用特权

评论回复
5
海川先生| | 2013-12-20 22:58 | 只看该作者
看了颇有感触,也叫我想起了大学时在实验室待的日子

使用特权

评论回复
6
Super_| | 2013-12-21 21:25 | 只看该作者
当初学习单片机的日子,历历在目。从拿到这个课程的书本时,就很兴奋的读起来,现在想想是种忘我的感觉很奇妙。

使用特权

评论回复
7
a20084666| | 2013-12-21 21:48 | 只看该作者
dingle  写的不错哦

使用特权

评论回复
8
结字空林| | 2013-12-24 12:55 | 只看该作者
不错不错,我还是学习单片机的新手,看到你的那些经历,还是有点启发

使用特权

评论回复
9
Simplue| | 2014-1-29 16:18 | 只看该作者
k&r C 是《The C Programming Language》
怎么会是《C language and pointer》呢?
另外有一本书叫《Pointers On C》(中文名:C和指针)

使用特权

评论回复
10
Hu.Te| | 2014-1-29 19:08 | 只看该作者
看了楼主的启示录
真人让觉得人生有太多可能。
一入硬件就深入海的的,跟软件一样。

使用特权

评论回复
11
liuhaihai00| | 2014-3-30 21:54 | 只看该作者
楼主高手啊!

使用特权

评论回复
12
dj狂人| | 2014-4-7 23:01 | 只看该作者
学习

使用特权

评论回复
13
meyong08| | 2014-4-7 23:44 | 只看该作者
哥顶你 道出了心声啊

使用特权

评论回复
14
xiaobinshenzhen| | 2014-4-8 11:36 | 只看该作者
NB

使用特权

评论回复
15
ddc21ic| | 2014-4-25 08:53 | 只看该作者

使用特权

评论回复
16
renwocai| | 2014-4-25 18:46 | 只看该作者
那个XX郭天祥也提到过

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝