火哥从校招找工作开始到 2019 年 4 月 26 日这段时间,面试过很多家公司,数量不少于 50 家。他也拿到过不少 offer,数量不少于 30 个。虽然不能做到每次面试都成功,但整体面试成功率还算比较高。在这 50 多场面试里,火哥使用过各种不同的简历,尝试过不同的项目介绍技巧,对此他很有心得。今天我们来聊聊电子通信、嵌入式工程师面试的相关事宜。
一、公司面试求职者的目的是什么?
《孙子兵法》有云:知己知彼则百战不殆。当然,百战不殆并非百战百胜,而是意味着在知己知彼的前提之下,至少结果不会太糟糕。即便没有打胜战,也不会出现损兵折将、一败涂地的情况。
要去面试一家公司,首先需弄清楚公司面试求职者的目的。许多人认为,面试的目的就是为了招人。诚然,招人是必然要进行的,但这并非仅仅如此简单。
校招社招中,有些岗位常年似乎都在招聘。然而据我所知,去这些岗位面试的人成功率并不高。并且在面试中,经常会被问到远超当前工作经历的很难的问题,这会让应聘者幼小的心灵遭受打击。那么,这到底是怎么回事呢?其实,面试你的公司其目的一般分为以下几类:
面试的胜败是很常见的事情。像火哥这样在全球一流公司工作过的人,也有在面试小公司时失败的经历。所以各位小伙伴在面试求职时,一定要保持良好的心态,成功了不要骄傲,失败了也不要气馁。不要因为一点小小的失败,被面试官鄙视两句就把事情看得很严重,觉得自己没有能力。实际上,面试官中也有很多不称职的人。很多时候,面试失败并不是你的错,因为不同公司面试你的目的有时你并不了解。
当然,回到常规的面试流程中。公司邀请你来面试,其目的可能是希望能多了解你的长处。同时,也想看看你的长处在公司对应的岗位上能否产生价值。当然,不排除有少数公司会出一些难题,以此来打击你的信心,让你不敢要太高的薪水。现代城市社会是陌生人社会。在这样的社会中,人与人之间如果没有一起共事过一份事业,彼此就很难产生信任感。尤其是技术人员之间,他们的信任感更低。其实在体育领域,也需要有信任感,才敢在比赛最后时刻把球传给最信任的队友去完成绝杀。
通过面试进行了解,无论是询问一些看似用不上的基础知识,还是常用的业务知识,这都在增加用人部门与求职者之间的了解和信任。只有你具备足够的技术说服力,让面试官信任你的能力,对方才会愿意将重要的工作交给你。
本文主要聊的是这种陌生人面试,一般曾经共事过的同事再次搭档时,只需走流程,不用做很多算法题,因为共事过程能带来足够信任。在这种模式下,无论是看重学历、大厂背景,还是算法内核等基础知识、业务知识项目经验等,都是增加信任感的媒介。不同面试官对这些东西的权重不同,但本质上都是考查你这个人是否值得信任,进而分配工作任务,看是否有可能把事情搞砸。
二、如何准备简历?
简历对于找工作来说是第一关。能否写好简历,会直接决定是否能获得面试邀请。火哥在准备简历方面有以下几点窍门,因此他有着较高的面试邀请率。
2.1 简历要有公司和行业的针对性
电子通信以及嵌入式相关的行业有很多。不同的行业和公司,所看重的项目以及基础技能各不相同。例如,若你从事视频相关的开发而去面试语音技术相关的公司,那么该公司对视频相关的项目经验可能不太了解,或者兴趣不大。
所以面试不同行业的公司时,简历需有针对性。然而,维护过多版本的简历会让人感到疲惫。简历应尽量简单,最好不超过 2 页,因为通常 2 页之内可能无法记录下所有做过的项目和技能信息。因此,火哥一般会准备一个基础版的简历,其中记录了从工作以来所做项目的相关内容,但这份简历通常不会直接投递出去。火哥会准备三份岗位版简历,一份是针对视频开发的,一份是针对通用嵌入式驱动开发的,一份是针对通用嵌入式应用开发的。除了基础版简历外,这三份岗位版简历里的项目经历都可从基础版简历中复制粘贴相关项目,并去除无关项目。若遇到特别中意的公司和岗位(dream company),就为这家公司的岗位专门修改一份简历。一般情况下,会有三份不同的岗位版简历。这些简历会根据 JD 描述,投递到不同的岗位。
2.2 使用云盘来保存简历
基础版和岗位版的简历最好统一管理和修改,放在云盘上。因为将 word pdf 文件在不同电脑和 U 盘之间拷来拷去,时间长了容易搞乱,也可能分不清哪个盘上的简历是最新的,这样就可能会出现投递错误简历的尴尬情况,所以最好利用云盘来管理和更新最新的简历。

