面试经验

因为也是人力资源管理专业出身,所以基于面试者(员工)角度来写这篇文章的时候,其实是左右手互博的感觉。

特殊性说明,本文所描述的岗位背景其实是 嵌入式DSP裸机软件(驱动)开发

注意:下面标灰色的部分都是跟HR工作相关的概念,如果看不太懂可以跳过。

面试流程

技术类岗位招聘通常会遇到 2~3轮面试 和一次 HR提供Offer 的环节,最经典的流程如下:

graph LR
简历投送 --> ID1((HR面)) --> ID2((项目面)) --> ID3((技术面)) --> 拿Offer

面试原则

面试者需要在面试过程中适当包装和美化一下自己的工作经历,但是还是需要秉承着相对诚实的原则。

为什么说是相对诚实的原则

你可以说“自己的工作很难但按时完成”,“自己独立完成”,“自主编写代码” 等等他人较难去鉴别的工作,这些都是一个人工作能力不错的表现。但假如把自己没做过的项目放进去,一旦被问技术面的时候问到细节就会露馅。即使面试时没有露馅,工作时露馅了,大概率也会被面试官知道的。

一个HR有可能是在一家公司专门从事招聘的专员,也有可能是为多家公司做招聘的猎头(专门从事招聘工作的人员,通常是成立一个猎头公司,专门帮其他公司找人才)。一旦技术面的时候夸大自己的工作经验,技术面也会跟HR反馈你的夸大情况,然后你就再也不能通过该猎头或者专员找到其他的工作了,相当于自己白白损失了一个资源口。

而,嵌入式开发之类的技术岗位(目前)是绝对的版本答案之一,企业通过猎头找人才已经是常态,因此绝对不能有这种作死行为。

HR面

由专门/兼职做人力资源的工作人员负责,主要有以下流程:

  1. 说明招聘信息(包括所招聘的岗位的基本要求和职责、企业背景、团队情况和项目情况)
  2. 在职情况(千万不能说自己已经离职,否则你就会很掉价,因为HR会觉得你急于找到新工作而压低你的价格——对,就是你的薪酬,你的卖身一个月的价格,当然也有其他方法可以来试着压低你的薪酬,后面再谈)
  3. 询问面试者的离职原因(以判断该员工是否足够稳定,因为薪酬给的更高的员工其离职后给企业造成的离职成本会更高,因此需要该员工足够稳定,后面详谈如何回答离职原因)
  4. 询问面试者当前的工作内容(以确定该员工与所招聘岗位的匹配度,就是说,面试者目前的工作内容如果和他招聘的岗位的工作内容差异太大,他就不会想要再继续去问了,这点应该比较容易懂吧。当然,面试者也不能明明不匹配就瞎说自己会该工作技能,不然就是坑自己也坑别人,这里尽量坦白一些比较好)
  5. 询问面试者的求职意向及工作意愿(就是会问面试者是否愿意从事本岗,一般到这里如果没有回答“愿意”,都没得聊了)
  6. 询问面试者期待的薪资及目前薪资(这一点在招聘网站看可以看到该企业所招聘的岗位能提供的薪资范围,通常也就是个薪酬区间,后面详谈如何回答这部分内容。询问目前薪资就是来确定你的人力成本,进而探寻能够压缩你人力成本空间的可能性的。)
  7. 约定下一步面试时间(这一点应该没什么好说,通常都是电话技术面或视频技术面,确认好双方有空闲的时间)
  8. 其他(会问是不是符合一些硬性条件,比如统招本科(就是学信网能够查到本科学历信息),毕业时间等等)

如何回答离职原因

这一部分看似回答很简单,其实会藏着很多坑。

首先,要明白为什么需要HR面,为什么面试第一个打来的都是HR,而不是技术员工直接打过来。

从企业运行的角度考虑,每一时刻的企业运作都是需要运行成本的,包括场地成本、设备成本(采购、折旧、损耗等等)、物料成本、人力成本(招聘成本、培训成本、薪酬成本等)等等,就特别多,专人专事这个大家都能理解。

如果一个员工匆忙从一家企业离职,该员工入职前的招聘成本、入职时的培训成本和所需要支付的薪酬成本就会拜拜支出,不能给企业带来盈利,但企业在招聘一个员工前后所支出的成本又是实实在在支出了的,就会造成巨大损失(绿厂就不是,就完全不担心这一点,因为给的太少了(通俗点就是成本不高),打着500强名号,韭菜一茬一茬就随便割,又不会特地挽留员工离职,而且全公司现状都是培训工作做得差,成本就不高)。

