首页 > 2022嵌入式秋招总结 / 个人思考
头像
CATWayne
编辑于 2021-11-22 13:28
+ 关注

2022嵌入式秋招总结 / 个人思考

写在前面

其实如果按标签来看,我应该算是偏小众的那部分,既没有出众的能力,也没有丰富的经历经验,所以应该还构不成什么很有说服力的建议。但我还是想着能结个尾,这半年与学生时代相差很大的,接触社会和锻炼自己的经历,在此之前从未有过的功利和世故心态,以及对至今看起来依然迷茫的未来的,一点浅薄思考。

TP-LINK 杭州 嵌入式
在我接触的企业里提前批算是最早的了,那时候牛客网上还都是春招的信息,6.3投递,6.5笔试,6.7线下一面,问了我一堆问题,总共也才十几分钟,因为刚开始面试还没啥准备就有些会有些不会。不过CSAPP学得还算不错,所以虚拟内存、静态链接这些还行,想多说却被“嗯”一声跳下一个问题了…算法这一块还没练过,所以环形链表这种送分题都没回答上来,笔试考到了但是不会,也后悔没有好好复盘笔试。后续6.8和6.9就单纯问项目和杂项了,思考题和手撕倒是没有,也很奇怪;问我交叉编译和toolchain经验我也没有。可能非科班吧,评价我知识比较零散,没有成体系,确实是这样。6.21意向书,感觉表现不太好结果还发了sp,可能还真是传言的只看是否本硕985。后面9月初薪资公布,给的真的非常高。

大华 杭州 C/C++嵌入式方向
7.9笔试,题目全是C++的我不咋会。之后一面很早发了通知,但迟迟没等到电话约具体时间,HR人很好,还帮我催了很多次。都是电话面,7.22一面,问到了const和#define、strcpy和memcpy、fork和vfork的区别,还有为什么快排效率高,递归和循环如何选择这些,马马虎虎回答了,也意识到自己在细节上差得很多。二面则侧重项目了,遇到的困难,整体的框架设计等等,三面就自我评价和如何看待加班这些常规问题。后续给了意向,算是过了。大华面试后恶补了很多,Evernote整理了不少笔记,也有了信心。

这期间还有华为和vivo的提前批,但因为笔试都是编程题,所以放弃了。六月底到七月中旬练了一些,临到上场仍然无所适从,所以挫败感顿生。不少公司将嵌入式也列为纯软开去考查,笔试过了面试手撕可能压力会更大,所以我只能避开这些公司,也寄希望于之后的面试不考手撕。如果能力强的还是多试试会好些,千万不要学我。
放弃华为还有原因是我实在不知道该选什么部门,双选会上加了很多人,但我不擅长打交道,稍微改一下部门志愿立马就会有电话打过来问,让我压力很大,总觉得麻烦别人很不好意思。提前批难度本身就很大,以我的能力基本无望,之后的正式批也一并放弃了。

乐鑫 无锡 嵌入式(应用方案)
因为不是走海投路线,我都是有针对性的,考虑到离家近方面,投递的基本都是江浙一带的岗位,有些公司也就自然放弃了,但现在想想,多投递一些的话,面试的锻炼会很有帮助,但说到底还是要多反思多总结,高频问题的答题模板有了,答案不会差到哪去。
乐鑫的其他岗位都在上海,但考虑到一线的生活成本我不太愿意去。7.6笔试,其他题都还好,但编程题两道题都只写了一半,约等于都没做,没想到7.20还通知了面试。面试官也问到了这个问题,我坦白说算法太差,他出了一道链表重排,我硬着头皮写,估计看不下去了就喊停了,同时语重心长告诉我很看重代码能力。后面就问了我计组这些会不会但又没考具体的知识点。后来流程就一直停在那里,直到9.1发来了感谢信,算是结束。

