Google的人力运营高级副总裁Laszlo Bock在一次采访中说Google发现在面试程序员时问智力题完全是浪费时间,Matt Rogish在他的这篇博客How to Interview Programmers - Rogish Reading Writing中有感而发,介绍了他认为正确的面试程序员的方法。

  • 先决条件
    • 在你雇佣第一个员工之前
      1. 想好你的企业文化
      2. 让你团队中的每个人都面试应聘者
      3. 确保你的团队中每个人都知道如何面试,制定面试计划和清单。
        • 每个人都写下来他要问什么问题,然后大家坐在一起过一下这些问题
        • 你要从应聘者身上发现什么素质?
        • 你通过什么手段来发现?
      4. 同一个问题不要问两次
      5. 举办一些模拟面试来提高面试技巧
      6. 让你的程序员先做做面试题,这样让他们能够在面试时得心应手
    • 在面试过程中
      1. 保持开放和诚实(比如不要问应聘者你希望的最低薪水是多少,你应该是第一个说要提供多少薪水股份的人。你应该有一个定义好的技术阶梯来描述你的公司中程序员的职业规划)
      2. 面试要因人而异,根据应聘者的背景进行剪裁
      3. 不要诱导证人(比如不要问你喜欢TDD还是简单粗暴直接开始)
      4. topgrading风格的问题
      5. 保持好的形象(应聘者也在面试你)
      6. 午饭订一个好馆子
    • 面试之后
      1. 每个人都要给出意见,要还是不要。更重要的是,要给出理由
      2. 如果你准备给offer,尽快
      3. 如果你不准备给offer,也尽快
  • 现场面试前
    • 初始电话面试(30-45分钟),主要是问一些基本问题,过滤掉你明显不会招的人。说明你的企业文化,让你的应聘者了解你的企业现状。
    • 第二轮电话面试(1-2小时),主要是确认应聘者会不会编程:)
  • 现场面试
    • 飞头等舱等。。。如果应聘者够牛,应该会同时拿多个offer,如果你在面试的一开始就招待好他会更容易雇到他
    • 一天的日程
      1. 参观办公室,看看休息区的高级咖啡机
      2. 介绍今天的流程
      3. 一些从工作中提取的或者和工作相关编程的题目(难度递增)
        • 题目不能太难(三周也搞不定),也不能太简单(靠记忆就能答出来)。开卷,能用google和stackoverflow
        • 在一开始就问问应聘者熟悉什么开发环境,帮他弄一个顺手的机器。或者让他带自己的笔记本
        • 最好有个题库。可以参考RubyQuiz 或者 CodeQuizzes
        • 目的是考察应聘者能解决一个真是世界的问题
      4. 午饭,邀请团队所有人都参加,问一些开放式的问题
      5. 结对编程
        • 如果签了保密协议,可以是公司的真实代码
        • 如果没签,就找个你在用的开源软件,然后一起价格新功能
      6. 送回酒店(不是机场,都累了一天了),如果预算允许的话,让人呆整个周末
    • 最好定一个月的试用合约,然后决定要不要给offer。

