我要说的本质上可能有点争议,但是今天我很沮丧-所以我会问这个。
我刚刚接受了一家大型技术公司的实习职位面试,并被问到了很多典型的面向算法的面试问题。现在,考虑到我的背景,我认为自己在算法方面很强(我在研究生级别的算法上也取得了不错的成绩-涉及NP完全性和超越(近似和随机算法)的东西,但是不幸的是,我未能通过面试。想想一种在大约10分钟内解决字符串问题的非常有效的方法,面试结束后,我喝了一杯水,吃了一根香蕉,放松了一会儿,然后再次尝试该问题。我可以在5分钟内到达,最糟糕的是-我确实在那条路上,面试官确实暗示了这一点,但是压力太大让我无法接受。我的整个经历使我开始思考技术面试。我有一些问题,我想在这个论坛上提出他们-
真的可以在半小时内判断某人的技术能力吗?老实说 还是只是掷骰子?
技术面试问题是否衡量解决问题的能力?这点很值得商??作为一名博士生,我知道数学问题解决涉及解决以前从未听说过的问题。另一方面,一旦有人事先知道解决方案或解决了问题,诸如-按排序顺序合并两个链表,或在第k级打印二叉树的所有元素之类的问题就变成了“纯粹的练习”?
在这些面试中脱颖而出的人会继续成为优秀的程序员吗?他们是否继续设计时尚的游戏引擎,图形库,编写快速的fork-join框架?有没有证据表明在技术面试中表现出色与实际编程能力之间存在正相关关系?还是这些采访更适合于寻找“完成工作”类型的人(Spolsky)?
我敢打赌,许多发表创新思想的学者-ICML,VLDB,Mobicom-都会使这些采访失败。但我可以向您保证,他们是您将在这个星球上找到的最聪明的人。
我主要在学术界(研究生)学习-因此,我将不胜感激栅栏另一侧的人提供的感知能力。实际进行这些采访的人是谁?
[大家好。感谢您的所有体贴和体贴的回答。由于我不想再问其他问题,因此请您为我回答这个问题。
假设候选人X拥有良好的公开作品集,并且他在某个已知的开源项目中做出了贡献-您实际上可以去验证他的补丁,验证他已经关闭的错误并查看他创建的设计。在那种情况下,问题是您愿意给他的公开/可验证的工作以多大的权重,以及他在不到15分钟的时间内回答一些非常人为的二叉树面试问题的能力如何?]