(个人觉得)企业当然不能实现所有人终身雇佣,没有新鲜血液是不行的,一定比例的人员流动可以给企业带来活力(这个原因我就不必讲了吧)。HR是学过这些东西的,需要站在企业角度去帮企业考虑招聘什么样子的人会让企业更加稳定,人员稳定(流失减少,并控制在一定范围内)就能帮助企业降低运行成本。

因此,面试者需要体现出自己的稳定性,证明自己是一个不太会轻易离职的人,并说明是一些客观的因素(并不是自己的原因)造成了面试者的离职。当然,面试者自己在一家企业就业时,也不应该轻易离职,如果是高校毕业者,最好在第一家企业从事1年及以上再离职(建议!)。以下列举了几个较为客观(不能说绝对客观)的原因:

  • 办公室氛围太过压抑,缺少团队活动
  • 团队协作性太差
  • 领导风格太过压迫和强势

一些员工的主观原因(或者说是令HR反感的原因),这些话是绝对不能说的,绝对禁区!

  • 自己不喜欢目前的工作
  • 工作太难了

一些员工可以说的话:

  • 自己不太挑工作,比较看重团队氛围和工作环境(一般有自信点的HR都会觉得这点没问题,“不太挑工作”的前提是,也得是自己觉得对口的才行,别不对口你不挑个啥。比如,做MCU/ARM/SOC/DSP的相通性较高,说自己不挑可以,但是跨行业太大也敢说自己不挑那就是找事儿)(另,不太挑工作其实对HR来说是个好品质,但自己也得好好掂量掂量自己)

如何回答目前薪资及期望薪资

HR之所以需要问你的目前薪资,不仅是了解本行业或者某个岗位在某个地区的大致薪酬情况(以对比公司招聘员工的薪酬竞争优势),也是在探寻面试者的薪酬上涨或可以压缩的空间。

面试者首先需要了解(或者说准备好)几点信息:

  1. 该行业该岗位在某个地区的 普遍薪资范围 是如何(当然不能拿最高薪资来当做普遍薪资,得看自己的能力和对应岗位的工作难度)
  2. 所面试的公司提供的薪酬范围
  3. 自己所期待的薪资底线
  4. 自己目前薪资

首先是,如果HR问目前薪资。面试者可以适当夸大自己目前的薪资,税后薪资可能都很低,可以说税前,多说几千没关系,不要与对方公司提供的薪酬底线相差太大即可。如果HR说自己公司有30%或者40%的涨薪幅度限制,那么可以放心,该HR觉得你岗位匹配度较高,只是想通过这个来压一压你的成本而已。

此时,你可以说自己期待在某个地区某个岗位的薪酬底线,低于这个就不行。HR态度一般都会更为委婉些。

如果你通过面试,到了拿offer的环节,HR还是会再跟你谈一遍。豪气的公司(一种薪酬策略,用高于行业平均水平的薪资招聘员工,但也要求更高)一般开价都会比你要求的更高,但这是后面的事情了。

HR面结束之后

(如果你对HR提供的岗位较为满意,接收了技术面/项目面的预约)需要记住一些最基础、关键、有用的信息。这些HR面时都已经说明了,最好是拿个小本本记好,这是对面试企业的一个尊重,也是为了防止后面出现的一些莫名其妙的(跟你面试岗位无关的)问题把你问倒。

  1. 岗位工作地点(很多大企业全国都有研究中心和技术中心,可以选择的,看对方给你提供的是哪个城市的就业岗位)
  2. 对方面试官的名字(至少记住姓啥)
  3. 对方的公司名称及背景(比如是帮别人做外包的还是做自研的,有没有上市或者有没有股权激励,成立多久了之类的)
  4. 岗位基本信息 (任职要求和工作职责等)

项目面和技术面

普遍情况下,二轮/三轮面试都会问你一些技术和项目上的东西,根据所闻内容的不同,将其分别称呼为 技术面项目面

有些公司会将这两轮分开,面试的先后顺序不一,总得占比是项目经历会问得更多一些,技术面的占比较少。

