一个优秀团队的建立是从寻找优秀的成员开始的,我们程序员团队也不例外。
对什么是优秀的程序员各团队会有自己的诠释,在这里的定义是:
能够写出优质代码,
具备良好的全局观,
有良好的团队协作能力的程序员。
良禽择木而栖,必要的软硬件条件是吸引程序员加盟的必要条件,这些不在本文讨论范围,这里仅谈谈假设有足够多的候选人,我们如何甄选出其中优秀的,或有比较大可能性成为优秀的程序员的候选人:
激情:这是第一个考察点;激情更多是与生俱来而不是后天培养的性格特征,而程序设计无疑是最消耗人的精力的工作之一,层出不穷的新技术需要学习,一些细节、技巧也需要长时间思考来领悟,没有激情的人是走不远的。
对人是否有激情的判定标准是比较主观的,我比较多还是靠直感来判断。
天赋:程序设计是一种特殊的思维逻辑,并不是所有聪明的大脑都适合思考计算机/程序类问题,高IQ是成为一个优秀程序员的必要但不充分条件。
我常常通过问一些需要深层思考才能领悟的计算机技术问题,比如说编译原理方面的问题,或一些候选人原来不太可能接触到的计算机领域的问题,根据候选人的思路来判定其是否有编程的天赋。
兴趣:与第一点"激情"相关,只是更进一步判定具备激情的候选人是否对程序设计有兴趣,只有对编程有浓厚兴趣的人才不会觉得整天和计算机、代码打交道是痛苦的,相反,那是他们成就感和乐趣的源泉。
我会考察候选人是否具备过去的工作和学习所必须掌握的知识范围之外的计算机知识,此外,讨论计算机技术话题的时候,候选人是否有语速加快、身体坐直、眼睛发亮,甚至手舞足蹈的情况,这些都是人兴奋的时候肾上腺皮质激素分泌的表现 J。
文化:每个团队都有自己文化(所谓一群人在一起做事情的方法),个人文化与团队文化的配合程度直接决定个人在团队是否能生存和发展,也会决定候选人的引入对团队的冲击会有多大。
在引入会对团队文化有重大冲击的候选人时要非常慎重,不妨先问自己一个问题:这个人会和我们一起走多远?将来会因什么样的原因分手,分手的时候会是什么样一种场景?从终局反过来推断现在该怎么做,不是万不得已,饮鸩止渴的事情不要做。
定性:知道自己的道路要怎么走,知道自己要什么,如果你遇到的候选人符合以上四个条件,并且具备最后这点定性,恭喜你,你找到宝了!
中国这么多年很少出现世界顶级架构师的原因就是缺乏积累,中国人一点不笨,只是这些年机会太多,很多本可以成为优秀程序员、架构师的人成了成功或不成功的老板、经理,令人欣慰的是越来越多的工程师知道自己该如何发展了。
过去10多年的工作中,也有一系列的教训告诉我以下这些类型的人需要慎重考虑:
1、 聪明,但过去的经历无法证明他对编程有兴趣并且努力钻研过的:不管他面试时表现得是如何愿意学习,愿意上进,一旦入职,基本会滑入以前的工作模式,不会真正投入;
2、 应届毕业生,有很远大的理想,热衷于高谈阔论行业方向的:入职后整天找业务人员和管理层阔论产业发展,浪费大家时间,贻误自己的发展;
3、 问题儿童,问题超多,并且再三强调自己如何希望加盟公司的:我碰到的超过有90%没有入职,而且是在最后关头告诉你他决定不来了,耽误事;
4、 直觉不好的,说不出原因,就是感觉不喜欢的;
注:本事为CSDN写的一篇稿子,今天已经见到杂志了,转贴在自己的博客中
联系客服