最近负责iOS的面试工作,感悟颇多。
首先,我怎么区分面试者的水平?
有些面试者表达不好,但是可能代码写得不错,思维会比较好,工作的效率不比较高。
有些面试者可能表达好,对基础的概念理解也不错,可以准确的表达出来。但是你让他设计一个稍微复杂一点的东西,可能他就应付不过来了。或者他写代码的能力比较弱。
或者有些人对问题理解不深,无法解决难度高的问题。
或者有些人思想觉悟比较差,程序设计更多趋于局部功能的实现,而缺乏对整个项目的认识,缺乏对整个框架的把握。缺乏对APP的最求。
我们需要什么样的人?
1、iOS有经验的人,可以马上进行项目开发的人
基础知识一定要有
理论基础要有
2、有基本的软件素养的人,不是简单会写逻辑代码的人。要有工程素养的,比如代码的整洁度,代码的前后一致,代码的注释风格。
可以让面试者,带一份自己写的代码过来,一个小功能,一个小模块,一个小算法吧。甚至一个小的类都行。
谈谈重构吧
3、需要有整体把握的人,有没有架构的思想,有没有面向对象开发的思维,有没有抽象,解耦的思想。要的是格局!!大格局!
看看过往的项目中有没有主动关注到这方面的东西?
4、需要对软件有追求的人,不是写代码过日子的人
有没有写点博客?
有没有业余的技术爱好,喜欢折腾点东西?
对互联网,对新技术的敏感程度?
大家坐在一起可以有点东西聊聊的。
5、性格,乐观开朗一点。有趣的。有爱好的。
上面的一些感受来源也实际的经验,和下面这篇文章的提醒
http://www.ruanyifeng.com/blog/2010/12/how_to_interview_a_programmer.html
其实我在最后都会人面试者问一个问题。很多的人都问我具体是做什么的。我真的不能告诉你,其实告诉你也没有什么用吧,反过来,我会问对方有什么偏好。
这里有篇文章,适合大牛使用
http://www.ruanyifeng.com/blog/2012/08/questions_you_need_to_ask_in_an_interview.html