其他专业想转嵌入式,这些建议要看一看
前几天,有朋友在后台问,他是一个机械专业的学生,想转到嵌入式方向,该怎么学?今天我们特意做了这样这个话题,希望能帮到那些想转嵌入式领域的朋友们!
当局者迷,旁观者清,关于转行这件事,先听听其他人的看法:
机械到嵌入式,我不觉得是转行,算是自己专业领域的拓展,毕竟嵌入式软件不是纯理论的东西,绝大部分是通过机械来实现其功能的。举一个极端的例子,你觉得设计一个机器人都需要哪些知识?仅仅的机械设计和嵌入式软件就够了吗?远远不止。学习嵌入式软件设计并不意味着放弃机械设计。
能有这个想法很好,纯粹地做机械,不是太好,以后的趋势肯定是要复合型的。
首先从个人发展来说,软件行业(嵌入式/通信/互联网)整体薪资待遇都比传统的机械行业要好,如果有毅力和决心,并且能主动学习,为了提高自己的生活水平,换行业未尝不可。从行业发展来说,据我所了解的,国内的高精度数控机床的研发一直是很薄弱,这方面的研究需要跨行业的人才,如果能有这样的机遇是相当不错的;另外机器人领域的研究(自动化生产)也在兴起,有跨行业的技术背景也是相当不错的。
嵌入式软件开发以后会比较火,而且应用范围比较广。但不太建议完全放弃原来的工作领域,转入嵌入式。最好是能找到一些交叉点,这样你的职业生涯起伏会比较小。
我是学机械的,但同时对于电子与软件非常喜欢。我学习单片机和画电路图,所以,在这方面是有一些心得的。如果纯机械的人,想转到电子或软件,要进行的转变比较大,最好要有人带。软件要学得比较深,所以,要向这个方面发展的话,需要学习的很多很多。我想,如果自己喜欢,而且各方面的条件比较合适的话,可以向这方面发展呀。
如果觉得你在机械设计这个行业的专长还没有发挥到极致,建议不要转行。如果你有能力只是感觉工作困难就不要转了。这年头做哪个行业都会遇到困难,看你在困难面前能坚持多久。综合分析下,如果你觉得自己的能力没办法再坚持下去,建议马上转,不要犹豫。当然跨行还会遇到困难。
当然,上面的建议只是参考,如果你真的想好了,要转做嵌入式工程师,下面的建议可以看看:
1. 嵌入式涉及到很多的基础知识
C语言,关于C语言要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些二级考的东西,因在实际中用的很少。
C++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。
操作系统原理也应该知道基本的原理的,什么时间片啊,任务调度啊,都是需要知道的。
Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我们学习嵌入Linux可要改改这个习惯了,Linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。
Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等。
Shell编程也要了解一些,在这给大家推荐一个教程,周朝剑的shell编程,也就七八讲吧,讲的很全面。初学者看前4讲就可以了。
2. 看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背
看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读Linux内核源代码,看一些自己把头撞破也想不明白的事,会打击初学者的积极性,要循序渐进,今天学个做个LED,明天做个串口,后天说不定就做硬件编解码了。
3.你可以不接受培训,但是不能不买开发板
有基础的朋友可以买个板子自己先玩玩,没有基础的朋友建议还是系统的学习一下,把基础打扎实先。自学成功的周期有的是几个月,有的是几年,甚至有的人都自学不下去,在自学的过程中,能持续坚持几个月,并有一定进展的情况下,可以继续下去,假如一直没什么进步,一直在平衡线上来回,又想往这个发展,建议还是系统学习,不要一直自学的浪费时间。培训最大的好处就是3点:
1)系统:培训一般都是折重点和中心来讲,省去了不必要的时间,同时把这些知识形成系统教学。
2.)学经验学方法:培训一般都是要老师上课,在培训机构学的不仅仅是书上的知识,而是结合老师所教的经验和方法来动手实操,掌握方法技巧。
3).周期短:一般嵌入式4个月左右的时间,当然这几个月自己也得努力辛苦一下。不过无论是自学还是培训重点还是自己,多实操,多动手,不懂就问。现在的开发板很便宜了,给初学者减轻了很多经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写LED的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,弄了一天才把LED灯点亮。所以不要眼高手低。
4.不要好高骛远,要脚踏实地
对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴, “那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!”然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。
5.多看代码,多写代码
见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习。
写的不错,很实在,我也是从初学者走过来的,没有培训,全靠下班以后的时间自学的