昨天,微信上收到一个读者的留言,想咨询一下职业规划,碰巧的是,他非常喜欢驱动相关的工作,刚好碰巧的是,我有这方面的经验,所以很耐心的解答了下,发出来给更多的人看看,希望解答能对更多的人有帮助。
最近我自己确实发生了一些事情,但是呢,这些事情又不能发到公众号上来说,今天有读者在微信群里说,群主最近的文章要不是转发别人的,就是广告,刚好我看见了,我想据理力争的,我也想证明自己没有偷懒,是用心在维护这个公众号的,不过我还是发了一个抱拳的表情回复他,我觉得解释越多,更像是掩盖一些事情,所以回复得越简洁应该是越好的。
问
发哥晚上好,我是一名在读研究生,我关注您的公众号有一段时间了。目前在学习底层驱动,明年六月毕业,今年六月份开始找工作了。我想就驱动工程师这个岗位和职业规划向您请教些问题,您看您方便吗?
学历:本硕双非
目前个人基本技能:
1.熟练掌握C语言,熟悉常用的数据结构与算法,了解C++。
2.熟悉linux常用驱动框架,字符设备驱动框架,块设备驱动框架,总线设备驱动模型等。
3.熟悉keil,codeblocks等编程环境。
4.熟悉51,stm32单片机,有单片机项目开发经验。
5.能利用altium designer画普通4层电路板。
6.能看懂原理图,pcb,芯片手册等,熟练使用示波器,频谱仪等,具备软硬件联合调试的基本能力。
7.英语六级,计算机二级。
8.良好的代码规范,能使用git进行代码版本管理。
接下来需要增加的技能:
1.操作系统概念
2.数据结构与算法,刷leetcode题目
2.linux编程环境
3.arm体系架构
为什么做驱动呢?
本科玩过单片机,但是没有参加过电赛,遗憾。到了研究生,自己做的方向也是和单片机相关,但是感觉找工作的话,只会单片机不太行。所以想转驱动,个人对底层也有一些兴趣。
主要问题有以下几个:
1.驱动工程师有哪些企业可以进,ic原厂对学历要求很高,很难进,我所了解的企业有华为,中兴,紫光展锐,海康等,都还是不错的,发哥这边有没有企业可以推荐呢?(比较倾向于天津,北京这块,其他也可以)
2.未来驱动工程师的一个职业走向是怎么样的?晋升管理层?还是做一个/工程师?目前来说,我个人比较喜欢做技术。但是,在一个方向做久了也不太合适,一旦脱离了这个岗位可能就很难再就业吧。
3.项目经验主要有两个,一个是基于蓝牙定位的小程序,一个是基于uwb的室内定位系统,这两个从硬件到软件所有都是自己独立完成的。但是感觉面试的时候没有做过底层驱动相关项目不太合适。目前在学习的韦东山老师第三期,您觉得是在韦东山老师讲解的项目中挑一个项目学习下还是在github上找开源的驱动学习呢?
4.本科专业电子信息工程,目前个人比较欠缺的知识是数据结构,操作系统,arm体系架构相关的,接下来主要补充下这方面的知识。
答
个人职业发展有很多种,因为你的基础比较不错,而且学校也不错,我比较建议你进大企业,但是大企业也分很多种。
因为你比较喜欢做驱动,我跟你说说我这些年摸爬滚打所理解的驱动工程师的工作。
如果在小公司里,一种是小的产品公司,一种是小的方案公司,产品公司有自己的产品,要有自己的业务逻辑,需要适配的驱动比较多,不可能说你一个人只负责一个部分的驱动,如果是小的方案公司,也是一样,不过因为方案公司跟原厂关系比较好,因为方案公司出货量比较大,每个月跟原厂购买非常多的芯片,原厂的支持力度会比较充分,你除了工作写代码,跟原厂沟通也是你一部分的工作,很多时候,事情是协作完成的,一个人从头到尾不需要支持做完一个项目是基本不存在的,除非这个项目比较小,假设你做一个小系统的驱动,假设是stm32做一个时钟系统,因为系统比较小,也就没有驱动和系统的区分,可能有,但是也不会分得那么明确,你工作的时候,驱动要做,业务逻辑也要会写。这时候,你可以理解你就是一个单片机的工程师,简单的完成业务功能,驱动的是非常小的工作量了。
从大量的实战经验中得出,驱动的工作比较小,具体点就是代码量比较少,而且因为业务逻辑不在这里,所以需要更新修改的可能性也比较小,正常一个写好的驱动,不需要支撑新的需求和功能,十来年不修改都没有问题。相对驱动来说,应用就要经常修改业务需求,比如界面,比如提醒方式,比如一个新的业务功能,从这点看,应该不难看出来,应用的人才需求应该比驱动大得多。
但是如果你做一个安卓系统,就需要区分各个层次的开发,因为安卓系统太大了,驱动和应用需要分开,让一个人全部负责对企业来说风险太大了,很多人觉得自己的技术很厉害,只要给点时间肯定能搞定,但是所有的成本里面,时间成本是最高的,特别是在企业里面。
做驱动的同学可以往framework发展,这样薪水会相应的提高很多,有一个大神叫做Gityuan,原来是做驱动的,后来自己研究了框架,转到框架开发了,现在已经在挑战更有难度的东西了。
总结一下,小企业的驱动很像救火队,哪里需要就要到哪里去,但是也要除开应用相关的工作。
如果是大企业,比如一个芯片原厂,还有手机企业,驱动工程师是只负责一个或者几个模块,如果你负责lcd,你就需要对lcd负责,而且要非常精通,要自己能掌握这个项目的lcd模块,所有跟lcd相关的你都要负责,不要看只是一个模块,深入了看还是非常复杂的,驱动,框架,中间层,应用,还有一些特性化的东西,版本差异化的东西,你都要懂,而且有问题了你能解决,当然了,如果你是手机产品公司,还有芯片原厂企业给你当靠山,如果你是芯片原厂负责这块的fae,那你还有负责研发部分更高级的人给你当靠山,你处在哪个位置,决定你要承担怎样的责任。而这些责任也决定了你能拿多少薪水。
再细分一些,如果你是做camera相关的,可以做驱动,可以做应用,可以做系统,还可以做专门调试camera效果的,每个部分都有不同的人。有的容易上手,有的不容易,比如调试效果,一般人很难上手,因为需要长年累月的积累,而且是越做越值钱的,类比音频,视频,这样也是专有的人才。
大概说了下驱动的工作,说下算法,算法就比较特殊,至少脑子要比较好使,会比较高级的东西,你自己看招聘要求就知道他们应该赚钱比较多,我对这方面不是很了解,看招聘招这方面的人才也比较少。所以我认为既然读了很多的书,那么可以挑战更有难度的事情。
我认识一个篮球球友,是专门做算法移植的,算法也分情况,有的做算法的只负责研究可行性和技术,不对落地负责,就是只对他的算法负责,不考虑能移植到什么芯片和平台上面去,我朋友就专门把博士写的算法落地到芯片上去的,这部分也有对应嵌入式相关的人才需求,而且要对算法本身也要懂。
问
华为最近两年比较难进,我个人来讲,还是比较希望可以进入中兴,紫光展锐等稍微大一点的企业,毕竟在里面接触的东西可能比较前沿。
答
难进不代表不能进,或者说难进代表进了能更有钱,毕竟物以稀为贵嘛。
中兴是我的老东家,如果我现在还留在中兴,我可能会一直留在那里,主要是那里有很多熟悉的同事,这个跟TCL的文化有点像,工作和生活需要有一个契合点,中兴在这方面做得是非常不错的。而且中兴也是一个比较大的平台,从这个大的平台跳出去,可以跳得更高更远,校招的时候很多企业看学历,社招的时候,很多企业看你之前的工作履历,如果你的履历能给你加分,那你找工作肯定比其他同学更加得心应手。
但是平台只能说给你一个好看的背景,至于你自己有多少实力,肚子里有多少墨水,这些东西更加重要,所以不管在什么地方工作或者学习,都需要你不断的充实自己,让自己更加具有竞争力。
但是从个人发展角度看,我更喜欢你去挑战更有难度的岗位,特别你是一个硕士,而且是桂电的学生,桂电在整个行业口碑是非常好的,你完全不要担心自己学校不好而担心被企业卡住,大胆去投递你喜欢的企业,喜欢的岗位。
对于应届生,很多学生对以后的工作其实还没有一个清晰的概念,我觉得校招是一个非常好的窗口,去跟那些面试官多聊聊,去了解他们做什么事情,知道他们做什么事情了,就可以知道需要哪方面的技术了,而这些技术的难度,技术门槛会对标你的薪资。
如果你进入一个普通的企业,可能过了一年,两年,你就需要去外面看新的机会了,因为存在一个问题,你会发现跳槽的同学薪水都上去了,你的薪水还非常低,你内心蠢蠢欲动的蚂蚁就会怂恿你去找新的机会,当你找到一个新的机会后,这个新岗位的薪水决定你能干多久,当然,工作压力和同事的关系也是一方面,但是最直接的关系还是你的薪水。
我最近不是在招人吗,现在已经收到了不下6份简历了,我跟几个候选人也有沟通,我希望他们能有自己的期望薪水,这个期望薪水最好是能hold住两年到三年不跳槽,因为对于企业来说,员工跳槽企业损失是非常大的,对于员工来说,适应一个新的岗位也是需要时间的,那么为什么就不把自己的需求说明清楚,明确自己的需求呢,如果自己的期望没有达到,不要稀里糊涂就跳槽了,后面干得不开心是一方面,又要寻找新的机会也是挺麻烦的。
我一直鼓励在校生多巩固自己的基础知识,不要着急给自己定方向,因为前面很多丰富多彩的岗位,你可能还不知道喜欢什么呢,就比如,还在上中学的时候,你妈妈告诉你,年纪小不要着急找女朋友要专心学习哦,上大学了还有更好的姑娘等着你呢,好像真的是一样的道理。
我有认识做嵌入式转app开发的,认识做嵌入式转后台开发的,但是到现在为止,还没有遇到做其他开发转嵌入式开发的,嵌入式这个东西,说起来容易,真的也不难,但是真的要入门,学会,精通,需要花费的时间更久。
本来想列举一些企业,后来想想没有必要,能去校招的企业本身就是比较有实力的,像华为,步步高系这类的一直很强势,属于去赚钱的好企业。
虽然说的不一定正确,但字字肺腑之言~
扫码或长按关注
立志做一个有意思的公众号,做一个有意思的人
回复「篮球的大肚子」加入技术群聊