2.3. 技术词汇要通用,关键词加粗
一份简历是否能收到面试邀请,最终做决定的可能是 HR,也可能是用人部门。不同公司的情况有所不同,不能一概而论。因此,在简历中描述技术相关信息时,不要使用过多私有的、冷门特殊的技术词汇。比如,有些小伙伴在简历中写负责 AL006 设备的 CD0x2 协议的开发,但如果不是细分专业领域,别人可能根本不知道他们在开发什么。
火哥存有技术项目介绍的范例,其中将通用的技术词汇以及开发平台全部予以标记,以便面试官和 HR 能够一眼明晰重点。实际上,面试官和 HR 在审阅简历时,主要是挑选关键词来查看,并非将你的项目从头到尾进行阅读,以探究你运用了何种技术,故而标记出关键词,可让 HR 或者用人部门迅速知晓你是否值得被邀请。
2.4 GitHub、技术博客等展示技术能力的链接
简历仅能简略地介绍部分工作经历。倘若面试官对你怀有兴趣,想要更深入地知晓你具体做了哪些事情,那么在这种情况下,github 以及技术博客是极为出色的技术和能力的证明。因为面试时间有限,仅通过 1 个多小时的面试来了解一个人全面的能力不太现实。所以,很多面试官在面试前后会翻阅应聘者的 github 和博客。甚至在最后比较候选人、面临选择困难时,GitHub 和博客也是一个很有参考价值的因素。毕竟,在很多情况下,公司招人名额有限,应聘者需要与同样合适的人竞争岗位,而 GitHub 和博客可以用来证明自己更优秀。)。
我了解到有很多工程师,他们有经验且有技术。然而,由于他们没有 github 和博客来宣传自己的技术,仅仅通过短短一个小时的面试,无法将自己的技术完全展现出来。最后,面试官不是很信服他们,反而选择了技术不如他们,但有博客和 github 能够证明技术的候选人。
2.5 关于有用的证书
电子通信、嵌入式这类靠实际技能谋生的行业,有用的职业证书或许不多。然而,倘若你从事网络工程师相关工作,那么思科认证或者华为认证就有其必要性。对于其他方面,在简历上则需要具体向相关岗位有经验的老员工进行咨询。
另外有一个基本的方面,那就是英语六级(CET-6)证书。对于拥有 985、211 学历背景的同学来说,CET-6 通常应该是必备的。然而,就普通的一、二、三本工科专业而言,据我所知,CET6 的过级率应该不是很高,平均还不到 20%。但是如果要面试行业内的外企和三资企业,没有 CET6 可能会使老板对你的英语沟通能力产生怀疑。对于已经毕业且没有 CET6 证书的同学来说,补救的办法就只能是通过考取雅思 6.5 分以上或者托福的对应分数,以此来弥补没有 CET6 的缺陷。
很多人认为找工作应看重能力而非学历,普通的一二三本院校也有优秀人才。学历的层次在 18 岁高考时就已确定,之后若不考研便难以改变。然而,大学之后仍有考取英语等级证书的机会,且机会众多。如果出身普通本科,又没有 CET6 证书,那如何证明自己是普本中的优秀人才,与其他普本学生有所不同呢?所以 CET6 证书是能证明你学习态度好的一个点,雅思 6.5 等证书也是如此。
2.6 是否让猎头帮忙推荐简历
猎头岗位方面,通常猎头所推荐的多为薪资较高的中高端岗位,因为这样猎头能获得较高的提成。猎头推荐存在以下几个优势:
所以在这里,火哥是 建议如果有猎头推荐的岗位,尽量找猎头。需要注意的是,猎头推荐岗位主要从自身和客户利益考量。他们大多推荐那些你有较大面试概率能通过的岗位。然而,对于你的职业岗位发展、行业发展以及你是否有机会挑战更好更大的平台,猎头其实并不在意。甚至,他们可能为了自身利益,诱导你进入一个并非很有前景的行业和公司。因此,你要自己分析利弊,然后决定是否接受猎头的推荐。
3.1 为何社招中有经验的求职者还需要对书本基础知识进行考察呢?
很多有经验的工程师向我表达过他们的抱怨,他们觉得嵌入式面试中,为何要考查一些在平时根本不会用到的算法,以及一些根本接触不到的编译器和 Linux 内核原理。
对于这个疑惑,首先要承认有这样一个事实:有经验的工程师,特别是非管理岗位的嵌入式工程师(包含初级、中级、高级),在社招时需要做笔试题,以考察很多算法和操作系统内核原理的知识。在我参与的面试中,超过 70%都有对算法和内核原理的考察。尤其当创始人团队是互联网背景出身时,对算法的考察更为重视。而那些互联网背景的创始人团队在电子通信、嵌入式相关领域招人时,往往会参照 BATH 的薪资标准,能够给出高于传统行业的薪资。所以,为了获得高薪就业机会,你必须适应这个游戏规则,准备好算法、Linux 内核、系统原理等基础知识的面试。