这期间还投了其他的。7.11投了OPPO的Linux系统岗,提前批没笔试,面试具体啥的就不提了(可以看我另一个帖子),我也不知道该怪公司还是怪那个面试官,反正是被恶心到了。
牛客当时搞的啥活动来着,7.12试试看地投了个沐曦,做GPGPU的初创公司,这些年的风口吧,难度估计很大。7.30笔试,考完都没啥消息,两周后打电话过去问了下进度,立马收获感谢信一封。其实就算过了也不敢去,初创的风险都懂,应届生还是要明白这个身份的价值。
7.14厚着脸皮投了字节的基础架构,凭我这仅仅嵌入式的项目经验自然简历都过不了,但后来被抖音部门的捞起来了,问我想不想转客户端,还强调零基础也可以。字节改了作息,又算大厂,部门很缺人应该容易进,似乎没理由拒绝,但我想做底层系统的开发,客户端则是完全不感兴趣,所以想想还是放弃了。

寒武纪 合肥 系统软件开发
后续转变了思路,芯片厂算是行业上游,技术栈方面的成长要更好些,具体的放到最后再谈吧。当前国内芯片正属于风口和热点,这几年涌现了许多芯片厂,对应届生而言甄别和选择能力要求也就很高了。寒武纪算是国家队,有过华为客户,流片经验不少,创始人技术出身,作为国内AI芯片的先驱而言,很有优势。

7.20投递,提前批没有笔试,8.11面试,考知识点问的不难,印象比较深的问我对Linux了解多少,具体哪方面掌握比较好,我答内存管理,然后把CSAPP那一章差不多论述了个大概,觉得还挺轻松,毕竟这样的话就不用费脑子想怎么把问题引导到自己强项上去。二面8.18,问了系统上电后第一条指令是什么,我一时有点懵,反问是不是Bootloader相关的,他说不是,我就不知道该怎么说了。后来想想,可能问的是CPU维持RESET直到供电稳定这一条,跳转应该是在之后。后面问我Linux怎么学的,我说了宋宝华老师驱动详解那本,然后突然问学到了哪,我只记得第七章,但是标题忘了记成了中断,就问我软中断有哪些,我才发现记错了;又问我信号量和互斥量区别,回答本质区别是同步和互斥,然后就笑着让我再好好看看,很尴尬,可能是要我回答1和n的区别。后面发现中断在第十一章,第七章是并发控制,主要讲锁的,于是又赶紧把这两章好好补了一下。
原本自觉是凉了,但没想到隔了两周9.2还能有HR面。常规问题,问了对寒武纪的了解以及方向选择问题这些。结束说当晚发测评链接,之后大概9.15统一发意向,结果月中改月底,月底改节后,节后又没消息。好巧不巧在我三方网签完的当天下午突然打来电话谈意向,也已经晚了。虽然拖了很长时间确实印象有点坏,但我并不是出于这个原因拒签,主要还是出于稳定性的考虑。公司目前还没实现盈利,研发投入占比很大确实是一大问题,没办法避免,但IP、加速卡、边缘计算都有涉及,又新建了搞智能驾驶的行歌,在我看来似乎商业模式不够明确,也算其一吧。不过秋招结束时思元370恰好出来,说明技术实力还是很强的。

阿里平头哥-数据中心SoC 杭州 芯片软件
我投递一般习惯直奔感兴趣的企业官网,但是到平头哥官网这就傻了,全是招的技术专家,所以就误以为只招社招,到9月初牛客上看到有校招内推消息才发现是归在阿里达摩院的体系下招聘的。
9.5投递算比较晚了,当天测评,9.11一面,是两个面试官。出了一道for循环计算阶乘的题目,然后问输出,乘数在循环初始时为2,但结束时是1,说明有整数溢出的问题。但是平时没注意过整数溢出,也没复习到这一块,所以我一直纠结于整数溢出和除零一样会报错,答不出来输出结果,面试官不停追问,压力陡增就很慌,最后实在看不下去就告诉答案是0,因为倒数第二次循环乘数溢出为0了。这个时候我才醒悟,然后反应过来乘以偶数其实就是左移操作,所以阶乘结果为0的那次循环应该在此之前。他觉得有道理,然后又追问我具体是在第几次循环,我推了半天没结果,就没了。后面想了一下,每乘一次2就是移位一次,第几次循环其实就是求2的总数,转化之后就是等比数列的求和问题,4字节int类型、32位的话,在第32次时一共左移了31位,所以在第34次循环,也就是34的阶乘就是0,后面循环都是在空跑;34比2的32次方这个数要小得多。反思自己还是基础有欠缺,连基础的数据类型问题都不知道;另外就是临场思考和反应能力较差。

