(给
伯乐在线
加星标,看经典文章
)
编译:伯乐在线/飞哥的咖啡
硅谷充满了下面这种创业公司,它们疯狂崇拜在面试中能够答对几道编码难题的候选人,并认为雇佣这些人最终会带来双赢的局面:能够解决算法难题宣告着伴随着他们的加入,背后的 VC 公司一定能获得高利益回报。
创业公司:我们正在招募能够革新和改变世界的人!
面试官:请把这个字符移动到此数组上。
大多数创业公司的用户基础为零,但它们仍有可能成功。尽管技术很少是创业公司成功的原因,但我们依然不切实际地将编程谜题作为招聘的最佳标准。
了解你的需求
面试中遇到的问题,与工作中遇到的问题,两者存在相当广泛的差距。因此人们总是好奇,创业公司是如何脱离初期的孵化阶段。
我是一名产品工程师。我没有正式的 CS 背景,但我会做 Web 相关的东西,并且还很擅长。在过去的 10 个月中,我一直在不断地进行面试,从未如此近距离得面对视图、控制器、甚至模型。并不是每个公司都坚持使用编程谜题作为招聘的技术指标,但使用这种方法的公司,基本上都完全聚焦在解决现实世界中不存在的奇特算法问题。
面试官:怎样写一个完成此操作的方法?
我:在 Ruby 中写一行代码。
面试官:OK,那如果现在你不能使用标准库呢?想象一下这是一个 200 GB的文件,你必须在 Ruby 的内存中完成所有操作。
我:我 TM 为什么要这样做?
诚然,对于一些工作而言,合格的面试要求“完全正确的”算法。但看看周围,有多少小型、不到 50 人的创业公司在做着这样的工作?业内有个不为人知的秘密,
就是大部分创业公司在头几年,做的都是“响当当的”CRUD(增删改查)应用程序,并且认为能够产生最大影响的全面、多样化的人才,往往能够身兼数职
。
我喜欢的一些推文谈到了这一点:
16 年 1 月 27 日
Trek Glowacki
@trek
我一直在推特上追踪那些我们面试过,但最终被排除出局的面试者的职业生涯。原来我们几乎都错了。
Trek Glowacki
@trek
…我们有一个叫“酒吧大佬”的小组,主要由缺乏“CS 基础”的候选人组成。原来我们错过了这么多优秀的人才。
你更需要担心的是,你是否招错人了!
动力学
现在的趋势是,公司普遍采用编程谜题来招人,这往往让那些不擅长技术面试但其他方面优秀的人才,在面试中失利。
基于算法的难题通常是这么来的:面试官陶醉在自我欣赏、自命不凡的氛围中,想出了一些他们认为能够体现聪明才智的东西。(解决前面那种算法题的)可靠方法是,从一开始就采用递归思路来解决问题。(这对于面试官而言,是一种诱惑。)如果这行不通,请再次尝试一次通过,而不是在 O(n) 操作中尝试。此时,即使只节约了额外的 1 ms,也一定能向公司证明你的价值。
从这个角度来看,你马上给未来的同事(应征者)传达了一个信息,“正确答案只有我知道,而我希望你能得到它”。这样会让他们更有压力,因为你向他暗示了存在着一个正确答案。
在我的职业生涯中,我完成的每一个产品都没有所谓的正确答案。它更像是雕刻大理石雕像:你对想要呈现的东西有一个模糊的概念和理解,而你必须通过不断地削减、雕琢它,来最终获得一个可能的结果。你和你的队友在此过程中一起获得最终答案,而不是以一个先入为主的答案,来指导你的同事独自获得它。