首页常用模板面试问题如何面试C语言开发工程师?

如何面试C语言开发工程师?

我们通常所说的“程序猿”也就是C语言开发工程师,是对技术和能力都要求非常高的一个职业,想要成功入职的应聘者都不得不经历笔试和面试的轮回打击,才可能脱颖而出。

通常情况下,互联网公司会有四轮面试,前三轮是技术面,第四轮是 HR 面。

其中,一面、二面会着重考察候选人的专业知识和专业技能,对软素质也会做一定程度的把关,三面会着重考察候选人的软素质,第四轮 HR 面除了考察软素质外,更多会考察候选人的文化匹配情况。

1. 自驱力

可以从两个方面来考察候选人的自驱力:目标感和自律。自驱力强的人做事情会有明确的目标,同时比一般人更加自律。

关于目标感,可以问候选人如下一些问题:是不是经常做计划?为什么会做这个计划?最近的计划是什么?计划是不是足够 SMART?

关于自律,可以结合上面的问题继续追问:比如之前制定的计划完成度如何?如果没有完成是遇到了什么原因?如果完成了是因为计划的挑战性不够吗?

结合上面的问题,我们以跑步为例来具体说明一下。

假设候选人给自己定了跑步的计划,一个自驱力强的人首先会给自己设定个有挑战的目标,比如一周跑步 3 次,每次 6 公里。同时还会有足够的自律保证目标的实现,如果计划的完成度很低很难说这个人自驱力强。

 

2. 好奇心

好奇心大概可以分为两个层面,一是知道有什么,二是知道为什么

所谓知道有什么,就是知其然,是指知道自己所从事的领域或感兴趣的领域正在发生的技术进展、技术创新有哪些。

比如对 Android 候选人,可以问他 Android 最新版本是多少?包含哪些新特性?有哪些优秀的开源项目?这些项目的作者是谁?

也可以问一些当下的热门技术领域,比如人工智能、深度学习、区块链、数字货币等,好奇心稍微强点的同学,对这些新事物应该都不会陌生。

从上也可以看出好奇心和视野也有一定的正相关性,好奇心强的人往往也有比较宽的视野。

以区块链为例,如果候选人对这个领域感兴趣,可以继续追问如下一些问题,比如区块链的技术原理是什么?如何实现去中心化的?共识机制有哪些?看过哪些相关资料?

3. 学习能力

怎么识别一个人学习能力的强弱?

候选人首先要有学习的意愿,其次要有行动,最后还有要有结果。

面试时可以通过问如下的一些问题来了解候选人的学习能力,比如,最近读了哪些书?读完后有什么收获?是开阔了视野、提高了认知、还是在工作中有实践?工作中遇到过哪些之前没遇到过的问题,是如何解决这些问题的?

这类话题很多,出发点就是考察候选人在遇到自己不了解、不熟悉的问题时是如何通过学习来掌握相关技能来解决问题的。

当然面试官要有能识别这些问题难度的能力,如果只是解决了一个相对简单的问题,并不能说明候选人的学习能力很强。

一个学习能力强的人,会不断花时间去广泛涉猎、获取输入,可能是读书、订阅专栏、或是阅读源码,并在工作中不断去实践。

同时,他也会不断提高自己学习的效率,比如用 Google 查阅资料而不是度娘,尽量阅读官方文档而不是二手资料,等等。

4. 沟通表达能力

沟通的目的是要正确的传递信息,好的沟通表达要简单明了,且能抓住重点。

可以通过问候选人一些偏主观的问题来考察其沟通表达能力。比如,面试开始前可以让候选人做个简短的自我介绍,通过自我介绍观察候选人的表达是否足够清晰。

别看自我介绍是件小事,但就是有候选人介绍不好自己,具体表现为没有清楚表达自己的过往经历或者介绍时没有突出自己的亮点。

也可以让候选人介绍下最近负责或参与的一个项目,好的表达方式是采用STAR 原则,所谓STAR 原则,即 Situation(情景)、Task(任务)、Action(行动)和 Result(结果)四个英文单词的首字母组合,它是结构化面试当中非常重要的一个理论。

 

如果候选人在面试时能够采用该原则,那么大概率其在日后的工作中也会采用,果真如此的话,团队日常沟通会相对顺畅不少。

实在找不到话题的话,也可以让候选人介绍一个他比较擅长但是你不了解的领域,看他能不能说明白,沟通能力强的候选人会把相对复杂的问题通过浅显的语言表达出来。

5. 技术规划能力

规划是对未来整体性、长期性、基本性问题的思考,并结合这些思考设计全面长远的发展计划和行动方案。

和计划相比,规划更加具有前瞻性、全局性、战略性和方向性。

先是对规划做系统性的描述,清楚执行者自己的位置,这里推荐用五视图法(逻辑架构、开发架构、运行架构、物理架构、数据架构)把系统的架构图画出来。

画出架构图后就可以方便的对系统进行分层,也方便对任务进行明确的拆分。接下来要根据阶段性可 check 的原则明确项目的优先级和里程碑。最后就是风险评估和执行阶段了。

说了这么多,那到底如何了解候选人的技术规划能力呢,下面几个问题可以参考下:团队目前遇到的最重要的三个问题是什么?有没有针对这些问题做过技术规划?具体目标是什么?目标是不是足够 SMART?里程碑是什么?

问完这些问题后,也基本上对候选人的技术规划能力了解一二了。

6. 总结复盘能力

对项目进行总结复盘(不管是业务项目还是技术项目)也是一项能力,复盘的目的是从之前的经历(可能是成功的经历,也可能是失败的经历)中总结可供指导后续工作的经验。

总结复盘的方式也多种多样,但万变不离其宗,主要还是围绕下面几个内容:目标回顾、进展评估、原因分析、经验总结,篇幅所限这里就不再赘述了。

怎么识别呢,可以通过如下几个问题来简单了解下候选人的总结复盘能力。

例如,有没有定期做过总结?总结的形式是什么样的?最近一次做总结是什么时候?总结后的结论或经验有哪些?

 

这就是HR部门的主要面试考察重点了,软素质主要考察的是综合能力,所以即便通过了技术部门面试的应聘者,也需要好好准备HR部门的面试。