嵌入式学习方法论
谈论学习,其实是为了快速的学习,深入的学习,然后通过掌握的知识与技术,来解决遇到的问题。
即要快速的学习,又要深入的学习,其实是矛盾的。但学习总是从现像到深入了解本质的一个过程。
接下来会分享一下个人的学习样例:
深厚的功底基础,加上系统的学习与实践,才能成为所谓的“大神”,其实大神并不是它本身有多牛,而是他们系统
学习了某方面的知识,具备了分析问题,解决问题,更者进行优化与升级的本能。所有一个人接受新知识和理解新知识
的能力就变得特别的重要,存在一个效率的问题。
学习得耐得住寂寞,需要发时间。还得学会做笔记,功夫虽然学习了,但是没有机会实践的话,在需要用的时候重
新学习,会发费不少时间。
具个例子,假设要深入了解ext2文件系统的设计,如何去入门呢?
所有很复杂的东西,在最初设计的时候都是有原形的。
我们可以通过google搜索到如下的链接,就是ext2的初稿
http://e2fsprogs.sourceforge.net/ext2intro.html
了解了其中的inode derectory,links ,device special files, 和 实际的物理结构,工具的使用。
针对ext2其实就跟学习协议都是差不多的,换句话来说的话,如果能看懂ext2的具体设计文稿的话,ext2的技术内幕,就非常的清楚的。
把学习分为三个过程,初级,中级,高级。
但是学习了初稿之后,定义自已已处于初级的状态。真正了解ext2的技术内幕的时候,就处于高级的状态。
如果接下来直接去看最终的设计文档的话,这样的越级学习会比较的辛苦,还需要一个缓冲的过程。让自已处于一个中级
的状态之后,然后再去深入的学习。
接下来我们可以去找一个对针ext2 文件系统的详细介绍。
http://www.science.unitn.it/~fiorella/guidelinux/tlk/
学习之后,可以还会有一些疑问,没有人能帮忙解答,但是可以通过最后一步来解决自已的困惑。
还有就是如果什么东西都学习最新的话,常常会陷入知识的海洋,无法游出来,没有办法达到系统化的学习。
先有了根基,再有主干,然后开支散叶,最后肯定得长得很茂盛。
最后再去学习其最终的设计文档,当我们学习了它之后,就有针对ext2文件系统的有了整体的认识。
http://www.nongnu.org/ext2-doc/index.html
接下来我们就可以去看内核对针ext2的相关的代码了。
相当于一手是设计文件,一手是设计的代码。就容易了很多了。
但是回头来看,我们会发现系统学习ext2,会发费不少的时间,投入的时间,最终是有产出的。
当做知识的迁移的时候,我们就能比较不能的文件系统的差异,知道其接字节及块读写的性能,
就知道如何去做选择了。