考察这些的原因是什么呢,尤其是对于骨干团队已经成形的公司(上一段 1、2、3 类公司都包含在内)。希望能够通过基础知识测试,来摸清候选人的基本功掌握情况。期望所招到的候选人,不仅仅能够处理当前的业务工作,还具有更强的发展潜力,能够在公司需要的时候,适应公司技术发展的变化,并且调整自己的技术方向。在现代新兴行业的公司里,组织架构和技术方向的调整是较为常见的现象。火哥在工作的 5 年中,就曾遇到过三次这样的组织架构和分工调整。通常情况下人们认为,只有那些基础扎实的人,才能够适应不同领域的这种调整。
扎实的内核以及算法基础,能够在工作中处理那些可能表面上难以察觉、潜藏在更深层次的 bug。这些问题虽然不会每天都出现,但一旦出现就会非常麻烦。因为你平时所使用的知名工具、软件和库,如 Linux 内核、工具链、libc 库等,并不是完全没有 bug 的。之前,火哥就凭借编译链接的基础知识,帮助客户解决了 glibc 库的版本兼容性问题。一般来说,基础扎实的人在解决问题的思路方面,不会出现方向性的重大错误,并且能够迅速找到核心问题所在。
另外,扎实的基本功有助于增强领导对你的信任感。例如,倘若你得知乘坐的飞机的设计师和制造师是大专学历出身,为你做临床手术的医生是三本或者大专学历,那些平时口口声声说看能力不看学历的人,内心是否会产生不信任感,是否会不愿意乘坐这架飞机,是否会不愿意让这个医生做手术呢?如果你的下属不知道很多基本知识,那么你敢把至关重要的客户项目交给他吗?
3.2 嵌入式工程师如何准备基础知识面试
讲了这么多关于基础知识面试的内容,然而到底该如何去准备呢?实际上,准备基础知识面试是没有捷径可走的,也没有太多投机取巧的办法,只能老老实实地花费时间有针对性地去阅读专业书籍和文章。
不要指望仅靠工作或项目的经验去学习基础知识。就如同职业球员不能指望联赛、常规赛的比赛经验来替代平时的速度、力量、耐力训练。工作(比赛)确实存在很多实践性、经验性的东西,书本无法涵盖,但工作(比赛)不能替代平时的基础知识基本功训练。同样,运动员转会时,会进行耐力测试、速度测试等基本功测试,就像工程师跳槽时会有基础知识摸底面试。如果工程师没有平常的基本功训练,知识很容易遗忘和脱节;就如同运动员不注重平时训练,身体状态会随着年龄明显下滑(比如想想 C 罗 34 岁了还需要在健身房进行专门的力量训练)。
那么在嵌入式领域,基础知识训练该看些什么呢?火哥推荐以下这些经典:
3.3 基础知识笔试面试注意点
很多公司会考察纸上写程序,因此带上自动铅笔和橡皮擦很重要,这样在纸上写代码时便于修改。同时,那些不适应纸上写程序的人,在面试前最好找 2 道题在纸上真实地写一写,因为感觉和敲键盘完全不一样,尤其是用墨笔写,更易于涂涂改改。
四、面试前要和 hr 确认的信息
面试之前,建议添加 hr 微信。这样可以问清楚面试的具体地点,也能了解面试的轮数以及流程情况,还能知晓大概需要的时间。便于你规划交通和请假的时间,尤其是在在职面试的情况下。另外可以了解公司的基本制度,其一,要知道正常情况下的上下班时间,包括几点上下班;其二,要清楚一周的工作天数;其三,需明确是否有大小周;其四,要弄明白是否需要打卡;其五,要了解是否具有弹性;其六,要知晓五险一金的缴纳标准(不少民营企业是以当地最低工资标准缴纳);其七,要注意医保是否为第一档(要留意深圳一档、二档医保的区别)。通过这些信息,你可以判断公司的制度对你而言是否可以接受,是否值得去一趟。
五、如何通过一些技巧在面试中多多展示自己的长处
很多工程师都曾有这样的经历。在平时的工作里,他们做了许多事情,也解决了不少难题。然而,到了面试时,他们却不知道该怎样向面试官表达这些,甚至还会遗漏自己很多优秀的闪光点,从而吃了亏。
其实火哥在以前的面试中也曾遭遇同样的难题,他明明具备解决问题的能力,也明明知晓很多事物,然而在面试官面前,他却将优点隐藏起来,同时将缺点放大。
那么之后火哥在面试中做了哪些改进来提高offer率呢?
5.1 准备项目PPT介绍系统原理和框架
有的小伙伴曾经说,面试时可以把平时的作品带过去,在面试的时候想怎么吹嘘就怎么吹嘘。然而,这是不切实际的。因为很多自己做过的东西属于前公司,无法带出来,并且面试公司的环境也不一定允许你现场展示作品,所以这个想法不太可行。

