大学刚毕业,感觉自己不知道要做什么,执行先就业再择业的错误理念,在学校就签了一家台企代工厂,工作了2年半,没有太多的知识含量。一个方案变着花样的开发,觉得没什么意思。在工作中和软件工程师一起联调的时候,就嵌入式软件这方便产生了兴趣,之后就是自己在那学习,感觉学的不怎么系统,所以辞职后就想找家培训机构系统的学习,询问了身边的朋友,几个以前的同事对华清还是很认同的,所以就选择了华清远见。
在华清远见的4个月培训里,还是比较辛苦的,但是也学到了很多的东西,比如C语言、C++、到linux下的进程、进程间通信,如有名管道、无名管道、消息队列、信号灯、信号、共享内存、linux下的网络编程(套接字socket,select多路复用)、linux下的数据库sqlite,在这中间C,C++是从头贯穿到尾的,所以C,C++的编程能力得到了进一步提升。之后就学了QT、ARM、嵌入式Linux内核裁剪、移植,嵌入式Linux下常用接口的驱动开发。从c语言到开发环境搭建到项目开发,知识都很实用。华清的老师还是很负责的,每天的晚自习基本上都有人值班,有不懂的地方都会很热心的帮忙解答。最后的项目更是对整个学习一次全面的检查,负责lcd驱动开发,进一步了解的驱动架构,也还接触了下WEBA服务器及M0,ZIGBEE方面的知识。
记得刚开始培训的时候,自己对嵌入式这个领域基本没什么了解,软件编程方面也没什么基础,甚至连一些最简单的程序都写不出来,更别说数据结构、操作系统相关的一些知识了,基本没有任何了解。刚开始还有些担心跟不上,后来才知道是自己多虑了。这边的培训很注重基础,注重理论与实践的结合,让我可以很快的学习到一些基础知识,并在实践中去运用,加深自己得理解。经过这几个月的学习,我感受最深的是,学习嵌入式一定要多动手实践,只这样才能发现所要注意的问题,才能够更深刻的去理解相关知识,然后更灵活去运用。学习嵌入式是一个理论与实践不断循环的过程,遇到了问题,一定要多虚心要他人请教,多和别人交流,这样会使你学的更快。
说说我对驱动学习心得,这也是我最注重的一门课程,因为以后想从事这个方向的工作,并有所发展。刚开始对设备驱动没什么了解,也没有任何驱动框架的概念,设备驱动涉及到硬件的具体细节、内核的驱动框架和一些内核机制,学习起来难度不小。幸运的是在老师的引导下,让我们能够比较轻松的学习到驱动的知识,让我们在最短的时间内入门,具备以后独自分析一个驱动框架的能力。当然我们必须要有比较好的C语言基础,这样会让我们在驱动学习中避免一些低级的错误。总结一下有如下几个要点:
第一:要对自己有信心。很可能自己以前学习的不是这个专业或者以前没有接触过,不用怕,请相信自己,新手都是这样,有疑团,才会激发我们探索的动力和激情。
第二:永远不要单干。团队的力量,不管是从思维还是资源方面,团队总要比一个人单枪匹马来的快,所以遇到难题时一定要多向别人请教,多与别人交流。
第三:把学习穿插到日常生活中。一旦决定要学,就从现在开始学习,永远不要希望人的一生会腾出一段时间来让你去专门学习嵌入式的。
第四:要能够熟悉ARM体系结构,读懂英文数据手册,所以使用操作系统和资料请尽量使用英文的。
第五:需要用到什么学什么。不要企图把linux,arm等所谓的什么教程之内的书看完了再去做开发。
第六:学习驱动先要熟悉字符驱动的基本框架和常用机制,对于具体的驱动,先看看理论方面的知识,然后以简单的驱动为线索,分析驱动框架,之后就是移植个别驱动,之后是定制内核驱动。更重要的一点是,多花时间,多动手,要有耐心,要**不断地学习,不断地充实自己。
|