面试时,问哪些问题能试出一个Android应用开发者真正的水平?
面试短则 30 分钟、长则一小时,想全面考察很难。不必只围着“问什么题”转,先把准备、考察点和反馈写清楚,再落到 Android 具体问题上。
一、面试前的准备
1. 简历调查
简历到手先调查分析:对公司负责,也是对双方时间的尊重。明显不 match 就别抱着“要不喊过来试试看”。要想清楚现在要的是可培养的潜力,还是马上能干活的人。简历里有博客、GitHub、作品,提前看——多年积累的文章和代码,比这一小时面试靠谱得多。
2. 准备问题
摸清背景后,按简历准备问题:作品或项目里某个技术细节,或他声称精通的领域。别等到面试中现想,尤其刚开始面试别人时,紧张容易短路。把要问的写下来。
二、考察哪些点
1. 简历是否真实
面试第一要务是核简历。能到这一轮,说明纸面已符合要求;如果真如描述那样,几乎就会招。真实有三层:
-
如实描述经历。很多人在大项目里只是螺丝钉,简历却写得很满。 -
不知道自己不知道。简历里各种“精通”,其实只是浅尝;他未必在说谎,只是井底之蛙。 -
真实要跟你的期望匹配。精通没有统一定义,只能是候选人与面试官标准之间的契合。面试也是双向选择。
2. 技术的深度
深度最重要。任何一个领域都够宽,不可能样样深入。做过、正在做的东西,绝对可以挖深。有好奇心的人不会停在“挺好用”,会去看原理或别人整理过的经验。单凭深度,就能看出有没有热情。一句话:一个人对他所做的事情了解得越深,就能做得越好。
3. 技术的广度
深度是必要条件,广度是加分项。优秀程序员也不会只守着一亩三分地。知道与不知道,对知识体系差很多:你用熟悉的技术搞得很痛苦,同事一句 SQL 就解决了。知识越广,同一问题能想到 N 个解,再挑最优。从 0 到 1 难,常常是视野问题。
4. 逻辑思维能力
不是脑筋急转弯,而是表达是否有章法。话经过整理再出口,对方很容易明白。这习惯装不出来。逻辑清晰又反应快、语速稳,是大大的加分项。
三、具体问哪些问题
1. Android 经验
非校招,Android 经验是必须的。喜欢问基础概念和原理:Activity、View、Window 的理解,各 LaunchMode 的使用场景,View的绘制流程,Touch事件机制,Android动画的原理,Handler, Looper的理解,跨进程通讯、Binder、Android Mashup 设计等。
2. Java 水平
基本上是 Effective Java 那本书里的东西。也会问 final、反射、注解、编译过程、GC。
3. IT 基础知识
科班课上那些常识。校招是重点,社招会放宽,但 HTTP GET/POST 区别、HTTPS 的 S、进程与线程、二分算法,不该答不上。不是科班出身不重要,没这些概念以后没法交流。
4. 代码质量的认识
需要对代码味道有感觉,《Clean Code》够用。可以让他聊对代码质量的认识;只能提到命名风格的,不符合要求。也可以在写代码环节观察。
5. 技术视野
Android 新技术,以及其他流行领域——还是广度。很多非互联网公司因为规定和技术氛围,视野很窄。2011 年还在传统行业时,公司不让上网;想跟同事聊 Android,发现他们居然不知 Android 为何物。后来转战移动互联网,没有后悔。
6. 技术想象力
深度和广度够了、知识成体系,没碰过的领域也能做出合理想象。可以问:“你觉得这个东西应该是什么原理?”“这个控件要你来做,你会怎么实现?”
7. 技术习惯
快捷键、命令行、提效工具;碰到问题是百度还是 Google;有没有做小工具减少重复;业余看什么书。这些细节很大程度上决定开发效率,也是“一个优秀程序员抵得上 100 个普通程序员”的原因之一。
| 考察点 | 权重 | 怎么问 |
|---|---|---|
| 简历真实 | 第一要务 | 对照项目细节、博客和 GitHub |
| 深度 | 必须 | 正在做的东西挖原理 |
| 广度 / 视野 | 加分 | 相邻领域、新技术 |
| Android / Java / 基础 | 岗位门槛 | Activity/View/Handler、Effective Java、HTTP |
四、面试后的反馈
面试一般不止一轮,要给出反馈,多轮一起考量、减少误判:
-
面试纪录:尽量客观,让别人知道你问了什么、答得怎样,也避免重复提问。 -
优点与缺点:亮点有哪些,哪里不够好。 -
综合评价:hire / no hire 的根本原因;没考察清楚的,写上请下一轮加强。
怎样才给通过?每人有自己的 bar,可直观考量的有:岗位要求(校招与社招不同);岗位紧急程度;候选人年龄与成长速度;技术深度必须有,广度也要一些;要有亮点——问题很多但有一个足够的亮点也够了。
说了这么多,最重要的就是一句:你真的愿意跟那个家伙一起并肩战斗吗?
原文出处:汤涛(@星星D灯)
一句话总结:先核简历真假,再挖正在做的东西的深度;题可以准备,但最终标准是你愿不愿意跟他一起干活。
转载请注明来源:面试时,问哪些问题能试出一个Android应用开发者真正的水平?