有些公司也会将项目面和技术面合在一起(就是同一次面试里就有技术面和项目面),夹杂交替着问。

项目面

主要是问你从事(主要负责或者协助负责)过的一些项目/经历,了解你对研发的产品、芯片、硬件、软件、工具、设备的认知。项目面会有三种类型的提问:

  1. 工具认知提问。了解面试者对工具使用的经验。
  2. 问题解决提问。了解面试者对一些解决问题的方法和经历。
  3. 情景假设提问。考验面试者解决问题的思路。

项目面的面试形式:一般都是电话提问和视频提问。

面试时长:单轮面试时间都是在15分钟以上,最长30分钟左右。

工具认知提问

就是会问你开发过程中遇到的一些工具模块是如何使用的,一些算法或者逻辑的原理。这部分比较简单,都是经验而已。

例如,面试官问我ADC的使用,我就如实回答我是如何用ADC的,以及我对ADC模块的认知。

问题解决提问

有很大概率(不一定是所有公司都会问的),会问你一些“发现问题解决问题”的经验。这里面试官主要是想知道以下几点情况:

  1. 面试者对工作问题的解决思路。是否足够清晰,有什么角度可以去考虑,需要面试者自己去总结,然后可以清晰地向他人阐述。
  2. 面试者在解决问题时的耐心。面试者需要介绍一个以上的案例,向面试官说明问题现象,自己的思考方式、检查方法、解决方法、过程 和 结果 等等。
  3. 面试者的经验。你能说出自己在遇到一些问题(比如调试问题)时的解决思路,或者看待问题(较为全面)的角度时,就说明了你已经具有足够经验了。

如果面试官问你“发现问题解决问题”的经验,你回答自己不知道,不太记得,忘记了这些话,就妥妥失败了。

因为这些工作问题的发现、解决和记录工作,在日常工作过程中其实都是可以稍微花点时间去完成的(这并不难,只是你有没有耐心而已),如果面试者自己没有做这部分 经验积累工作,那就很吃亏,大部分人都有相关的工作经验,自己不会去 总结 而已。

情景假设提问

面试官可能会抛出情景题,例如问你给你一个芯片,2周之内完成开发,你需要怎么准备,有什么计划。其实就是一个经验问题,或者思路问题。回答方法我就不详细说了。

技术面

技术面,就是会问一些项目之下的一些底层技术问题,一般来说都不会太难,也偶尔会有一些面试官问的问题比较偏门(开发过程中较难出现的问题)。例如,我经历过的偏门提问,会问C语言的野指针出现和排查,C++的继承概念等等(这些是我项目上比较难涉及到的)。

但大部分情况下,这些技术提问,都是提问一些你做过的东西,比如你做过某种通信协议的开发,请你表述以下该协议的相关内容(例如,时序、通信格式(通信起始和结束的变化)、电气特性(电平、电压范围)等)。这些其实也是经验的一部分,真的做过的话就应该自己做做笔记,一定会有点印象的,不应该去抱佛脚。

面试原则:问到你会的,你就自信回答。问到偏门的,开发过程中较少出现/遇到和使用的,你就如实回答就好了,不要不懂装懂。

技术面的面试形式:可能是让你线上答卷,现场答卷,也可以是电话提问、视频提问。

面试时长:同项目面,也可能夹杂着在项目面中间进行提问。

拿Offer

拿到Offer后,你可能需要向HR详细确认的信息:

  1. 每天上班时间,从几点到几点
  2. 每个月的薪资计算时间是从几号到几号
  3. 每个月的薪资发放日期、时间
  4. 是否双休、年假情况
  5. 每天的加班强度、每个月的加班强度、加班薪资等
  6. 每年发放多少个月的薪资(就是年终奖发放情况,好一点的是15薪以上,最基本的13薪)
  7. 每个(税前)月薪资是多少(可能需要关心一下社保和公积金的缴纳情况等)

基本信息了解完毕之后,需要自己有意识地去提问的一些问题:

  1. 近期可以签订合同的最晚时间(合同期限一般都是3年,这个就比较不用担心)
  2. 期望入职时间(自己期望什么时候入职,对方期望最晚什么时候入职,可否协调程度)
  3. 涨薪计划(入职后会有哪些涨薪激励计划,或之前其他股权发放啊、年终奖增长等等)
  4. 绩效计划(可能这时候不太愿意说,但是入职后可以去了解)