面试之站在面试官的角度去面试
简述: 本文作者Joel Spolsky 是纽约市一家软件公司Fog Creek Software的创始人。他毕业于耶鲁大学,曾分别在美国微软、Viacom、Juno等公司任软件设计师、经理职位。本文来自于《祖儿谈软件》,文章原名为《轻松面试找到理想员工——非官方的面试技术指南》,作者最初本意是针?/p> 雇佣合适的人对于Fog Creek软件公司来说是非常关键的。在我们这个领域,有三类人可以挑选。在一个极端, 是哪些混进来的, 甚至缺乏最基本的工作技巧. 只要问这类人两三个简单的问题,再读一下他们的简历,就可以轻易地剔除他们。另一个极端的类型是 才华横溢的超级明星这些人仅仅为了好玩就用汇编语言为Palm Pilot(一种手掌电脑)写了一个Lisp(一种人工智能编程语言)编译器。在这两种极端类型中间的是一大群不能确定水平的候选者,也许他们中的某些人能干些什么?这里的关键是明白超级明星和那一大堆属于中间类型的人的区别,因为Fog Creek软件公司只雇佣超级明星。下面我要介绍一些找出超级明星的技巧。
就是这些了。符合这样标准的人就是我们公司需要的员工了。 记住这条标准。 每天上床前背诵这条标准。我们公司的目标之一就是雇佣拥有这样的潜质的人,而不是雇佣懂某些技术的人。任何人所拥有的某些具体技术都会在几年内过时,所以,雇佣有能力学习新技术的人,要比雇佣那些只在这一分钟知道SQL编程是怎么回事的人对公司更划算一点。
在面试结束时,对于被面试者,你不得不做一个直截了当的决定。这个决定只有两个结果:雇佣或者不雇佣. 回到你的电脑前,立刻用电子邮件通知招聘负责人你的决定。电子邮件的主题应该是雇佣或者不雇佣。接着你需要在正文中写两段来支持你的决定.
在面试前,我非常,非常当心,避免自己先入为主。如果在面试前你就已经想当然地认为,一个麻省理工的博士一定是一个有头脑的人。那么在接下来的一小时的面试时间内,无论那个麻省理工的博士说什么都不能改变你的最初印象。如果在面试前你就认为这个应试者是个傻瓜,那么他面试时说什么也无济于事。面试就象一个非常精巧的天平。一小时的面试结束后就要对一个人下结论是不容易的(但是你又必须在面试结束后得出结论)。一些不起眼的细节可能会影响最后的结论。如果你在面试开始前对于应试者有了一点了解的话,就好比天平的某一端加上了重重的砝码。这样面试本身就会变得没有用处了。以前有一次在面试前,一个招聘负责人跑进我的房间说,“你肯定会爱上这个家伙的!" 对一个男孩? 天哪,这简直让我发疯。我本来应该说,“嗯,如果你这么确定我会喜欢他,为什么你不干脆雇佣他,何必让我浪费时间来面试?”但是那时我还太年轻幼稚, 所以还是面试了那个人。当这个家伙开始说一些蠢话时,我对自己说,“哇塞,这应该是个例外情况,也许是大智若愚。”我开始带着玫瑰色眼镜看他了。于是我以说“雇佣”结束了面试,虽然他是一个糟糕的面试者。接下来发生了什么事?除了我,其他的面试官都说,不要雇佣这个人。教训是,不要听别的人的话,在面试应试者前不要四处打探这个面试者的情况。最重要的是不要和别的面考官谈论应试者,除非你们都已经作出了独立的判断。这才是科学的做法。
现在我们谈谈清单上的第三款,无法回答的问题。这很有趣。这个主意的关键在于问一些不可能有答案的问题,就是想看一下应试者怎么办。“西雅图有多少眼科医生?”“华盛顿纪念碑有多重?”“洛杉机有多少加油站?”“纽约有多少钢琴调音师?”
关于编程问题,我通常要求应试者用C语言写一些小函数。以下是我通常会出的题目:
注意,通常你不会希望他们写的代码多于5行,因为你没有时间理解太长的代码。
第三个问题可以考考面试者对C的位运算的掌握,但这是一种技巧,不是一种品质,所以你可以帮助他们。有趣的等他们建立了一个子函数用来计算byte中为1的位的数目,然后你要求他们优化这个子函数,尽量加快这个函数的运行速度。聪明的应试者会使用查表算法(毕竟这个表只有 256个元素,用不了多少内存),整个表只需要建立一次。跟聪明的应试者讨论一下提高时间/空间效率的不同策略是十分有意思的事情. 进一步告诉他们你不想在程序启动时初始化查询表。聪明的面试者可能会建议使用缓冲机制,对于一个特定的byte,只有在第一次被查询时进行计算,然后计算结果会被放入查询表。这样以后再被查询时直接查表就行了。而特别特别聪明的面试这会尝试有没有建立查询表的捷径,如一个byte和它的置1的bit数之间有没有规律可循?
不可避免的,你会在他们的程序中发现bug,于是我们现在来到了第五个问题:你对代码满意吗? 你可能想问,“好吧,bug在哪里?”这是来自地狱的一针见血的问题,要回答这个问题可要大费口舌。所有的程序员都会犯错误,这不是问题。但他们必须能找到错误。对于字符串操作的函数,他们通常会忘记在输出缓冲区加上字符串结束符。所有的函数,他们都会犯off-by-one错误(译者按:指的是某个变量的最大值和最小值可能会和正常值差1)。他们会忘掉正常的C语句结尾的分号。如果输入是零长度字符串,他们的函数会运行错误。如果malloc调用失败而他们没有为此写好错误处理代码,程序会崩溃。一次就能把所有事情做对的程序员非常,非常,非常地少.不过要是真的碰上一个的话, 提问就更有意思了. 你说,"还有Bug"。他们会再仔细地检查一遍代码。这个时候, 观察一下他们内心是否开始动摇了, 只是表面上勉强坚持说代码没有问题。总之,在程序员写完代码后,问一下他们是否对代码满意是个好主意。就像Regis那样问他们!(译者按,Regis Philbin是美国ABC电视网的游戏电视节目主持人,他的口头禅是“这是你的最后的答案吗?”)
于是我们来到了第七部分,挑战。这部分很好玩。在面试中留心一下, 当面试者的回答绝对的百分之百毫无争议时, 你可以说: " 嗯, 等一下等一下." 然后花上两分钟玩一下魔鬼的游戏(译者按,原文为devil's advocate,魔鬼代言人指的是违背自己的良知,为错误邪恶的观点辩护). 记住一定要在你可以肯定他正确时和他争论。
不得不承认,面试双方的地位并不是平等的。有可能应试者由于害怕你的权力而不敢于你争辩。但是,好的应试者有足够的热情和勇气坚持正确的观点,他们由于热切希望说服你而会暂时忘记正在被面试。这样的人就是我们要雇佣的人。 |
面试之站在面试官的角度去面试相关推荐
- 参加面试除了带简历外还要带哪些去面试
导语:面试是对你大学过往经历的考察,也是对求职前准备功课的考察.大学的经历已经没有机会再修改,但是你依然有机会多做一些面试准备,把让自己的面试更加出彩. 下面高校人才网就和大家分享参加面试除了带简历外 ...
- 站在集成平台的角度去看待医院系统的查询需求
1.背景介绍 客户:北京电力医院 所处角色:电力医院集成平台项目组 需求来源:多功能自助机 需求描述:多功能自助机需和集成平台做一些查询接口,其目的是为了获取患者的基本信息.缴费信息.处方信息.检查检 ...
- 站在招聘者角度看面试 | 掘金技术征文
背景 本文主要介绍我在日常中怎么去招人,面试人,关注点是什么,以及怎么找到合适自己团队的人才. 我目前任职一家大数据小公司,负责前端团队,由于业务的扩展需要很多技术人员,站在一个招聘者的角度去看待面试 ...
- 从Java面试官的角度,如何快速判断程序员的能力
临近年关,今年面试跳槽的人特别多,关注我的朋友都知道我不轻易做分享,因为这没有标准答案,看法也因人而异.但我发现有些面试问题还挺普遍的,今天就说说我做面试官这几年的经验,从面试官的角度去看面试,希望对 ...
- 从面试官的角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议...
谈到程序员(尤其是零项目经验的程序员)找工作,培训班是个不可回避的讨论热点.虽然本人也做过兼职Java培训老师,多少了解些培训班的事,但在这问题上无意为任何培训学校站台.而且本人一直在做技术面试官,所 ...
- 从技术面试官的角度来谈谈简历和面试
公司组织了几次校园招聘和社会招聘,今天也来谈谈面试中的那些事儿. 简历 简历的重要性不言而喻,如果简历写得很好,我们在心中可能已经有了聘用他的想法,邀请候选人只是验证这个想法的正确性,看看候选人是否有 ...
- 从技术面试官的角度谈谈简历和面试那些事儿
公司组织过多次校园招聘和社会招聘,忝为首席架构师(因为项目组就一个架构师~~人工摊手),在招聘技术专家组中浑水摸鱼.鱼目混珠.插科打诨,所以也谈谈面试中那些事儿. 首先说一句,找工作最重要的是方向,方 ...
- 面试B站,结果面试官牵着一条狗出来面试我....这是什么操作??
黑客技术 点击右侧关注,了解黑客的世界! Java开发进阶 点击右侧关注,掌握进阶之路! Python开发 点击右侧关注,探讨技术话题! 前两天我去B站面试,结果面试官牵着一条狗就过来了,这是个什么操 ...
- 从面试官的角度谈谈后端面试
这是我想不到的,刚实习结束,就要做面试官. 挑选别人的简历,然后安排机试,笔试,以及最后的面试. 我简单的谈一下,在整个过程中的感受,希望能给投简历要参加面试的小朋友一点帮助吧! # # 招人的目的 ...
最新文章
- C++读取文件名,过滤文件路径及后缀
- stella forum v 2.0 的两款主题样式
- Python数据分析pandas之dataframe初识
- 从最小二乘到岭回归(Ridge Regression)的深刻理解
- OrchardCore 如何实现模块化( Modular )和 Multi-Tenancy
- 2.图像作为函数 | 标量、函数、混合图像_6
- CentOS常用基础命令大全
- linux下使用fread读socket套接字的注意点
- Java游戏开发框架LGame-0.2.6发布(含PC及Android版)
- Http Simulate
- android 开发按键精灵,安卓按键精灵实现后台
- 英语对程序员来讲有多重要?不会英语可以做程序员吗?
- 微型计算机的微处理器芯片集成了,微型计算机的微处理器芯片上集成了什么东西...
- 还在为满意的渐变色发愁吗?10+个网站帮你解决烦恼
- VM技术(一)NES模拟器VM综述
- 一个简单的推荐系统实现
- 解决 python安装pip问题
- 豌豆荚Hack Day:百宝袋负责人访谈
- 医疗管理系统软件 linux系统,MyPatients 4.0.2 发布,医疗信息管理系统
- flash怎么强制gc_Adode Flash初级教程
热门文章
- 标称型数据和数值型数据
- C++ - 多继承方式会产生多个虚函数表
- 807-C++多继承下,派生类对象有几张虚函数表?
- 成立 4 年估值 20 亿美金,这家国货美妆找到了新的人口红利
- MIMIC-IV v2.0数据库
- 点击评论区让键盘弹起uni-app
- PHOTOSHOP CC 2019 无法导出渲染视频的解决文案
- 微信什么时候支持鸿蒙,若微信只支持鸿蒙抛弃安卓,结果如何?别傻了,腾讯不会“作死”...
- 千万不能笑,千万别笑,不能笑!我真的不是有意逗你笑的~
- 西瓜皮——被丢掉的真金白银,夏天的健康守护神