IT业行者,行者无疆
分类: 嵌入式
2010-10-16 13:23:26
记得,入学前,听见很多搞技术的老头,这样叮嘱我们,老实说,虽然觉得他们说得很有道理,但面对着过于理论化的知识,总觉得有那么一点不靠谱,难道我搞定了就OK了?
《模拟电路》说来说去,就是三极管的各种应用和计算,计算可以用软件模拟了,应用,我们可以用现成的IC,把那些参数按说明说规定去弄,问题就不大,我就搞不清楚,为啥总是要自己算个半天。
《数字电路》讲的是数字信号的各种逻辑,书里面,经常涉及各种逻辑器件,如JK触发器,RS触发器,与非门等,心想,我用单片机,几条命令就能模拟这些器件所做的事情,干嘛要学习这些老东西。
《单片机原理》,为什么要学纠结的汇编指令,C语言的可读性多好,现在C语言在单片机的应用已经很完善了,汇编还有它存在的位置?
不知道,大家有没曾经像我那样数落自己教材呢?
在学习经历看来,他们是对,基础很重要,他们也是错的,一种教学方式,思维模式的误区。
兜兜转转,现在,我已经开始回归到基础的知识的学习了,无论是《数据结构》《数字电路》还是《模拟电路》
在图形界面程序的开发当中,我发现了程序的核心是Linux的系统调用,图形开发,仅仅是在Linux系统编程的基础上,提供了许多函数库,让我们轻松实现各种图形界面和功能。
在Linux系统调用学习中,你会发现系统会将很多设备操作的细节隐藏了,而恰好,设备才是系统调用的核心,所以你得去了解驱动的运作。
当你真正地接触驱动的时候,发觉驱动能够真正实行各种情况的处理,是Linux的内核提供的一种机制,要学好,一定把内核调配资源的机制弄懂。
翻开内核的函数,你会发现各种结构体,各种指针,各种函数的调用,一旦基础不扎实,和对抽象的原理缺乏理解,就会掉进各种各样的陷阱。常说:数据结构是程序的灵魂,一点也不假,即使内核这么庞大的代码,也是各种数据结构演变而成的,注入各种链表,哈希表,红黑树等,你需要去掌握数据结构,它很有用。
当你真正接触各种底层函数和大概知道一些数据结构后,你又会发现,设备要提供各种参数给相关的函数,它才能正常的运作,但是这些参数是如何来的?这可要看它的设备资料。
一旦涉及了设备资料,必然涉及很多相关期间的专业术语、相关计算和工作原理,没有电路知识可是一件吃力的事情。
到了这里,相信大家都看到了,到最后,无论多么复杂的知识,都是回归到基础。基础缺不了。
但为什么,我说他们也是错的,一种教学方式,思维模式的误区。学习理论,却不知道什么地方能用得上,别跟我说书本的例子,那些生活应用的例子感受不了,你根本得不到共鸣,你怎么会感兴趣去学,只有你知道数据结构能实现内核,你才会有兴趣去碰那些枯燥的东西,去了解哈希表在Linux进程的应用。有目的地去学习,才是最有效率的。
个人认为,一定要从应用层学起,底层那些太打击人了,从高层往底层学。感慨一下,谨以此共勉。