我是自动化应届毕业的,大学的时候学习也不是很好,看韦东山的视频入了嵌入式的门。

后面就面试了现在这个公司,面试的时候说是做驱动方面的,入职后就做了些系统移植的工作。

以前这方面的知识学的比较少,公司做技术的一共才6个人,公司又只有我一个人做这方面的,其他人都是做fpga方面的,有一个老大是做演算法的,他懂得比较多,有时会给我一些指导。

但大部分时间都是我自己在找资料,而网上的教程很少,每次都把时间浪费在找资料和验证资料的正确性上了。

感觉每次接触到的知识都不是很深,而且很繁琐。在这种情况下该如何提升自己的技术呢?


私以为,未来的工程师应该是软硬兼修的,FPGA也不再是单纯的FPGA的,都在往SoC发展,就是一个FPGA里除了原有的可编程逻辑资源,还会塞几个ARM的核,跑跑操作系统,比如典型的xilinx公司的Zynq 7020晶元,里面就带两个ARM9的核,可以跑Linux系统。

而其他传统的ARM SoC,也变得多核异构了,通常有几个A53,外加几个R4/R5,然后再带个神经网路加速器NPU。比如RK3399这样的片子。

所以,对于嵌入式这个方向来说,要学习、研究的知识是非常多的:

一方面,要掌握Linux操作系统,驱动开发、移植等必修的技能,同时还要熟悉市场上主流的一些SoC相关的硬体知识,至少能顺利地将定制的硬体板子boot成功,驱动load成功。

另一方面,看公司或者说个人的发展方向了。目前国产化的CPU(比如龙芯、飞腾等)和国产化的操作系统(比如UOS、SylixOS等)势头很好,因为中美贸易战的原因,未来5-10年内做国产化相关的生意/工作,都会是不错的选择。

除了操作系统、驱动等一些基本的技能之外,嵌入式还有一些比较细的分支。

比如搞物联网,用成本的MCU(STM32F1/F4之类)的,跑个RTOS(或国产RTOS,如RT-Thread),对接阿里云或其他私有云,近几年也蛮火的。就是需要对网路方面知识要了解多一些,wifi、2G/4G、mqtt协议、大数据平台等等,以及要对各种硬体感测器比较了解。物联网技术门槛不高,主要要看公司业务能力。

除此之外,作为嵌入式开发,Qt这种跨平台的GUI框架,很有必要熟练掌握的,好在qt的资料多、文档全,学起来不难。

所以说,嵌入式开发要学的东西蛮多的。操作系统、驱动、网路、硬体、GUI,一个都不能少。不过好在这些知识更新比较慢,可以有比较长远的规划、积累,而且不会像一般码农那样容易被淘汰。

最后,刚毕业不要轻易跳槽,在一个项目上多沉淀一些积累,可以触类旁通。


从你的问题能获取的信息:

1. 工作环境为小公司。公司不管大小,自有它生存之道,小公司也有大佬,不管是技术还是管理等。

2. 工作方向为嵌入式,嵌入式分很多种,硬体,软体,再细分更多。(这里吐槽一下,你可以把工作具体方向介绍更清楚点,工作中尤为如此,当你请教别人的时候,如果自己都没弄清楚,没带入到问题里面去,别人可没时间在那听一个连问题都讲不清楚的人啰嗦);

3. 如何提升自身技术能力?自我学习提高,自己在公司锻炼自己,请教大佬,实践动手分析解决问题,方法多了去。

ok,简单点,题主现在一家小公司搞嵌入式(具体搞啥的不清楚,可能是打酱油的,也可能是画烧饼的…),好比玩dota的菜鸟,鸡不买,眼也不做,玩的还渣,大神都不愿带你,现在只好到知乎请教各位:

菜鸟:大神,我应该怎么提升dota技术啊?

大神:你打几号位?

菜鸟:我不知道,就问问

大神:你不晓得问个锤子,滚滚滚。

好多职场新人问别人问题的时候有几个毛病,一是从不先自己好好思考,没把自己带入到问题里面就到处问人;二是喜欢抛一个模棱两可或者笼统的问题,指望别人给他头头尾尾指导一遍,最好亲自动手示范一遍。结果是自己不会思考,问多别人很烦,个别大佬甚至会叼你。别不爱听,事实就是如此!

回到问题本身,假设你现在的情况如下:

1、公司技术缺乏(小公司确实也存在部分开发和管理不规范的问题,产品能用就好),这种情况只能通过自己学习提高,补充专业知识,学习和提高做事和解决问题方法,学会规范化流程设计等等,互联网这么发达的时代,想学习了解这些东西不难,毕竟波老师的电影大部分男生硬碟都塞满的!

2. 公司有大佬,要学会自我思考,和请教别人方法,大佬也是从菜鸡出道,相信不是人人都不理你。从大佬们身上学习做事和解决问题的方法,同时自己业余时间多学习提高自身的专业知识;

3、跳槽到大公司,接触更规范和专业的环境提升自己,同时自己业余时间学习提高自己。

还有问题的话,请关注我吧


就你的描述来看,感觉你现在没有形成自己学习的方法论,其实这个东西很重要,就是你平常收藏的一些网站和常用的学习工具,这个东西我是在读研的时候慢慢掌握的,就是自己的核心竞争力,我觉得这些东西你要自己找找,自己摸索吧,一般人都不会分享出来的(包括我),小公司的成长确实觉得前途渺茫,我在小公司呆过两个月就走了(做激光器的)后面去了紫光展锐,然后又读研来了,现在觉得清晰了很多,其实知乎现在还有很多宝,看你怎么搜索啦,加油!


我目前差不多就是这么个环境啊,我最初做的是嵌入式硬体,然后开始做stm32的程序编写(硬体一直干著,都做),由于工作需要偶尔也谢谢fpga的程序。目前在找时间学linux和cortex-a的程序编写。

要说提高,首先自己得想学,然后借鉴公司做的项目,每个自己负责的部分多思考,在改善功能的同时每次加一些自己没做过的,用以学习提升。毕竟没有公司项目的刺激,自学还是太慢坚持了。嵌入式软体和硬体可以分,到最好别分的太细,这个方面多了解是可以互相促进的。比如我在学习了程序编写后就明白了硬体可以如何更好的变通和设计。提高技术还是要自己多学多动手,现在网上资料这么多,想学还是很好找资源的。


夯实语言基础,可以多关注一些开源的项目,并且动手做做,研读代码,同时记得记笔记总结,现在也有很多人会写些公众号文章,其中不乏优质干货文章,融入社区积极参与讨论,看看业界人士都在做什么


嵌入式就是这个样子啊,教程不多。

很多问题靠查datasheet和实测来解决。

不过说实话,我如果是你的话,会学FPGA,个人感觉比玩ARM-LINUX的,cortex-M系列的技术深一点,仅限个人感觉。


找准方向,接这方面的活。干就完了。小公司可能没有大神带,那只能自己磕了,想要哪方面发展,只能自己探索了。大公司也靠运气,比如,大神是否带你。。。,不带的话,也得自己磕。唉,说白了,找准方向,坚持不懈,抓住机会。


开始最好能去大厂历练几年,跟著几个项目走一遍。小公司面窄且没有技术积累,建议看机会跳槽。


推荐阅读:
相关文章