公司招聘面试事宜是一个耗时耗钱的项目,从挑选简历开始,还要花更多的时间面试候选人。有的时候这些人才机构会向你保证这些人都是Java天才、SQL专家、堆栈开发者等等,但实际上真实情况远不及你想想的。

对于一个公司来说,执行招聘面试事宜是一个耗时耗钱的项目,从顾问公司和人才中介挑选出合适的简历之后,还要花更多的时间找出合适的候选人。有的时候这些机构会向你保证这些人都是 Java 天才、SQL 专家、堆栈开发者等等,但实际上如果你盲目的信任他们并邀请应聘人员参加面对面的面试的时候,你会很失望的。所以我觉得最快的甄别方法就是先电话面试,之后再根据他们的表现采取面对面的交流。

为了获得更多的反馈信息,提高自己的方法,在这里先和大家分享一些自己工作以来使用的筛选出来的编程问题,从这些常见的编程技巧里面选出两个左右的问题,例如Java、SQL、XML、编程、编码、OOPS、多线程和UNIX。和期待你说出对于同一技能的考察有什么好的方法。


下面是我列出的如何过滤和筛选出不同编程技能的问题,这主要有两个目的,一是为了给面试者热身,另外就是帮助主考官剔除不会编程的“程序员”,那些SQL 专家尽然不会编写 JOIN 查询。

在 SQL 方面,我的第一个筛选问题就是请他们描述一个 Left Outer Join。不需要说得多么精准,我只是想看看他们有没有做过除了 two table inner join 之外更多的东西。根据他们的回答我会问他们古典SQL查询,以核实他们是否知道这样的原理以及如何应用这些知识。如果他们使用 Inner join 而不是 left outer join 的话,估计就会错过成为正式员工的机会了。

在 Web 开发方面,首先提的问题是解释一些一个 GET 和一个 POST之间的区别。这里我至多就是想知道他在 URL 里面通常看到的 GET 是什么,以及在 HTML Forms 里 POST 是什么形式的。根据他们的回答,还可以继续问一些关于 GET vs POST 使用限制、安全性等问题。这些问题完全足够让你明白眼前这个人对互联网是否有真正的了解。

在 UNIX 方面,其中一个比较流行的筛选方法是相当简单的:你是如何找到一个特定的程序并解决问题的?我期望他们能告诉我关于 ps、grep 和 kill 之类的命令。同时也想测试一下他们对ps options 的理解程度。第二个筛选问题就是在 UNIX 系统里找出大量的文件。千万别误会,如果应聘者不能回答这些问题的话,那么他很难在这个有大量程序和服务器连接的项目中完成任务。

在招聘 OOPS(Object Oriented Programming)方面,请他们讲述一下 Class 和 Object 之间的区别。这样的安排主要是想他能够在描述定义的基础上讲一讲构建项目的蓝图,关键是想测试回答问题的人如何理解概念,并且不会被概念所困扰。接下来就是请他举个例子,根据他的例子来问他,在什么地方创建这个对象,由谁来创建等等。

招聘程序设计人员,尤其是提到代码,最流行的将鱼目混珠的程序员剔除的问题是 "Fizz-Buzz" 测试。如果一个程序员无法在10-15分钟之间写出一个 Fizz-buzz,那他可能需要更多的锻炼,或许根本没有准备好。另外一个方法就是让他们写 Fibonacci series(斐波纳契数列),并请他们优化一下。大家都知道 Fibonacci 是非常常见的,但是你可能会很惊讶的看到这些程序员很难在之上写出这些数列,即使是在 IDE 上也写不出来。

在 XML 方面,我的问题是请他们说出 DTD 和 XML Schema 之间有什么不同?有些人可能会说只用一个问题来判定某人的 XML 技能是不是有点太苛刻了,可我要说,这只是一个基础问题。有很多程序员之前是从事 XML 工作的,现在也是可以从事 XML 工作的,但他们对这一基础的了解完全不够,所以说他们有责任区学习更多的基础知识,光会工作是不够的,你还要不断地填充大脑里面的空白。

在 Java 方面,我会让他们说说 JDK、JRE 和 JVM 之间有哪些差异?这也是一个基础性问题,我希望所有有 Java 工作经验的,或者是学习过 Java 的人都应该知道这三者之间的差异。还有就是我希望他们都能自主的提到有哪些 JDK 工具,至少可以说出 Javac(Java 编译器) 和所有Java程序里都会用到的 JVM。另外一个问题就是 PATH 和 CLASSPATH 之间有什么不同之处?如果你不知道这两者之间的区别,那我真的很难有把握把你们调教成优秀员工,因为你在创建项目过程中将会遇到很多噩梦般困难:特别是调试和修复 ClassNotFoundException 和 NoClassDefFoundError 的时候。

在招聘 Java 或其他语言方面的多线程开发人员方面,筛选问题是要求候选人编写代码来避免“僵局”的出现。问这个问题的时候可以提供一个特别的场景,或者问如何编写代码这样“僵局”就不会出现了。如果你有足够的面试经验的话,你会很吃惊,因为那些有着2-4年编程经验的程序员通常没办法正确的回答这个问题。

在数据结构和算法方面,我问的第一个问题就是如何从链接表里添加和删除组件?因为我相信作为一个程序员就一定知道数组、链接表、集合、映射和文字列算法。

我知道,和应聘者拉家常谈琐事并不是发现程序员的好方法,但是你问出来的问题和应聘者的工作经历是息息相关的,这可以帮助你区分谁有真才实学,谁只是虚张声势。最好的方法就是坐下来和他们面对面的交流,讨论他们之前做过的项目,或者是和你结对编程来证明自己的实力。

