如何进行技术面试

前段时间帮项目组面试了一些应届毕业生,在写代码的间隙和这些快毕业的年轻人交流也学到了很多。针对面试中遇到的问题,写一篇文章总结一下如何进行技术面试。

一、简历

简历很重要,排版和文字体现了态度和专业程度,写到上面的项目和技能决定了面试方向。

1、简历排版

排版的基本原则

a) 对齐。简历整体应保持一个对齐样式。

b) 字体和色彩保持一致,最好不要出现三种以上的色彩和字体。

c) 页数为一到二页,大多数好的简历都是一页写完。便于 HR 和技术面试官筛选。

排版工具不限,Word、Markdown、网页都可以,推荐使用 Latex,Latex 是出版公司使用的专业排版软件,高度自由、专业大方。其他排版原则可以参考「写给大家看的设计书」。

2、定制化内容

对应于技术岗位要求,不要出现过多非必须的描述。如:学生会干部经历、个人爱好、甚至照片都是非必要的。应该有的是实习经历、项目经历、竞赛经历等。

3、扩展项

简历可以表达的内容有限,又是静态的。可以通过富媒体扩展引入

a) 个人博客网站。个人博客最好是多年有高质量内容更新的,面试官可以通过博客了解到面试者学习关注的方向,对技术问题的思考和总结。推荐使用 WordPress/Github Pages 等工具自己搭建。

b) Github。最好是有高 Star/Fork 的个人项目,体现技术影响力。面试官可以了解到编码风格、软件工程素养。

c) 项目演示 Demo。

二、面试考察项

1、基础知识

最基本的岗位能力要求,包括语言基础、操作系统、计算机网络、数据库、数据结构、软件工程、数据技术等等。至少需要对某一个方向有较深入的研究和思考。

2、聪明程度

这是一个主观又难以量化的指标,当面试官问出一个问题时,他是知道答案的。他可能只是简单看过答案,或者做项目时遇到这个问题,或者刚好思考过这个问题,而对面试者来说可能完全是陌生的。这样来看其实不公平,用一个比较少遇到的问题去考察其他人,这种问题也不能测试出面试者的聪明程度。那如果出的题是从简历里引申出来又稍微有深度和难度的呢。这时就可以看到面试者的应变能力和知识迁移能力。用这两个指标去衡量时会更有效一些。举例:

「看你简历上写的了解 Linux 文件系统,如何在终端里删除一个名字为乱码的文件」,这个题目里有明显提示-Linux 文件系统,面试者也有这个基础能力,他如果能想到文件的 inode 数据结构,再结合管道就可以答出这道题。

「看你项目中提到了协程,怎么去设计一个协程库」,面试者可能没有看过协程源码,但知道基本原理后结合面试官的提示是可以推导答出大概的框架。

3、沟通能力

沟通更多是一种方法。

a) 是否可以做到结论先行。回答问题时,先明确给出答案,再给出推导过程。

b) 是否可以把回答归纳总结为有条理的子项。归纳的过程也是展示思考的过程,原则是子项独立不重复;整体不遗漏。

c) 是否可以把一个其他人不熟悉的概念用简洁易懂的语言向他讲明白。我们可以用这条标准来衡量自己是否真正理解一个概念,那就是把这个概念给完全不懂的人讲清楚。

d) 在传达信息时,是否可以及时调整表述,以确保信息被正确接收到。「项目计划」中提到,作为项目经理,我们必须要记住一个基本前提,就是防止误解是信息发送者而不是接收者沟通职责。

其他沟通方法可以参考「非暴力沟通」。

三、面试官与面试者

管理大师德鲁克说,在组织中的人既是管理者,也是被管理者;既是管理的主体,同时又是客体,都承担双重角色。而面试官与面试者也是这种关系。一方面,面试官承载着这家公司的品牌形象和文化,也在接受面试者的评价和选择。另一方面,面试官极有可能有一天也是要去面试的。那么从这两个方面,作为普通技术人员的面试官应该做些什么?

1、面试官的职责

a) 提前 review 简历,针对提到的技能和项目,定制化一份可以综合评价能力的面试题

b) 平等认真倾听和记录面试者作答,引导面试者展现能力

c) 向面试者介绍公司和项目组在做的事情

d) 面试者有主动寻求建议,应适当给出建设性的答复

2、技术人员出走的能力

面试官作为一个有较多工作经验的普通开发人员,也会有一天转换角色成为面试者。为了适应这个激烈变化的互联网行业,他们应该保持随时出走的能力。开发工程师平时可以关注这些:

a) 提高业务能力和积累高价值的项目经历

b) 维护更新一份自己的简历

c) 学习新的语言和技术,创建自己的项目和产品

d) 积极分享,提高自己在业界的影响力(写公众号、博客、Github、开发者社区)

e) 主动了解业界情况(薪资待遇、发展机会、业务范围)

f) 有机会的话与猎头维持良好的联系

最近公众号更新较少,一些想法记录在这里,一为总结分享,二为自察勉励。



Previous     Next
/
Published under (CC) BY-NC-SA in categories tagged with