电子工程师超全面试攻略
说今年的就业形势不好,电子工程师找工作难,可身边有的朋友还是能在这种情况下找到适合自己的工作,每次面试都拿到了offer!他们究竟是如何做到的呢?原来他们准备的比较充足,作为电子工程师面试前需要准备什么内容呢?今天就来分享给大家!
1. 基础篇(主观题)1、你认为你从事研发工作有哪些特点?
2、说出你的最大弱点及改进方法?
3、说出你的理想,你想达到的目标?你认为自己五(或十年)以后会怎么样?
4、请谈谈对一个系统设计的总体思路。针对这个思路,你觉得应该具备哪些方面的知识?
5、描述过去一年中您参与的最具挑战性的工程项目,你觉得项目的挑战点是什么?
6. 你如何与最新的技术保持同步?
2. 专业问题篇
1、同步电路和异步电路的区别是什么?
同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因而所有触发器的状态的变化都与所加的时钟脉冲信号同步。
异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,这有这些触发器的状态变化与时钟脉冲同步,而其他的触发器的状态变化不与时钟脉冲同步。
2、什么是"线与"逻辑,要实现它,在硬件特性上有什么具体要求?
将两个门电路的输出端并联以实现与逻辑的功能成为线与。在硬件上,要用OC门来实现,同时在输出端口加一个上拉电阻。由于不用OC门可能使灌电流过大,而烧坏逻辑门。
3、解释setup和hold time violation,画图说明,并说明解决办法。
Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。如果hold time不够,数据同样不能被打入触发器。
建立时间(Setup Time)和保持时间(Hold time)。建立时间是指在时钟边沿前,数据信号需要保持不变的时间。
保持时间是指时钟跳变边沿后数据信号需要保持不变的时间。
如果数据信号在时钟沿触发前后持续的时间均超过建立和保持时间,那么超过量就分别被称为建立时间裕量和保持时间裕量。
4、什么是竞争与冒险现象?怎样判断?如何消除?
在组合逻辑中,由于门的输入信号通路中经过了不同的延时,导致到达该门的时间不一致叫竞争。
产生毛刺叫冒险。判断方法:代数法、图形法(是否有相切的卡诺圈)、表格法(真值表)。如果布尔式中有相反的信号则可能产生竞争和冒险现象。
冒险分为偏“1”冒险和偏“0”冒险
解决方法:一是添加布尔式的消去项;二是在芯片外部加电容;三是加入选通信号。
5、名词解释:SRAM、SSRAM、SDRAM。
SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。这一点与异步SRAM不同,异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。SDRAM:Synchronous DRAM同步动态随机存储器。
6、FPGA和ASIC的概念,他们的区别。
答案:FPGA是可编程ASIC。ASIC:专用集成电路,它是面向专门用途的电路,专门为一个用户设计和制造的。根据一个用户的特定要求,能以低研制成本,短、交货周期供货的全定制,半定制集成电路。
与门阵列等其它ASIC(Application Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点。
7、单片机上电后没有运转,首先要检查什么?
a、首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是否是电源电压,例如常用的5V。
b、接下来就是检查复位引脚电压是否正常。分别测量按下复位按钮和放开复位按钮的电压值,看是否正确。
c、然后再检查晶振是否起振了,一般用示波器来看晶振引脚的波形;经过上面几点的检查,一般即可排除故障了。
如果系统不稳定的话,有时是因为电源滤波不好导致的。在单片机的电源引脚跟地引脚之间接上一个0.1uF的电容会有所改善。如果电源没有滤波电容的话,则需要再接一个更大滤波电容,例如220uF的。遇到系统不稳定时,就可以并上电容试试(越靠近芯片越好)。
8、什么是同步逻辑和异步逻辑?
同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。
9、你知道那些常用逻辑电平?TTL与COMS电平可以直接互连吗?
常用逻辑电平:12V,5V,3.3V;TTL和CMOS不可以直接互连,由于TTL是在0.3-3.6V之间,而CMOS则是有在12V的有在5V的。CMOS输出接到TTL是可以直接互连。TTL接到CMOS需要在输出端口加一上拉电阻接到5V或者12V。
10、如何解决亚稳态。
答:亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
在亚稳态期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
解决方法主要有:
(1) 降低系统时钟;
(2) 用反应更快的触发器(FF),锁存器(LATCH);
(3) 引入同步机制,防止亚稳态传播;
(4) 改善时钟质量,用边沿变化快速的时钟信号;
(5) 使用工艺好、时钟周期裕量大的器件。
11、锁存器、触发器、寄存器三者的区别。
触发器:能够存储一位二值信号的基本单元电路统称为“触发器”。
锁存器:一位触发器只能传送或存储一位数据,而在实际工作中往往希望一次传送或存储多位数据。为此可把多个触发器的时钟输入端CP连接起来,用一个公共的控制信号来控制,而各个数据端口仍然是各处独立地接收数据。这样所构成的能一次传送或存储多位数据的电路就称为“锁存器”。
寄存器:在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器。由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储 n位二进制码的寄存器。
区别:从寄存数据的角度来年,寄存器和锁存器的功能是相同的,它们的区别在于寄存器是同步时钟控制,而锁存器是电位信号控制。
可见,寄存器和锁存器具有不同的应用场合,取决于控制方式以及控制信号和数据信号之间的时间关系:若数据信号有效一定滞后于控制信号有效,则只能使用锁存器;若数据信号提前于控制信号到达并且要求同步操作,则可用寄存器来存放数据。
12、IC设计中同步复位与异步复位的区别:
异步复位是不受时钟影响的,在一个芯片系统初始化(或者说上电)的时候需要这么一个全局的信号来对整个芯片进行整体的复位,到一个初始的确定状态。而同步复位需要在时钟沿来临的时候才会对整个系统进行复位。
13、多时域设计中,如何处理信号跨时域?
不同的时钟域之间信号通信时需要进行同步处理,这样可以防止新时钟域中第一级触发器的亚稳态信号对下级逻辑造成影响,其中对于单个控制信号可以用两级同步器,如电平、边沿检测和脉冲,对多位信号可以用FIFO,双口RAM,握手信号等。
跨时域的信号要经过同步器同步,防止亚稳态传播。例如:时钟域1中的一个信号,要送到时钟域2,那么在这个信号送到时钟域2之前,要先经过时钟域2的同步器同步后,才能进入时钟域2。
这个同步器就是两级d触发器,其时钟为时钟域2的时钟。这样做是怕时钟域1中的这个信号,可能不满足时钟域2中触发器的建立保持时间,而产生亚稳态,因为它们之间没有必然关系,是异步的。
这样做只能防止亚稳态传播,但不能保证采进来的数据的正确性。所以通常只同步很少位数的信号。比如控制信号,或地址。当同步的是地址时,一般该地址应采用格雷码,因为格雷码每次只变一位,相当于每次只有一个同步器在起作用,这样可以降低出错概率,象异步FIFO的设计中,比较读写地址的大小时,就是用这种方法。
如果两个时钟域之间传送大量的数据,可以用异步FIFO来解决问题。
我们可以在跨越ClockDomain时加上一个低电平使能的LockupLatch以确保Timing能正确无误。
14、给了reg的setup,hold时间,求中间组合逻辑的delay范围。
Setup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提前时钟上升沿(如上升沿有效)T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。时hold time不够,数据同样不能被打入触发器。即delay
15、时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min.组合逻辑电路最大延 迟为T2max,最小为T2min.问,触发器D2的建立时间T3和保持时间应满足什么条件.
建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
Tffpd:触发器输出的响应时间,也就是触发器的输出在clk时钟上升沿到来之后多长的时间内发生变化并且稳定,也可以理解为触发器的输出延时。
Tcomb:触发器的输出经过组合逻辑所需要的时间,也就是题目中的组合逻辑延迟。Tsetup:建立时间Thold:保持时间Tclk:时钟周期
建立时间容限:相当于保护时间,这里要求建立时间容限大于等于0。保持时间容限:保持时间容限也要求大于等于0。
16、说说静态、动态时序模拟的优缺点。
静态时序分析是采用穷尽分析方法来提取出整个电路存在的所有时序路径,计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求,通过 对最大路径延时和最小路径延时的分析,找出违背时序约束的错误。
它不需要输入向量就能穷尽所有的路径,且运行速度很快、占用内存较少,不仅可以对芯片设计 进行全面的时序功能检查,而且还可利用时序分析的结果来优化设计,因此静态时序分析已经越来越多地被用到数字集成电路设计的验证中。
动态时序模拟就是通常的仿真,因为不可能产生完备的测试向量,覆盖门级网表中的每一条路径。因此在动态时序分析中,无法暴露一些路径上可能存在的时序问题。
17、LATCH和DFF的概念和区别是什么?
概念:
电平敏感的存储器件称为锁存器;分高电平锁存器和低电平锁存器,用于不同时钟间的同步。
有交叉耦合的门构成的双稳态存储器件称为触发器,分为上升沿触发和下降沿触发,可认为是两个不同电平敏感的锁存器串联而成,前一个锁存器决定了触发器的建立时间,后一个锁存器决定了触发器的保持时间。
区别:
(1)latch由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时latch保持输出状态。DFF由时钟沿触发,同步控制。
(2)latch容易产生毛刺(glitch),DFF则不易产生毛刺。
(3)如果使用门电路来搭建latch和DFF,则latch消耗的门资源比DFF要少,这是latch比DFF优越的地方。所以,在ASIC中使用 latch的集成度比DFF高,但在FPGA中正好相反,因为FPGA中没有标准的latch单元,但有DFF单元,一个LATCH需要多个LE才能实现。
(4)latch将静态时序分析变得极为复杂。
一般的设计规则是:在绝大多数设计中避免产生latch。它会让您设计的时序完蛋,并且它的隐蔽性很强,非老手不能查出。latch最大的危害在于不能过滤毛刺。这对于下一级电路是极其危险的。所以,只要能用D触发器的地方,就不用latch。
有些地方没有时钟,也只能用latch了。比如现在用一个clk接到latch的使能端(假设是高电平使能),这样需要的setup时间,就是数据在时钟的下降沿之前需要的时间,但是如果是一个DFF,那么setup时间就是在时钟的上升沿需要的时间。
这就说明如果数据晚于控制信号的情况下,只能用 latch,这种情况就是,前面所提到的latch timing borrow。基本上相当于借了一个高电平时间。也就是说,latch借的时间也是有限的。
18、latch与register的区别,为什么现在多用register.行为级描述中latch如何产生的?
Latch(锁存器)是电平触发,Register(寄存器)是边沿触发,register在同一时钟边沿触发下动作,符合同步电路的设计思想,而latch则属于异步电路设计,往往会导致时序分析困难,不适当的应用latch则会大量浪费芯片资源。
19、什么是锁相环(PLL)?锁相环的工作原理是什么?
锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。
在数据采集系统中,锁相环是一种非常有用的同步技术,因为通过锁相环,可以使得不同的数据采集板卡共享同一个采样时钟。
因此,所有板卡上各自的本地80MHz和20MHz时基的相位都是同步的,从而采样时钟也是同步的。因为每块板卡的采样时钟都是同步的,所以都能严格地在同一时刻进行数据采集。
20、基本放大电路的种类及优缺点,广泛采用差分结构的原因。
基本放大电路按其接法的不同可以分为共发射极放大电路、共基极放大电路和共集电极放大电路,简称共基、共射、共集放大电路。
共射放大电路既能放大电流又能放大电压,输入电阻在三种电路中居中,输出电阻较大,频带较窄。常做为低频电压放大电路的单元电路。
共基放大电路只能放大电压不能放大电流,输入电阻小,电压放大倍数和输出电阻与共射放大电路相当,频率特性是三种接法中最好的电路。常用于宽频带放大电路。
共集放大电路只能放大电流不能放大电压,是三种接法中输入电阻最大、输出电阻最小的电路,并具有电压跟随的特点。常用于电压放大电路的输入级和输出级,在功率放大电路中也常采用射极输出的形式。
共集放大电路只能放大电流不能放大电压,是三种接法中输入电阻最大、输出电阻最小的电路,并具有电压跟随的特点。常用于电压放大电路的输入级和输出级,在功率放大电路中也常采用射极输出的形式。
电子通信、嵌入式工程师的面试指南
火哥自从校招找工作到现在,面试过不下50家公司,拿到过不少于30个offer。虽然不能说百战百胜,但是也还算有着较高的面试成功率。这50场以上的面试中,火哥用过不同的简历,尝试过不同的项目介绍技巧,也算颇有心得,今天我们聊聊电子通信,嵌入式工程师面试的那些事。
一、公司面试求职者的目的是什么
《孙子兵法》有云知己知彼,百战不殆,当然百战不殆并不等于百战百胜,而是说在知己知彼的前提下,至少结果不会太难看,哪怕没有打胜战,也不至于损兵折将,一败涂地。
所以要去面试一家公司,首先搞清楚公司面试求职者的目的。很多人说,面试不就是为了招人嘛,当然招人是肯定要招的,但不仅仅这么简单。
不管是校招社招,有一些公司常年好像都在招聘,但是据我了解去面试的人成功率并不高,而且被问到远超当前工作经历的很难的问题时,求职者幼小的心灵遭受打击,这到底是怎么回事呢?其实面试你的公司其目的一般是这几类:
常年挂机等大牛的公司寻找备胎的公司团队大体成形,有缺人的hc名额,但是项目不急的公司急招对口业务项目的公司常年挂机等大牛的公司。
这类公司可能根本不缺人或者暂时没有hc(head count 即部门招聘名额的意思)。但是他们也会长期在招聘网站上挂机,占用前排广告位,因为招聘网站在同行业流量还算大,挂机费用也不贵,挂上职位,能给公司刷存在感,起到广告效应,比电视广告便宜多了。当然如果真的有行业大牛(比如Linus.Tovalds等等)来面试,公司也可能乘机申请特批的hc(一般要CEO签字)挖到大牛。
寻找备胎的公司。
有些公司人员架构基本成形,但是考虑到每年有一定离职率,或者已经给牛人发offer但是不确定牛人一定会来,所以有可能接下来会继续邀请你面试,虽然可能面试过程你发挥不错,问题都答出来了,聊的挺开心,但是最后由于牛人按时报到或者今年离职率低,没有腾出hc, 最后没有给你offer,其实这也是经常发生的,所以各位求职者没有拿到正式offer之前,不要掉以轻心,不要抱有各种幼稚幻想,该继续面下一家,该干嘛继续干嘛。
团队大体成形,有缺人的hc名额,但是项目不急的公司。
这种公司也会经常出来邀请人面试,但一般难度会有点高,也会有点挑剔或者说谨慎,因为就目前公司人员配置,可能基本能完成项目,但是可能会有点赶,招你过来可以起到锦上添花但不是雪中送炭的作用,可能会更加看重你未来给公司带来的潜力,而不是对当前公司平台,业务的熟悉程度。这种公司可能会在面试的时候,用更多不常用的基础知识考察你的潜力,最后给最满意的候选人发offer,属于慢慢挑的公司。
急招对口业务项目的公司。
顾名思义,公司非常缺人,非常急,希望你一周之内就能到岗(这时裸辞已经离职的可能比在职的反而有优势)。这种公司招人,可能就不太管你基础,潜力这些东西懂不懂,上来的问题一般就是你熟不熟悉某某平台,有没有用过XX芯片,如果没有就基本over了。
所以面试胜败乃兵家常事,火哥这种全球一流公司的老油条,也有面试小公司翻船的经历,所以各位小伙伴面试求职,一定要保持良好心态,胜不骄败不馁,不要一点小的失败,被面试官鄙视两句就上纲上线,觉得自己无能,其实面试官里面也有很多傻逼的,很多时候面试失败并不是你的错,因为不同公司面试你的目的有时候你并不清楚。
当然,回到常规的面试流程,公司邀请你来面试,可能是希望多了解你的长处,看看你的长处能不能在公司对应的岗位上产生价值(当然不排除少数公司出一些难题,打击你的信心,让你不敢要太高的薪水)。
由于现代城市社会,都是陌生人社会,人和人之间,如果没有机会共事过一份事业,彼此之间是很难有信任感的,尤其是技术人员之间的信任感更低(其实体育领域也是要有信任感,才敢在比赛最后时刻把球传给最信任的队友完成绝杀)。
通过面试的了解(不管是问一些看起来用不上的基础知识还是常用的业务知识),都是在增加用人部门和求职者之间的了解和信任,只有你有足够的技术说服力,让面试官信任你的能力,对方才愿意把重要的工作交给你。
本文要聊的主要也是这种陌生人面试(一般曾经共事过的同事再次搭档,走走流程就好了,不用做那么多算法题,因为共事的过程能够给他们带来足够的信任),在这种陌生人面试的模式下,不管看重学历,大厂背景,还是算法内核等基础知识,业务知识项目经验等等,都是增加信任感的一个媒介,不同面试官对这些东西权重不一样,但是本质上还是考查你这个人值不值得信任,进而分配工作任务,有没有可能最后把事情搞砸。
二、如何准备简历
简历是找工作的第一关,能否写好简历直接决定是否有面试邀请。火哥的准备简历有这几点窍门,所以有着较高的面试邀请率:
简历要有公司和行业的针对性使用云盘来保存简历技术词汇要通用,关键词加粗GitHub、技术博客等展示技术能力的链接关于有用的证书是否让猎头帮忙推荐简历简历要有公司和行业的针对性
电子通信,嵌入式相关的行业其实很多,不同行业不同公司看重的项目和基础技能其实是不一样的(比如你做视频相关的开发去面试语音技术相关的公司,对方对视频相关的项目经验不太了解或者兴趣不大)。所以去面试不同行业的公司,简历要有针对性,但是维护太多版本的简历又很累,而且简历简历,尽量简单(不超过2页),一般2页之内可能记录不下你做过的所有项目和技能信息。
所有火哥一般会有一个基础版的简历,里面记录了所有工作以来做过的项目相关的东西,但是这份简历一般不会直接投出去。除了基础版简历,火哥还会准备三份岗位版简历(针对视频开发,通用嵌入式驱动开发,通用嵌入式应用开发),每份简历里的项目经历都可以从基础版简历里面复制粘贴相关的项目,去除无关的项目。
如果遇到你特别中意的公司和岗位(dream company),那么就为这家公司的岗位专门修改一份简历。但是一般情况下,三份不同的岗位版简历根据JD描述,投递到不同的岗位。
使用云盘来保存简历
基础版和岗位版的简历最好在云盘上统一管理和修改,因为你world pdf文件,在不同的电脑和U盘上拷来拷去,久而久之你会搞乱,可能也分不清哪个盘上的简历是最新的,这就可能出现投递错误简历的尴尬,所以最好用云盘管理更新最新的简历。
技术词汇要通用,关键词加粗
一份简历是否会收到面试邀请,最后做决定有可能是HR也有可能是用人部门。不同公司情况不一样,不能一概而论,所以在简历中描述技术相关信息,请不要用太多私有,冷门特殊的技术词汇(比如有些小伙伴简历中写负责AL006设备的CD0x2协议的开发,不是细分专业领域,鬼知道你在开发啥)。
火哥这里有技术项目介绍的例子,里面通用的技术词汇与开发平台全部标记起来,让面试官和HR一眼就能看清楚重点。其实面试官和HR真正看简历也是挑关键词看,而不是把你的项目从头看到尾,研究你做了什么技术,所以标记出关键词,让HR或者用人部门快速知道你是否值得邀请。
GitHub、技术博客等展示技术能力的链接
简历只能简单的介绍一些工作经历,但是如果面试官对你有兴趣,想更加深入了解你做了什么,这个时候,github和技术博客是非常好的技术和能力的证明。毕竟面试的时间有限,要通过1个多小时的面试了解一个人全面的能力并不现实,所以很多面试官面试前后还会翻阅你的github和博客,乃至最后比较候选人,选择困难的时候,GitHub和博客也是一个有力的参考(毕竟你不只是能完成工作就行,很多时候好公司招人名额有限,你需要与同样合适的人竞争岗位,那用什么证明你更优秀呢?)。
我了解到很多有经验,有技术的工程师,由于没有github和博客来宣传自己的技术,只通过短短一个小时的面试,没有办法把自己的技术展现完全,最后面试官不是很信服,反而选择了技术不如他,但是有博客和github能证明技术的候选人。
关于有用的证书
电子通信、嵌入式等靠实际技能吃饭的行业,有用的职业证书可能不多,但是如果你从事网络工程师相关的工作,思科或者华为认证还是有必要的,其它简历上需要具体咨询相关岗位有经验的老鸟。
另外基本的一点就是英语六级(CET-6)证书,这个对985 211学历背景的童鞋,CET-6应该属于标配。但是普通一二三本工科专业,据我了解,CET6过级率应该不高,平均不到20%。但是如果要面试行业内的外企,三资企业,没有CET6可能会让老板怀疑你的英语沟通能力,但对于已经毕业没有CET6证书的童鞋,补救办法就只能考雅思6.5分以上或者托福对应分数来弥补没有CET6的缺陷。
很多人说找工作看能力不看学历,普通一二三本也有优秀的人才,学历是层次,18岁高考就决定了,后面不考研就没法改变了,但是英语等级证书大学之后还是有机会考取的吧,而且机会很多,如果出身普本,又没有CET6证书,怎样证明你是普本中的优秀人才,和其它普本不一样呢?所以CET6,雅思6.5等证书也是表证明学历普通的你学习态度好的一个点。
是否让猎头帮忙推荐简历
关于猎头岗位,一般猎头推荐的都是薪资较高的中高端岗位(这样猎头提成高),猎头推荐有这么几个优势:
猎头接触过这个岗位的很多候选人,可能给你更多详细的面试准备信息(因为她更希望客户面试通过)。猎头对这个岗位的薪资了解的信息比你多,在谈价的时候,猎头可以起到抬价的作用(毕竟利益相关)猎头可以帮你获得更多,更快的面试反馈信息,哪怕失败了,也知道具体的原因和失败点。所以在这里,火哥是建议如果有猎头推荐的岗位,尽量找猎头。但是需要注意的是,猎头推荐岗位一般是从自己和客户的利益出发,大部分推荐的是你有很大概率能面试上的岗位,而对你的职业岗位发展和这个行业的发展,以及你是否有机会挑战更好更大的平台其实是不care的,甚至可能为了自己的利益忽悠你去一个并不是很有前景的行业和公司,所以自己分析利弊,决定是否接受猎头推荐。
三、如何准备基础知识的面试
1.为什么社招有经验的求职者还要考察书本基础知识
很多有经验的工程师和我抱怨过,为什么嵌入式面试,还要考一些平时根本用不上的算法,还要根本接触不到的编译器,Linux内核原理。
关于这个疑惑,首先要接受这个事实,有经验的工程师,尤其是非管理岗位的嵌入式工程师(包括初级、中级、高级),在社招需要做笔试题,考察很多算法和操作系统内核原理的知识的客观存在事实。
我参与的面试中,70%以上都有算法和内核原理的考察,尤其是创始人团队是互联网背景出身的情况下,对算法考察更为喜爱,而互联网背景创始人团队在电子通信,嵌入式相关领域招人的公司,往往参考BATH的薪资标准,给得起较高于传统行业的薪资,所以为了高薪就业机会,你必须适应游戏规则,准备算法,Linux内核,系统原理等基础知识的面试。
至于为什么要考察这些,尤其是骨干团队已经成形的公司(上一段1 2 3 类公司都算),希望能通过基础知识测试,摸底候选人的基本功掌握程度,期望招到的候选人,不只是能处理当前的业务工作,而是有更强的发展潜力,能在公司需要的时候,适应公司技术发展的变化,调整自己的技术方向。
因为在现代新兴行业的公司,组织架构,技术方向调整是很常见的事情(火哥工作5年遇到过三次组织架构和分工调整),一般情况下认为,只有基础扎实的人,才能适应不同领域的调整。扎实的内核,算法基础,能帮助你在工作中处理一些可能表面上看不到,埋藏在更加深层的bug,尽管这些问题不会天天出现,一旦出现真要命,因为你平时用的知名的工具,软件,库比如Linux内核,工具链,libc库并不是完全没有bug的。
火哥之前就利用编译链接的基础知识,帮助客户解决过glibc库的版本兼容性问题。在基本扎实的人,一般在解决问题的思路上,不会犯方向性的大错误,能够快速定位到核心的问题。
另外,扎实的基本功,也能增强领导对你的信任感。比如当你知道你乘坐的飞机的设计师和制造师是大专学历出身,给你做临床手术的医生是三本或者大专学历,平时口口声声说看能力不看学历的人,心理会不会产生不信任感,不愿意坐这架飞机,不愿意这个医生做手术呢?同理,如果你的下属有很多基本知识都不知道,你敢把至关重要的客户项目交给他吗?
2、嵌入式工程师如何准备基础知识面试
讲了这么多基础知识面试,但是到底如何准备呢?其实准备基础知识面试没有什么捷径,没有太多投机取巧的方法,只能老老实实针对性的花时间看专业书籍和文章。不要指望完全靠工作经项目的经验来学习基础知识,这就像职业球员一样,不要指望联赛,常规赛的比赛经验来代替平时的速度,力量,耐力训练一样。
工作(比赛)虽然确实有很多实践性,经验性的东西不可能在书本上学到,但是工作(比赛)并不能代替平时的基础知识基本功训练。同样,运动员转会的时候,也会有耐力,速度等基本功测试,就如同工程师跳槽的工程师有基础知识摸底面试。
工程师没有平常的基本功训练,知识很容易遗忘和脱节,就像运动员不注重平时训练,身体状态就会随着年龄下滑明显(想想C罗34岁了还要有健身房专门的力量训练)。
那么基础知识训练该看些什么呢?就嵌入式领域而言,火哥推荐下面这基本经典书籍:
算法:刷完《 算法(第四版)》
上面的例题,有答案的练习题,这样基本能应付大部分算法面试
数据结构: 《数据结构与算法分析 》
计算机必备知识,没啥好说的,老老实实学完。
Linux内核:入门级-- 《Linux内核设计与实现(第三版)》 ,
进阶级-- 《深入Linux内核架构 》,
Linux内核的学习时间花费可能比较长,也有一定难度,只能说任重道远,建议下一份对应版本的内核源码,慢慢啃,花个半年一年总能啃完的。理解内核各种子系统和机制,对嵌入式Linux驱动开发也是大有好处。
编程规范: 《代码大全(第二版)》 , 学习一些编程规范,增加和面试官聊天的谈资。
其它:《程序员的自我修养》, 讲一些编译,链接的知识,
《编程珠玑》:一些面试的技巧性算法速成。
3. 基础知识笔试面试注意点
考虑到很多公司会考察纸上写程序,所以带上自动铅笔和橡皮擦很重要,这能让你纸上写代码的时候便于修改。另外,不适应纸上写程序的,面试前最好找2道题在纸上真实写写,感觉和敲键盘完全不一样,尤其是用墨笔写,更加容易涂涂改改。
四、面试前要和hr确认的信息
面试之前,建议加添加hr微信,问清楚面试的具体地点,以及面试多少轮,流程是怎么样的,大概需要多少时间,这样便于你规划交通和请假的时间(考虑到在职面试的情况)。
另外可以了解公司的基本制度,比如正常情况下几点上下班,一周几天,有没有大小周,是否需要打卡,是否弹性,五险一金的缴纳标准(不少民营企业是以当地最低工资标准缴),医保是不是第一档(注意深圳一档,二档医保的区别)。
你可以通过后面这些信息,判断公司的制度对你是否可以接受,值不值得去一趟。
五、如何通过一些技巧在面试中多多展示自己的长处
很多工程师都有这样的经历,在平时工作中做了很多事情,解决了不少难题,但是却在面试中不知道如何像面试官表达这些东西,或者漏掉了你的很多优秀的闪光点,吃了亏。
其实火哥也在以前的面试中面临同样的难题,明明有解决问题的能力,明明知道很多东西,但是在面试官面前都在把优点隐藏,把缺点放大。
那么之后火哥在面试中做了哪些改进来提高offer率呢?
1. 准备项目PPT介绍系统原理和框架
以前有的小伙伴说,面试把平时的作品带过去,到时面试爱怎么吹就怎么吹。
当然这是不现实的,很多做过的东西是前公司的带不出来,加上面试公司的环境不一定允许你现场展示作品,这个想法不太现实。
不过,带上一个台ipad平板电脑或者小型的笔记本电脑,把你平时做过的主要项目的系统模块框架做成PPT,在面试的时候给面试官讲解展示,我觉得是一个很重要的技巧。
因为简历只是简单介绍你的项目经历,面试官不大可能从简历上一眼就看明白你所做的项目的原理和框架。所以你要准备PPT资料是对简历上项目信息的一个补充,让面试官看懂你做的项目。尽管现代大企业,项目分工细化。
作为基层开发工程师,不太可能整个项目都是你自己独立设计和实现的,总有你不懂的模块,但是在面试准备PPT中,你还是要把整个项目的系统框架画出来,让面试官能够了解整个项目是怎么样的,你在里面做了什么,尽管有些模块你可能没有参与,不懂,可以在聊天的时候对面试官说明,但是根据心理学的一些理论(应该是《思考,快与慢》里面的观点,有兴趣可以读读,增加个人软实力)人脑一般注重的是信息的完整性,而不是一些细节末枝的地方,所以能完整的给出项目系统框图,让面试官对你做的整个项目能够有所了解,即使你有不懂的模块,但也能给面试官带来好感,让他有问题可以交流,而不是制造冷场。
下面是火哥面试时候带的PPT项目和系统软件架构描述的例子:
在这里大家要意识到一点,图片所携带的信息量远比文字来得大,在PPT里尽量少写文字,多画图,用框架图描述你的项目,面试官可能也不会有耐心仔细看你的项目描述文字,如果没有PPT所带的框图,而是直接带着简历去面试,面试官对于自己不熟悉的项目和词汇也会听得云里雾里,不知所云,最后不知道如何提问,尬聊收场。
火哥也是在多次面试深刻领悟到这一点,发现纯语言上的技术交流和沟通,会有许多误解和信息不对称的地方,远不如图片携带的信息量大,所以自己制作项目介绍的PPT,通过PPT引导面试官熟悉你的项目,和你沟通交流,是技术面试里面非常重要的一个环节。
2. 面试前自我排练,培养气场
火哥在面试完和hr总结面试过程的时候,有些hr夸火哥面试气场很好(这里不要脸一下)。其实这个和火哥以前从小参加各种演讲,辩论比赛,以及大学之后参加的科研论坛和项目答辩有关系。
在技术面试中,表现出一种自信和镇定是非常重要的,哪怕你有些问题你确实不懂,但是你的镇定,不慌张,有条有理的气场能给面试官一种靠谱感,让他信任你。
当然如果你从小缺乏这样锻炼的机会,那也不要紧,临阵磨枪,在你做好项目的ppt之后,对着ppt把你的项目从头到尾大声讲一遍,一定要讲出来,实地演练,然后录音,回过头来听录音,自己感觉讲的有些什么不完美的地方,面试的时候还可以修正。
其实每个人,内心的思路、想法和灵感远比他口头表达出来的多,如果只思考而不录音讲出来,锻炼你的表达,你永远不知道你表达的东西和你想到的东西所体现的信息差在哪里。
3. 刻意准备2-3个平时解决的复杂问题的案例
能不能介绍一下你平时遇到的一个比较印象深刻的问题,以及你的解决思路。相信大家面试都遇到过这样的问题,相对于这个问题,其实工作时间越久的童鞋反而越不好答,因为解决的问题太多,时间太久的东西可能忘记,一般最近的问题才容易回想,一时半会选择困难不知道讲哪个问题。
其实这个情况,火哥建议大家做好预案,用百度云盘或者印象笔记,写下你处理过的3个很有代表性的问题,每次面试之前稍微看一下,每次遇到这个问题就拿出准备好的模板应答(为什么要准备3个,因为怕面试官有些方向不熟,聊不下去,让你换一个问题)。
4. 学会和面试官找共同技术话题,提供补充信息,促进面试官多了解你
电子通信,嵌入式相关领域,业务方向很多,面试官的知识不可能面面俱到,做网络的面试官不懂音视频解码,做mcu的面试官不懂协处理器并行加速都是很有可能的。
然而现代社会,行业变迁太快,你不可能限定自己只在一个行业里面找工作,比如做手机wifi就只做一辈子手机wifi,一辈子都在手机行业找工作,不考虑IPC网络摄像头行业,不考虑路由器行业,万一手机行业需求不足,大规模裁员呢,你总得想办法在原来技术可以用得上的新行业找工作。
这样,和不同业务背景的面试官交流,找话题聊下去就是一个非常值得提升的软实力。在和面试官交流的时候,切记不要面试官问一句,你就只答一句,这样如果面试官没有题库的话,过2-3轮基本就会尬聊结束的状态。或者面试官无奈只能让你写算法了。
正确的沟通方式是,面试官提问的问题,哪怕不懂,你也得多回答一些东西,牵涉一些主题相关的技能点,让面试官多了解你的知识技能,引导面试官朝着你懂的方向提问。
举个栗子,我没有语音相关项目经历,当面试官问我语音相关的问题,你懂吗?我的回答不是两个字——不懂,而是说,虽然没有做过语音相关的模块,但是我之前写过AAC音频压缩流和和h264视频压缩流做MP4 muxer封装打包,以及音视频播放同步相关的程序,这样引导面试官像我提问音视频同步的问题,顺利回答出以音频为基准,用pts时间戳做同步。同时也是在暗示面试官,虽然我没做过语音相关的东西,但是对这方面还是有所了解,有一定基础,能马上学习适应。
另外,在介绍自己项目的时候记得延伸理论知识点,让面试官有提问的空间,比如我在介绍在前公司用buildroot做自动化系统构建脚本的时候,不是一句话介绍说我用buildroot搭建了系统自动构建系统就完事了,而是接着补充道,这里面我还做了工具链升级,用硬浮点替换软浮点工具链,还对某些现有的方案做了升级,比如MIPS方案256MB DDR内存升级到512MB DDR内存,并且做了512MB大内存的压力测试,这样通过引申更多的技术关键词,引导面试官提问我ARM硬浮点的基本工作原理,以及如何测速512MB DDR系统的性能等一系列新问题,然后通过这些新问题把自己积累的理论知识展现出来。
要知道你做得应用业务逻辑代码其实都不好提问,大部分情况下都是问你用了哪些库的哪些功能就没了,反而牵涉到内核机制,CPU机制等基本工作原理的东西才好提问,也更好展现技术的深度。
所以你要学会如何引导面试官像原理性问题上提问,同时你也要打扎实自己的技术基本功。
最后祝愿认真读完我的文章的童鞋都找到理想如意的工作。
EDA365——专注电子工程技术
EDA365(http://www.eda365.com/)平台成立于2006年,中国最大的互连设计专业论坛。EDA365整合电子产品开发所需用的设计工具、实际设计知识,以及丰富的工程技术设计和测试案例实践等诸多方面经验,为工程师提供设计培训演练、解疑答惑、就业实习、升级求职以及设计外包等专业服务。专注电子工程师能力提升和价值体现,是最具人气的电子工程师互动社区。
相关问答
电子工程 师 面试 ?在进行面试时,无论是否轮到你进行自我介绍或者回答问题,一定要保持微笑,但是切记不要笑的太假,太开,如果不是很想微笑的话也不要让自己的面部表情看起来非常...
应聘 电子 厂怎么 面试 ?工厂的面试其实很简单,也特别的基础,一般就是填张表格,问些最基本的问题,有些工厂可能让你去产线看下工作环境是否能适应,再跟你谈谈大致的待遇,问你是否愿...
转专业转 电子信息 类的 面试 技巧?转专业面试,要体现出自己的核心竞争力,你要告诉老师你的核心竞争力是什么,为什么要选择你而不是别人。最好学一些电路分析和模电的内容,也许老师面试就问到...
电子信息工程 专业能应聘什么工作 - 妈妈说我不愿听别人说我...1技术支持2产品销售3产品营销4通信公司做工程基站维护网络布线等等5移动联通电信6公司做技术电子信息工程是一门应用计算机等现代化技术进行电子信...
面试 时要学信网的证明,什么证明?面试时要学信网的证明,就是要你提供“教育部学历证书电子注册备案表”。这个可以通过在学信网上生成并打印的。为满足求职招聘、派遣接收、升学(考研、专升本...
与 电子信息工程 有关的央企?与电子信息工程相关的央企很多,例如中国电子科技集团公司及其下属的各个科研所,还有就是中国航天科技集团公司、国家电网公司、中国东方电气集团以及国家的五...
单招 电子 商务专业, 面试 会回答什么问题啊?1、为什么选择做电商运营参考回答:我对这个行业和岗位进行过认真的调查,发现自己对这方面很感兴趣。我相信未来从事这个职业方向会有较好的发展前景,并且也为...
苏州峻凌 电子面试 流程?第一步,公司人事部电话或者邮件通知面试第二步,到了公司先去前台做登记,一般前台会给你一份简历表,让你填一下。填完后,会让安心等待,等人事部门来面试...
想问问 面试 流程是什么,大..._通信 工程 师_帮考网南方电网的面试流程一般分为笔试、面试和体检三个环节。具体流程如下:1.笔试:主要考察应聘者的基本知识和技能,包括专业知识、英语、数学、逻辑等...
去 电子 工厂应聘维修一般都会问些啥问题?1.您是否具有相关的维修经验?如何描述自己的技能和工作经验?2.您对于电子产品有多少了解?对维修工作中常见的问题和故障有哪些了解?3.您是否了解使用维...