怎么面试一个10年以上经验的架构师?
最近部门里面要为一个外包的项目招聘一个架构师,客户直接要求希望这个架构师有10年以上经验;4年以上的C#实际开发经验;良好的英语书写和口语;优秀的沟通技巧和团队合作精神。那么该如何准备面试这样一个架构师呢?我本人的开发经验有5年左右,担任Team Leader有2年左右时间,斗胆以此浅薄的经历来谈一谈来面试这个架构师的想法。
最好的面试思路即以JD的要求为主,然后再增加其他方面的面试点。这样,我们针对每一条要求提一些问题,并对每个问题进行一些必要的展开和讨论。
一,良好的英语书面和口语。
书面英语,可以要求候选者详细写一个开发过的项目或者模块的介绍,可以要求字数范围在200-300以内,大概10-15句话。
英语口语,则需要面试者用英语和候选者进行对话,比较参见的是从英文的自我介绍开始,然后随机提一些问题测试候选者的表达能力。把英语当做面试的第一个问题基于两点考虑。a)项目需要英语能力,包括书面和口语。但是口语的要求可以比书面低一些。b)很多人的英语都不太好,因为此把这个条件当做第一个可以节省很多时间。
二,10年以上开发经验,4年以上C#经验。
这个要求最重要的是考察技术,考察的方面依次为:基础知识,如数组和链表的区别,堆和栈的区别等,冒泡排序,二分法查找等。这些基础的信息可以考察后选择是否还从事实际的开发工作,以及基础知识是否踏实。然后是设计类的一些题目,例如面对对象的几个基本原则,Gof的一些设计原型和最佳的应用场景等。最后考察的是高级设计,例如详细解释MVC框架的优点和缺点,SOA,或者对某些参见类库的高级分析;比较参见的是让架构师详细讲解他以前设计过的一个系统,以及该设计中的难点,最后是怎么解决的,解决之后是否有一些新的认识,是否有更好的解决方式。
三,优秀的沟通技巧和团队合作。
如果在第一个中有要求候选者详细介绍他以前做过的某一个系统,那么则可以看到候选者在表述的系统时,是否条理清晰,逻辑合理。是否有系统性,是否由大到小,由概念到细节。在系统的介绍中可以做一些提问,以此考察对系统的理解程度和水平。对于团队合作方面,可以问一些常见的问题,例如某某不服从工作安排怎么办?他不遵守代码规范怎么办?可以让候选者详细地回答这些问题。
四,考察是否具备优秀的项目开发管理和控制,在具体问题上可以包括。
1. 是否经常使用源代码管理工具,在管理时的最佳实践是什么?
2. 是否使用daily build过程,该过程是否自动完成?
3. 是否采用TDD开发,以及如何有效地进行白盒测试?
4. 对代码规范的认知态度。越是高层次的程序员,代码规范越是严谨。
5. 是否编写过工具为自己或团队服务。
等等,越是能力高的架构师,对项目越是有苛刻的要求。只要要求严格,才能制造出质量可靠的软件。
posted on 2013-10-12 16:05 heartstage 阅读(810) 评论(0) 编辑 收藏 举报