嵌入式很难学吗,怎么自学

嵌入式很难学吗,怎么自学

我学的是linux方面的,其实嵌入式说难也不难,因为我看我们公司老总的技术都6的我不得不佩服,从上层到底层包括什么网页,界面,驱动等等都感觉熟悉的不能再熟悉了,当然可能是对产品的熟悉吧,当然这需要时间不挺的去学习;我个人的理解是嵌入式难就难在这一行涉及到很多知识,什么c,c++,QT,网络,linux系统,硬件驱动等等。其实我个人感觉学的吃力的可能是方向不明确,不知道要去学什么,该学什么,所以入这一行我觉得还是把职业生涯规划好,先静下心来,嵌入式我要学哪些先想好,比如我是应用开发的,首先是上层的应用用的是GUI(类似于win32),当然还有QT之类的大致原理搞懂其实就一个样,学一样就行了,若是想进阶的学习的话,GUI开发中就会用到多线程的编程,开始时我不知道只是什么,但是经历过考研的我(虽说失败了)一直相信一点目前我们用到的技术(除了做科研之类和创造什么新技术以外的)基本都能在书上找到答案,因为这几本都成老技术了,各类书都有,所以说嵌入式难的一点就是知识量就像高考一样,多的没话说,所以我每天下班后都会看书,然后把自己学的感悟用微信公众号记下来(这个公众号是给自己看的,因为方便,忘记了就拿出来看),所以我就开始学习操作系统原理,那里面详细的讲解什么是多线,多进程,额外的看了cpu的调度,内存管理,磁盘管理等等相关的知识,就会越发的对操作系统感兴趣了。

还有一些基本的命令的原理上面都会有的。

然后又遇到GUI的网络方面的接口,那么我就去学习计算机网络,基本的原理TCP搞懂了IP还有其他的不懂,但是估计就两个个月网络就算看完了,然后就是socket编程去学习,那么到时学起来的话不就是把理论用在实践中吗???你说对吧!!!以上就是相关的引用层方面的知识了。

接下来就是涉及到底层了,我应用层还没学完但是很期待底层,所以底层我不知道有哪些,但是基本的硬件通信知识一定摇动比如什么I2C,SPI,CAN,WIFI等等的一些协议最好要弄明白,当然最重要的还是芯片的架构的理解,若是能理解的话就算基本明白嵌入式到底是怎么回事的了,哦,还有一点就是底层的接口可能会用C++来写,我没学过c++,目前用不到,而且我对c的理解还不够所以不敢深入,但是不影响工作,之所用c++,我记得好像里面有个private,主要是把接口写在这里面以防止被上层应用调用,然后用c++对应的写一个接口给上层应用就完了,感觉还是蛮安全的。若是想了解整个芯片的结构比如arm,那么就系统的去学习arm的架构,那么整个嵌入式也就是这些吧,当然是主要的。

总结一下几点就是:

1:嵌入式难在知识点多,解决办法是,基本的基础知识点都能在大学的教材里面有,都可以学到,但是要大量的时间

2:把基本的嵌入式的框架列出来,一步一步的去学习,因为嵌入式这个行业基本上对软件和硬件的要求都好是比较高的,所以不能马虎,一定要列出学习的路线,比如我的路c, c++ , 汇编, arm架构, 驱动, linux内核(主路线)以及包括用这些的其他小知识(辅路线就不列了)。

3:最后就是给所有的程序员一个建议,写代码不要向着客户去考虑,要向这结合客户与程序员自身去考虑,向这客户去考虑就是实现基本的功能和要求,向这自己去考虑就是代码写的要有水平,水平的意思(我的理解)就是代码的结构是不是清晰的,代码的扩展性能如何,就在前天我目睹了经理的代码水平,扩展性真的是很强大,以后维护起来都方便的很。

只要你认真学,嵌入式肯定能学好的,而且嵌入式就业薪资高,前景也不错。学习毫无疑问是需要好方法的,这个方法你要正确的去理解它,并不是像小学生做数学那样的公式,加减乘除算法。而是正确的引导,这样能让你学习效率提高。

那么对于嵌入式学习来讲,嵌入式怎么学呢?

嵌入式学习首先从了解嵌入式系统、使用嵌入式开始、紧接着去掌握它的开发语言C,然后去了解嵌入式的开发流程、一步步的由浅入深。华清远见把它笼统的概括为三个阶段:其一为嵌入式系统开发基础理论阶段;其二为嵌入式系统开发核心;其三为嵌入式开发拓展与实践。学习路线具体细节内容可以参照——嵌入式学习路线中的具体内容。

 

最后在学习的时候,一定要注意多写代码。

牛掰的人都是动手最多的,虽然很多时候都提供了完整的可编译的程序,但希望您能多动手自己写程序,比如老师讲的程序,你最好是手动自己去敲打,不要copy,因为这对你记住函数和理解函数有很好的帮助,虽然时间要多花一点,但很值的。如果你总是看完就算了,不去动手的话,最终的结果就是,程序我好像看得懂,但是我不会写,为什么呢?就是因为没有动手。

写代码有两个好处,一可以培养你养成一些写代码的好习惯,比如一些代码,你会少了分号等等小错误;二可以加深对代码的理解程度。