听听Matt Rogish说怎么面试程序员的更多相关文章

  1. 如何面试程序员 zhuan zai

    zhuan zai  http://blog.csdn.net/cuibo1123/article/details/41931909aia 面试对于大多数开发人员来说是一项很基本的技能.一次失败的招聘 ...

  2. 面试杂谈:面试程序员时都应该考察些什么?<转>

    一般来说,一线成熟企业技术岗位的典型招聘流程分为以下几个步骤: 初筛:一般由直接领导的技术经理或HR进行,重点考察教育和工作经历 一面:一般由可能直接与之共事的工程师进行,重点考察基础和工作能力 二面 ...

  3. 不要以为Bug写的好就是好程序员,其实这只占不到15%!

      最近和一位从事多年架构工作的技术哥们见面,聊到了近期面试程序员的一些经历,谈到了"如何判断程序员水平高低"这个话题,颇有些感触,觉得有价值,因此花了些时间整理.分享给大家. 正 ...

  4. .Net程序员面试所需要的一些技术准备

    夜已经很深了,但却毫无睡意,最近找工作和面试感触良多,所以想记录下来这段过程. 作为一个.Net程序员,不可否认是比JAVA要难混的.甚至在智联招聘或者大街网都没有.NET程序员的备用选项.真是令人悲 ...

  5. 程序员面试大揭秘——应聘微软、亚马逊、谷歌、苹果等IT公司你都要做什么准备?

    对于多数求职者而言,面试好似一个迷局.你去了,见了几个面试官,答了一堆问题,然后,或两手空空离开,或幸运地拿到录用通知. 你有没有想过: 面试结果是怎么得出的? 面试官会不会互相交流? 公司最看重哪些 ...

  6. 如何准备阿里社招面试,顺谈 Java 程序员学习中各阶段的建议

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  7. C#130问,初级程序员的面试宝典

    首先介绍下,目前C#作为一门快速开发的语言,在面试的过程中需要注意的技术知识点,了解下面的知识点对于初级工程师入职非常有帮助,也是自己的亲身体悟. 1.    简述 private. protecte ...

  8. 阿里面试回来,想和Java程序员谈一谈(转载)

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  9. Java程序员面试失败的5大原因

    下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一 ...

随机推荐

  1. free() 是如何释放不同内存区块大小的指针?

    最初是在知乎上看到这个问题的C++ delete[] 是如何知道数组大小的?,我也挺好奇,所以就作了一番工作. 申请内存时,指针所指向区块的大小这一信息,其实就记录在该指针的周围看下面这段代码: #i ...

  2. mysql 刘道成视频教程1、2课----------大致结构

    第1课 第2课 一.整体结构 1.mysql -h localhost -u root -p *** 如果-h不写,则默认连接localhost. 2.连接服务器成功,-------> 显示数据 ...

  3. LINUX命令行操作

    Linux 命令行快捷键 7条回复 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 说明 Ctrl – k: 先按住 ...

  4. 要想重启后也生效LINUX防火墙配置

    新配置的一台服务器,安装的是CentOS6.3系统,在安装完LNMP之后,发现nginx进程存在,且php解析正常,但是用分配的独立IP去访问的时候发现无法访问. 查了下网上的资料,发现可能是Linu ...

  5. sharepoint给文档库每个数据条添加权限

    前言 老大任务,做一个读取文档库把里面的每一条数据添加权限.挺起来很简单,但是做起来,还是很简单,哈哈.因为我没有接触过这些代码,所以得不断的请教了.大题明白了,简单实现了一下,应用控制台先做了一下简 ...

  6. 用frame实现最基本的上中下三层布局,中间又分左右两部分.

    用frame实现最基本的上中下三层布局,中间又分左右两部分. 用frame的好处在于不用象DIV一样要对浮动和大小进行精确控制,以及要考虑宽屏的时候怎么办.而且在导航的时候非常简单.比如说,左边是导航 ...

  7. 汤姆大叔的6道js题目

    汤姆大叔的6道javascript编程题题解 看汤姆大叔的博文,其中有篇(猛戳这里)的最后有6道编程题,于是我也试试,大家都可以先试试. 1.找出数字数组中最大的元素(使用Math.max函数) 1 ...

  8. WAMP(Windows+Apache+Mysql+PHP)环境搭建

    学习PHP已经有一段时间,一直没有写过关于开发环境搭建的笔记,现在补上吧,因为安装配置的步骤记得不是很清楚,借鉴了一些别人的经验,总结如下: 首先去官方网站下载各个软件,下载需要的版本: Apache ...

  9. 练习2 I题 - 水仙花数

      Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description 春天是 ...

  10. make xxx Is a directory. Stop.

    转自:make xxx Is a directory. Stop. 的原因 make xxx Is a directory. Stop. 的原因 编译内核时候的一个错误提示 make: ***    ...