A: 我是自学 Android,基础可能不是很好,但是我的动手能力很强。我可以一个人完成一个项目。
Q: 你平时写代码时遇到问题都是怎么解决的?
A: 网上找答案。
Q: 在运用一个 Activity 中,你了解里面存在多少种设计模式?
A: 我只听过设计模式,但没去看,以后打算看。
Q: 你最近一个项目中,用到的一个最熟悉的开源项目是什么?
A: Rxjava(作者注:Android 一个开源库)。
Q: 你能给我阐述一下 Rxjava 的思路吗?
A: (他把用法给我讲了一遍。)
Q: 这个用法的背后知道为什么吗?
A: 不知道。
后面我问了很多他在工作中实际用到的一些技术,基本上是知道怎么用,但不知道为什么。
从动手能力方面来看,他就是人们传统认为的那种 “聪明” 的人。从他脸上流露出的自信我相信这些应用都是他做的。但是,基于以下几点我淘汰了他:
1. 基础很差。他虽然动手能力很强,但是对技术细节不理解。
2. 写代码靠模仿。他对代码的认知还停留在 copy 和模仿阶段,如果不参考事例,就不会写代码。
3. 创造力差。他适合一个萝卜一个坑的小公司或外包公司,但不适合创业公司,员工的创造力是创业公司渴望获得的。
4. 有点骄傲。他可能认为自己是属于 “聪明” 那类的,而且不能发现自身的缺点、以及不太能接受别人对他的评价。在管理上会带来风险。
互联网行业中,很多工程师和这位同学一样。这类同学统一犯了一个错误:被”简单”的技术蒙蔽了双眼,使得找不到进步方向和空间。
典型2:他很踏实,而且很有想法
这位同学是一位 C++ 工程师。
我并没有从基础技能入手,而是直接了当地把想招他进来做什么事情告诉他。他刚开始显得很紧张,可能是觉得我面试的套路很奇怪吧。
我为了调节气氛,就在白板上画出我的想法。在不断地沟通后,他似乎明白我的意思,思考了一会儿就在黑板上画出了解决方案。