询问他们之前的工作中做值得他骄傲的是什么,他们最想改变的是什么,为什么要改变,怎么改变。一旦问了这些问题,除了人格方面的,在编程方面的能力已经完全展示出来了。如果你有机会面试超过100个人的话,其实你不是在浪费时间和金钱,而是在组织时间和金钱。尤其是在通知他们去参加面对面面试的时候,一定要确保这个人值得你花时间去和他交流。

所以,我很迫切的想要知道你们是问什么样的筛选问题来面试这些程序员的,尤其是在招聘 C、C++、Ruby、Python 或者是 JavaScript 开发者的时候。

面试中如何剔除“鱼目混珠”程序员?相关推荐

  1. 如何在面试中找到优秀的程序员(转载)

    原文链接. 我曾在一次面试中要求一个很有经验的嵌入式软件开发人员写出一个反转一段字符串并输出到屏幕上的程序.他在这个题目上挣扎了很久.这个家伙是个很神奇的人.你给他一些没用的零件,他能建造一个机器人, ...

  2. 揭秘IT人才特点:中美印日四国程序员比较

    揭秘IT人才特点:中美印日四国程序员比较 最近以裁判的身份参加了公司举办的编程大赛,发现高手云集,对公司内部的程序员能力也有了更深入的了解.我觉得编程能力对程序员而言,虽然很重要,但并不是全部.那么作 ...

  3. 面试了一个 39 岁程序员,全程让我都感觉有点慌.....

    招人背景 首先说下公司招人的背景吧,公司要招的是一个研发经理的岗位,负责管理技术团队的各个项目组,领导只给了我两个要求: 1)技术可以 2)管理有一套 说白了,这是一个技术+管理的岗位,不是纯粹的管理 ...

  4. 面试归来——梳理社招面试以及浅述对程序员职业生涯的看法

    原谅我是一个后知后觉的人,已经在新的岗位工作了两个月,才写这篇文章. 本文会先讲述博主一个月的面试经历,梳理一下技术面试,浅述关于程序员职业生涯的一些看法. 从创业到再就业 大概4个月以前,终止创业已 ...

  5. 揭秘IT人才特点:中美印日四国程序员比较—兄弟连IT教育

    揭秘IT人才特点:中美印日四国程序员比较-兄弟连IT教育 最近以裁判的身份参加了公司举办的编程大赛,发现高手云集,对公司内部的程序员能力也有了更深入的了解.我觉得编程能力对程序员而言,虽然很重要,但并 ...

  6. 90后程序员:我面试了一些80后程序员,有些人的技术深度都不够

    点击上面↑「爱开发」关注我们 每晚10点,分享软件开发资源.社交电商资源 文|洪生鹏 80后随着时间的流逝渐渐淡出了人们的视线,人们更热衷谈论90后,有人说90后是跨掉的一代,对于新一代,似乎都有人来 ...

  7. 程序员中一些老的程序员去哪了

    程序员中一些老的程序员去哪了 一.总结 一句话总结: 身边 老师 改行 发展 升职 公司 文中对应内容: 我的回答:就在您的身边.我迅速在脑子里过了一遍,成都SAP研究院每个敏捷开发小组都有至少两到三 ...

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

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

  9. 社招面试如何准备,java程序员学习中各个阶段的建议

    第一个问题:阿里面试都问什么? 这个是让LZ最头疼的一个问题,也是群里的猿友们问的最多的一个问题. 说实话,LZ只能隐约想起并发.JVM.分布式.TCP/IP协议这些个关键字,具体的问题真的是几乎都没 ...

最新文章

  1. 设置VSCode自动保存
  2. 最全芯片产业报告出炉,计算、存储、模拟IC一文扫尽
  3. SpringBoot专栏(一) -- SpringBoot简介
  4. 招人!入职阿里仅1年,我和做AI的程序员薪资翻了2倍!
  5. C语言输出九九乘法表
  6. daocloud创建mysql_DaoCloud体验-使用node构建应用程序
  7. 阿里云服务器加快下载github
  8. 想在体制内吃得开,不要有这5种表现,不受领导待见,越混越糟糕
  9. 最全Pycharm教程(40)——Pycharm扩展功能之捆绑插件TextMate
  10. Oracle range分区values less than代表的是小于
  11. windows文件名太长无法删除的解决办法
  12. iview构建基本html页面,写前端页面步骤----vue+iview
  13. 华为matebook13安装折腾Debian11全过程
  14. Java通过快递鸟-查询物流
  15. oracle 11g gateway 连接sqlserver 2005 ,ORA-28545解决
  16. HoloLens开发的需求与标准总结
  17. 从屏下指纹到体感手机,vivo能否走出自己的创新之路?
  18. JSP页面-操作成功后跳转页面并弹框
  19. C语言试题一之计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和
  20. 数字化推动后市场产业变革,开启汽车后市场新篇章

热门文章

  1. Java Object类的各个方法
  2. php网站评论模块怎么写,模块内容评论循环
  3. zookeeper客户端练习(idea-Junit测试)
  4. Python3 爬虫学习笔记 C03 【Ajax 数据爬取】
  5. PWN-PRACTICE-BUUCTF-26
  6. 【HDU - 5963】朋友(博弈,思维,必胜态必败态,找规律)
  7. 【Gym - 101061F】Fairness(dp,思维)
  8. 【CodeForces - 735A 】Ostap and Grasshopper (水题,模拟)
  9. pc端html轮播带滑块,swiper.js简单快速实现轮播滑动(兼容PC端、移动端)
  10. mp4v2 写mp4 java_使用mp4v2将H264+AAC合成mp4文件