带上台 ipad 平板电脑或者小型笔记本电脑,将平时做过的主要项目的系统模块框架做成 PPT,在面试时给面试官讲解展示,我觉得这是很重要的技巧。
简历只是简单介绍你的项目经历,面试官很难仅从简历上就立刻看清楚你所做项目的原理和框架。因此,你需要准备 PPT 资料,它是对简历上项目信息的一种补充,能让面试官理解你做的项目。现代大企业项目分工细化,身为基层开发工程师,不太可能独自设计和实现整个项目,总会有不懂的模块。然而在面试准备 PPT 中,你需把整个项目的系统框架画出来,让面试官知晓整个项目的情况以及你在其中的作为。即便有些模块你未参与或不懂,也可在聊天时向面试官说明。根据心理学的一些理论(可能出自《影响力》或《思考,快与慢》,有兴趣可研读以提升个人软实力),人脑通常注重信息的完整性,而非细节末枝。所以能完整给出项目系统框图,让面试官了解你做的整个项目,即便有不懂的模块,也能给面试官留下好感,使其有问题可交流,而非造成冷场。
大家要意识到一点,图片携带的信息量比文字大很多。在 PPT 中应尽量少写文字,多画图。用框架图来描述项目。面试官可能没耐心仔细看项目描述文字。如果没有 PPT 带的框图,直接带简历去面试,面试官对于不熟悉的项目和词汇会听得模糊不清,不明白意思,最后不知如何提问,以尬聊结束。火哥在多次面试中深刻领悟到这一点,他发现单纯进行语言上的技术交流和沟通,会存在很多误解和信息不对称的情况,而图片携带的信息量要比语言大得多。因此,他自己制作了项目介绍的 PPT,通过 PPT 引导面试官熟悉他的项目,与面试官进行沟通交流,这在技术面试中是一个非常重要的环节。
5.2 面试前自我排练,培养气场
火哥在面试结束后与 hr 总结面试过程时,有一些 hr 称赞火哥的面试气场很棒(此处稍作自夸)。实际上,这与火哥此前从小就参加各种演讲、辩论比赛,以及大学之后参加的科研论坛和项目答辩是有关联的。在技术面试里,表现出自信和镇定很重要。即便你有不懂的问题,然而你的镇定、不慌张以及有条有理的气场,能给面试官带来靠谱感,使他信任你。当然,若你从小缺少这样锻炼的机会,那也无妨。临阵磨枪,在你完成项目的 PPT 后,对着 PPT 将你的项目从头到尾大声讲述一遍,务必讲出来,进行实地演练。接着录音,再回过头来听录音,自己感受讲述中有哪些不完美的地方,面试时还能进行修正。其实每个人,内心的思路比他口头表达出来的多。内心的想法比他口头表达出来的多。内心的灵感比他口头表达出来的多。如果只思考而不录音讲出来,不去锻炼表达,那么你永远不知道你表达的东西和你想到的东西所体现的信息差在哪里。
5.3 刻意准备2-3个平时解决的复杂问题的案例
请介绍一下你平常遇到的一个印象较为深刻的问题,以及你的解决思路。大家在面试时都曾遇到过类似的问题。与这个问题相比,实际上工作时间越长的人反而越难以回答,因为他们解决过的问题太多,时间太久远的事情可能会被遗忘,通常最近的问题才更容易回想起来,所以一时半会儿会出现选择困难,不知道该讲哪个问题。
其实在这种情况下,火哥建议大家预先做好准备。可以利用百度云盘或者印象笔记,将自己处理过的 3 个非常有代表性的问题记录下来。每次在面试之前,稍微浏览一下这些问题。每当遇到这个问题时,就拿出事先准备好的模板进行回答。之所以要准备 3 个问题,是因为担心面试官对某些方向不熟悉,导致无法继续交流,从而需要更换问题。
学会找到与面试官的共同技术话题,为其提供补充信息,以此促使面试官更多地了解你。
电子通信以及嵌入式相关领域,其业务方向较为繁多。面试官的知识难以做到面面俱到,比如做网络的面试官有可能不懂音视频解码,而做 mcu 的面试官也有可能不懂协处理器并行加速。然而在现代社会,行业的变迁极为迅速。你不能将自己局限于只在一个行业中寻找工作。例如,从事手机 wifi 工作的人不能只做一辈子手机 wifi,也不能一辈子都只在手机行业找工作,而不考虑 IPC 网络摄像头行业和路由器行业。倘若手机行业需求减少,出现大规模裁员的情况,你总得想办法在原本的技术能够应用得上的新行业中找到工作。
这样,与具有不同业务背景的面试官进行交流,找到可以聊下去的话题是一项非常值得提升的软实力。在与面试官交流的过程中,一定要避免面试官问一句,你就只答一句的情况。因为如果面试官没有题库,这样进行下去,大概到 2 - 3 轮时就会处于尬聊结束的状态。甚至可能会导致面试官无奈只能让你写算法。
面试官提问的问题,即便你不懂,也应该多回答一些内容,涉及一些与主题相关的技能点,这样能让面试官更多地了解你的知识技能,从而引导面试官朝着你懂的方向进行提问。
举个例子,我没有关于语音方面的项目经历。当面试官询问我语音相关的问题时,你明白吗?我的回答并非是“不懂”这一种情况,而是表明,尽管未曾做过语音相关的模块,然而我之前曾编写过 AAC 音频压缩流以及 h264 视频压缩流来进行 MP4 muxer 封装打包的工作,同时也编写过与音视频播放同步相关的程序。通过这样的方式,可以引导面试官向我询问音视频同步的问题,并且能够顺利地以音频为基准,利用 pts 时间戳来实现同步。同时也在向面试官暗示,我未曾做过语音相关的事物,然而对于这一领域我是有一定认知的,具备一定的基础,能够迅速进行学习并适应。
另外,在介绍自己项目时要延伸理论知识点,给面试官留下提问的空间。例如,当介绍在前公司用 buildroot 做自动化系统构建脚本时,不能仅用一句话说用 buildroot 搭建了系统自动构建系统就结束,而应接着补充,在此过程中还进行了工具链升级,将软浮点工具链替换为硬浮点工具链,同时对某些现有的方案进行了升级,像把 MIPS 方案的 256MB DDR 内存升级到 512MB DDR 内存,并对 512MB 大内存进行了压力测试。通过这样引申更多技术关键词,能引导面试官提问 ARM 硬浮点的基本工作原理以及如何测速 512MB DDR 系统的性能等一系列新问题,然后借助这些新问题将自己积累的理论知识展现出来。
你做得应用业务逻辑代码通常不好提问,多数时候只是问用了哪些库的哪些功能而已,而涉及内核机制、CPU 机制等基本工作原理的内容才便于提问,也更能展现技术的深度。所以你得学会引导面试官朝原理性问题提问,同时也要夯实自己的技术基本功。
最后祝愿认真读完我的文章的童鞋都找到理想如意的工作。