地平线 南京 嵌入式系统软件
地平线做的是智能驾驶和AIoT的芯片,车企客户不少,产品也有好几代,算是AI芯片行业做的非常出色的了。提前批没有笔试,9.18一面,一开始让写了指针数组和数组指针,又让写函数指针,声明写对了但是调用没写出来。问基础知识问了很多,进线程、编译链接、通讯和锁、虚拟内存都有,基本上把我家底都掏空了。其实是因为了解到coding不行,后面就更像是聊天了,想到哪问到哪,也说了应届生其实就看基础知识和coding两项,顺便夸了我基础很扎实,但是代码能力差,最后说还是给我过了。
9.29二面就问项目细节,又出了道智力题。按灯开关问题,第n个人只按n的倍数号码的灯,一共100个灯和100个人,问最后哪几盏灯还亮着。稍微推了一下,发现就是因数分解问题,看灯号码的因数个数是不是奇数,像12就是1、2、3、4、6、12,一共6个,所以最后是灭的,而16是1、2、4、8、16,一共5个,4虽然出现两次但只按了一次,所以最后是亮的;答案就是n的平方。10.11HR面,算是我见过最专业的HR面试了,真的很专业,每一个问题都会解释为什么问,还问到了对前两轮面试官的评价,问优缺点、职业规划、方向思考时候也不是单纯的问而已,还会帮你仔细分析、开导然后给出建议。后面了解到南京可能更偏向于做智能座舱的业务,我不太感兴趣。后面有了更满意的选择,再打电话问意向的时候已经签了三方了,就不再考虑了。

芯原 南京 芯片系统软件
芯原招聘的风格很有意思,笔试链接放在空宣直播间里,意味着参加空宣才能报名笔试,有点像线下宣讲当场笔试,可能因为疫情原因就改成了空宣。空宣9.11,创始人戴博士还详细聊了芯片行业的发展,芯原的商业模式,特意强调笔试和CEO面试会问到这个,应该是为了促进应聘者对公司的深入了解和认同感吧。
9.12统一时间笔试,智力题和专业知识都有考到,全英文的,编程题主要时间不太够就没做多少。做完笔试一直没消息,按以往应该一周内走完流程所以我还以为自己挂了,没想到9.26突然又发来邮件通知面试。后来才知道因为疫情,大多都改成了线上,所以是分批安排的。9.27一下午技术面加HR面,都是线上形式,三轮技术是分别面的,但其实都在旁边听完了。介绍说是SPSD部门,专做芯片软件方面。问的偏向C的基础知识,更像是聊天了,第三个面试官突然问到我简历上用来凑数的,本科一门实践课做的捡网球小车项目,还有何岭松老师教的数字信号分析的一项结课作业,当时是做的寻迹和遥控小车,问到了寻迹的原理和算法。谈到一半,部门总经理即汪总裁接着跟我聊,我就问了他城市选择的问题,在他建议下我把意向城市改到了上海,打算工作一段时间之后再回南京。后面又聊到了行业发展、未来期许、职业规划,收获很多。
HR面还是宣讲的主持人来面的,英文的项目介绍,一塌糊涂;后面就是常规问题了。10.12另外在校外安排了软件专场座谈,给错过笔试的同学现场笔试面试的机会,我就过去聊了会天。碰到了之前面试官,还有校友学姐,收获很多。
CEO面安排在10.13,线上形式,轮流进房间,每个人也只有5分钟样子,就问商业模式和原因。后续签约,给的薪资一般,但公司本身很满意,于是就签了。965不打卡,有补贴和人才公寓,公寓现在就可以申请轮候,能省下不少。上海是总部,南京现在人数一百不到,技术方面支持上海应该会比南京好,所以打算在上海工作一段时间后再回南京,也就不觉得一线压力会很大了。之前因为这个问题错过不少公司,现在还是选择了一线,听起来确实有点匪夷所思。
芯原做IP定制和量产服务,上下游都有参与,芯片业务范围很广,SPSD做的是整体的软件解决方案,BSP、SDK、驱动、算法优化等等,总之全栈的机会很大。我本身更倾向于OS吧,Linux、Chromium OS、Android都有涉及,嵌入式则是FreeRTOS。成立已经20年了,核心技术积累不少,员工离职率很低说明氛围不错,从业务来看和不少大公司都有合作,虽然一直亏损,但商业模式很明确,IP和量产服务的营收上升幅度很大,今年很有可能扭亏为盈,加上科创板支持和风向利好,所以这一点我不用担心。

