今天和一个嵌入式初学者聊天,让我想起了自己当初的学习生涯。一直在我心里,有一份潜在的责任感,我真的希望能够给处于艰苦学习当中的朋友们一些帮助,一些引导。目前的中国年轻人,有很大一部分人,对自己所学的东西概念感不强,填鸭式的教育方式,让这部分朋友无法对自己手中的事情扩散出更深远的思维。然而目前为生计,终日沉浸在代码里,我实在是无法抽出更多的时间来传递我的经验,仅以此文为表,希望能给困惑中的学习者带来一些沉思。

一直以来,我很感谢上天赋予我的思考的天赋。长时间以来,我无论学什么东西,花的时间都比别人长。我记得小时候,和邻居的发小走象棋,人家的父亲就说我走一步要思考大半天。虽然我象棋走得不太好,小时候学习也没多用心,但是在学习我自己感兴趣的事情之上,我的思考本性发挥得淋漓尽致。长时间的思考却并没有浪费我的时间,日积月累,我发现实际上,慢慢的我却比别人快。

我学过的东西很多,所以今天我可以说,思考的哲学,在任何事物上都是相通的,当你有了自己的一套思维模式(好的思维模式),你接触任何新事物,你运用他,都能得到与别人不同的愉悦和收获。虽然我从来不否认人的个体之间的智商和经验有差异,但是一套好的思维模式,却可以潜在的改变你,随着时间推移,你会成为一个有智慧的经验者。

在我们接触新事物的时候,一定要借助两样工具--思考和实践。我从小就是个爱折腾的人,家里的东西,相机、闹钟、手表之类被我拆掉了不少。很悲剧,在我大学之前,被我拆掉的东西,我一般都组装不起来(可能人比较笨)。然而这种折腾,却给我带来了一个优点(or缺点?),那就是敢于实践,敢于冒险。虽然有时莽撞的乱接电路会烧坏一些东西,然而随着知识渐增,实践带给我的好处远远大于其坏处。所以要送给朋友们的第一句话,就是在学习的过程中,一定要记得多实践。如果你是平面设计者,那就多设计几个logo,几个广告;如果你是一名法学学生,那就多针对典型事件和同行展开讨论和辩驳;如果你是营销者,那就多策划几个产品并卖出去;如果你是嵌入式学习者,那么你就该让代码先在平台上跑出来。值得一提的是,正如学羽毛球的,不是说教练教你之后,你挥了挥球拍,就说自己会打羽毛球了。学习嵌入式,并不是说将别人的代码原封不动的放cpu上执行一遍就ok了,我想你还需要仔细的阅读下代码的含义,起码你得告诉自己这现象是怎么来的。

当你尝试着多实践,少猜测的时候,你付出的汗水,会带来你远想不到的收获。你会发现,和同行的争执中,你的看法正确的概率比较大;长时间的遗忘后,你仍然记得你学过的某些东西;你更能体会到一种愉悦感成就感,给你力量去前行。另外,在你实践的过程中,有一点很关键,就是搞明白它!我们实践,一定要有目的性,最直接的目的性,就是搞明白其道理,不能囫囵吞枣,这样的实践,才叫实践。

接下来,我要告诉朋友们的第二句重要的话,就是学会比较和扩展。如果你是个网页设计者,你应该尝试在写网页的过程中,去比较几种实现方法的优劣和方便程度。如果你是营销团队的一员,你应该懂得比较你们团队的营销切入点和其他品牌的团队之不同,说白点,大家都是靠什么来说服顾客买你的东西?你更可以去比较大家的执行力,不同的资金不同的方式投下去,是什么效果?如果你是个嵌入式程序员,那么在你学完串口又学完spi之后,你应该懂得比较这2种数据传输的不同之处以及相通之根基。为何串口收发只需2根线,spi传输却要3根线?那么在你完成对51的了解和arm的了解之后,你应该懂得比较不同构架的不同适用方向。那么在你实现了两种算法之后,你应该懂得比较两者的效率、速度、以及资源代价!只有比较,才能让你看到更多,只有比较,才能让你知道何为好何为不好!它是你思维的第一站!

你学会比较之后,应该就会自然而然的学会扩展。因为比较让你找到了优劣,人的好奇心理和完美思想会让你自然而然的想去改变它扩展它。在扩展的过程中,我们可以借助任何现有力量。比如你设计网页的时候,将原来2种老的特效合二为一--你无须觉得羞耻,觉得好像是抄了(拼凑)别人的代码;你应该感到骄傲,因为你以及懂得如何支配现成的工具了!懂得借鉴的人,才懂得创造。

扩展可以举的例子是很多的,就嵌入式学习者而言,当你弄懂了串口的原理,你是记着看下一个例程,还是静下心来,准备利用串口,编织出一个命令行出来呢?当你学会了写spi的程序,是准备搞一搞触摸屏,还是打算改良下spi,写一个(哪怕只是设想)只用2根io口线就完成数据传输的协议呢?当你的设想无穷尽,你的思维就会无穷尽,当你的思维无穷尽,你的收获就会无穷尽!

我可能没有办法将我所有的思维方式告诉你,因为很多技巧都是在实践中积累的,并刻画在我的潜意识里。然而上述的,却是最基本的出发点。当你在学习的过程中尝试去做我说的这些,你才能领悟出更多的思维技巧。当你阅读了一份份代码,你才能从中领悟出原作者的思维意图和实现技巧。你付出多少,收获就有多少!

在和一些初学者聊天的过程中,他们常常会提出一个让我无法回答的问题:“你觉得以我这样的基础有多久可以学会这个呢?”,“我可以在一个月内看懂你写的东西吗?”,“我基础不好,真的能学会这个吗?”。学习者问这些问题,往往只是因为他们的怯。在长期的学习生涯和生活环境下,很多朋友,对于手中的事物,常常拿不出足够的勇气,他们害怕投入太多,万一失败了,会浪费了精力和生命。我想告诉朋友们的是,不必怯,既然怯,不如放开去试,否则如何知道自己能得?如果放不开心态,不如放弃。但是如果放弃,那么实际上,你做其他事情,其他行业,一样如此,永远克服不了自己心中的怯。试想嵌入式这么一个好的朝阳行业,一个机会比陷阱多得多的行业,你都不敢放手让自己努力,那么生活中工作中,你还有什么勇气拿来战胜更大的困难和挑战,去做一个勇敢的人呢?我无法告诉你你何时会成为强者,因为我不知道你将会有多努力,不过我知道,你付出了多少努力,老天一定会让你自己看到,结局一定会让你自己心悦诚服!