对于方向的个人思考

研究生做的项目是柔性可穿戴,从芯片选型、电路图PCB布局,再到编程调试、信号采集数据分析都做,但其实重点是在这些之后的柔性方案和工艺设计,这才是研究方向。项目也带给了我一些思考:相对于跟着上游厂商给的芯片技术手册来按部就班地做应用层面的开发,我更倾向于自己做设计,实际参与到底层开发中来,这也是我总觉得自己项目很low的原因,因为真的就芯片组合、API调用这些,协议移植和toolchain都是SDK封装好了的,感觉没啥技术含量,可能方向也不会做很深。当然了,这也只是局限于我自己项目经验得出来的想法,更多还要看个人理解吧。

芯片厂的优势在于,硬软件之间结合很紧,从BSP到中间件、工具链、OS、驱动、算法优化、多媒体框架甚至软件开发都会有涉及,对全栈思维以及技术的培养很有帮助。之所以我很强调全栈能力,是因为全栈能够提供高屋建瓴的视角,对自己设计的整体框架把握程度更高,更高效也更深入。像我做的项目硬软件都有搞,那么每一个模块接线、布局、API我都会很清楚,之后的调试和优化也会很轻松。我本身不太喜欢黑盒,更希望能做到知晓其中的原理。如果不太好理解这个,建议去看看CSAPP那本书的封面图,好好了解它背后的故事和道理,你就差不多有所领悟了。另外就是日后的发展需要考虑到自己的核心竞争力在哪,确保做的工作不会很容易就被新招的应届生替代了,全栈算是一个很好的思路。可能现在就谈这些有些不懂装懂了,但思路应该没错,要有以不变应万变的能力,力求理解背后原理和本质,即“程序员的自我修养”。

目前芯片算是风口热点,政策和资本关注和支持很高,加上AI和GPU这一块很火,舞台很大,因此发展空间很大,但关键在于初创的公司很多,同质化比较严重,对应届生而言要做好选择,不能只盯着薪资和股票,当然风险和机会并存,这是需要有胆量和魄力的。前沿技术方面,目前芯片的性能提升基本是靠异构多核,做并行做异构,做相应的架构设计和算法调优的机会很大;戴博士提到的chiplet可能是日后发展的热点之一,似乎思元370就用到了,可以提前关注一下;指令集架构方面RISC-V算是一个不错的选择,已经出了不少芯片了,国内芯片厂商其实技术都不差,但缺的是生态,这一点从华为开放OpenEuler也可以看出来。芯原是国内的RISC-V产业联盟理事长,本身做设计服务对于推动行业生态建设也很有利。
总之,嵌入式不必仅局限于单片机和RTOS这一块,多接触多思考,内核、驱动和应用三个方向不用多说,与其他如多媒体框架,协议栈,FLC,图形学,AI等相结合发展也未尝不可。

至于学习,CSAPP建议好好看看,尤其是静态链接和虚拟内存两章,还有程序调优一章也很重要;编译链接觉得难以理解的话可以去看俞甲子那本 程序员的自我修养 ,形象具体很多,也比较深入透彻。C语言则是三剑客一套。 M3权威指南 和 深入理解Linux内核 我是做参考书的,驱动开发跟着宋宝华老师的那本驱动开发详解做,碍于时间当然也没做多少。Linux算是加分项,但更多还是看对操作系统原理的掌握程度吧,所以CSAPP一定要学得很透彻。

目前就写这么多吧,其实算是写得比较晚了,三方很早就签了但一直没有时间静下心来好好思考和整理,到这里算是有了个大概。如果还有补充的话我后面还会慢慢更新一些,也欢迎提问留言,不能及时回复还请见谅。不论怎样,我希望大家都能对以后的发展方向有很清楚的认识,不用太着急做选择认死理,鼓励试错,只要最后能找到适合自己的就行。





全部评论

(6) 回帖
加载中...
话题 回帖