

【记录】创业公司操蛋的面试过程
source link: http://www.androidchina.net/7130.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

硅谷充满了这样的创业公司,疯狂崇拜在面试中能够答对几道编程难题的候选人,并认为雇佣这些人最终会带来双赢的局面:能够解决算法难题宣告着伴随着他们的加入,背后的 VC 公司一定能获得高利益回报。
创业公司:我们正在招募能够革新和改变世界的人!
面试官:请把这个字符移动到此数组上。
大多数创业公司的用户基础为零,但它们仍有可能成功。尽管技术很少是创业公司成功的原因,但我们依然不切实际地将编程难题作为招聘的最佳标准。
公司/HR 该了解自家的需求
面试中遇到的问题,与工作中遇到的问题,两者存在相当广泛的差距。因此人们总是好奇,创业公司是如何脱离初期的孵化阶段。
我是一名产品工程师。我没有正式的 CS 背景,但我会做 Web 相关的东西,并且还很擅长。在过去的 10 个月中,我一直在不断地进行面试,从未如此近距离的面对视图、控制器、甚至模型。并不是每个公司都坚持使用编程谜题作为招聘的技术指标,但使用这种方法的公司,基本上都完全聚焦在解决现实世界中不存在的奇特算法问题。
面试官: 怎样写一个完成此操作的方法?
我:在 Ruby 中写一行代码。
面试官:OK,那如果现在你不能使用标准库呢?想象一下这是一个 200GB 的文件,你必须在 Ruby 的内存中完成所有操作。
我:我 TM 为什么要这样做?
诚然,对于一些工作而言,面试要求“完全正确的”算法,这并没错。但看看周围,有多少小型、不到 50 人的创业公司在做着这样的工作?业内有个不为人知的秘密,就是大部分创业公司在头几年,做的都是“响当当的”CRUD(增删改查)应用程序,并且认为能够产生最大影响的全面、多样化的人才,往往能够身兼数职。
你更需要担心的是,你是否招错人了!
现在的趋势是,公司普遍采用编程谜题来招人,这往往让那些不擅长技术面试但其他方面优秀的人才,在面试中失利。
基于算法的难题通常是这么来的:面试官陶醉在自我欣赏、自命不凡的氛围中,想出了一些他们认为能够体现聪明才智的东西。 (解决前面那种算法题的)可靠方法是,从一开始就采用递归思路来解决问题。(这对于面试官而言,是一种诱惑。)如果这行不通,请再次尝试一次通过,而不是在 O(n) 操作中尝试。此时,即使只节约了额外的 1 ms,也一定能向公司证明你的价值。
从这个角度来看,你马上给未来的同事(应征者)传达了一个信息,“正确答案只有我知道,而我希望你能得到它”。这样会让他们更有压力,因为你向他暗示了存在着一个正确答案。
在我的职业生涯中,我完成的每一个产品都没有所谓的正确答案。它更像是雕刻大理石雕像:你对想要呈现的东西有模糊的概念和理解,而你必须通过不断地削减、雕琢它,来最终获得一个可能的结果。你和你的队友在此过程中一起获得最终答案,而不是以一个先入为主的答案,来指导你的同事独自获得它。
合作面试(作者的观点,后面还有例子)
这就是为什么有时我在面试过程中,强烈地主张结对编程。拿出一个小时,用来讨论 Bug 或一起想要获得的功能。今天没有发生什么有趣的事吗?这个 Bug 太“无聊”了吗?
好吧,那你为什么要这样做呢?如果这是候选人在工作中会实际碰到的典型问题,那么你值得在面试中一试。此外,即使只是最简单的错误修复,你也可以从别人那里学到很多东西。
一起做一些真正的东西。这样做完全能够改变你的动力,我一直是这样强调的。从前你独自努力地寻找一个只有你知道的秘密,但现在你们团队合作,钻研一个答案未知的难题。以前你们是独立对抗,而现在则是团队合作。这会让你的候选人放心,更容易施展技能。
没有人知道他们在做什么
技术面试中还有很多疯狂的事,我听说过,并且也曾经历过。
Max Howell 曾为开发过热门的一个工具 (Homebrew),你可能听说过他在 2015 年在谷歌面试时被拒。谷歌面试官认为他不是一个合格的开发人员,因为他没能在白板上写出(二叉树翻转)算法。
去年,我参加了一场巨头创业公司的面试,争取工程主管的职位,而当时公司的高速发展导致了一些基本问题,使得数百名开发商的产品无法顺利出货。我和公司的 CEO 和 CTO 进行了一次很好的讨论,关于对整个流程、CI、部署和管理架构进行全面的改革。然而,当我进入非编程领导岗位的最后一轮面试时,内容则几乎完全是由初级开发者问我初级的 JavaScript 问题。我在这样的情况下退缩了。
你看,我现在明白了,面试需要花费时间和精力,而大多数人只想回到做事的阶段。提出一个标准化问题,可以让你以更少的精力做更多的事,并让你比较不同候选人的能力。
但是,选上的候选人是否合适,这需要花费长时间来验证。大多数处于初期阶段的创业公司,对候选人(特别针对早期员工)所需要的技能集,太过炫目和繁杂了。它们期望候选人懂得:产品、代码、营销、设计(全能选手),会沟通,并且饱含热情。你不能像微软或苹果那样过滤掉其他人。它们是大公司,让我第一个提醒你:你并不是它们,你有不同的优先事项。
哎,反正我也没通过那些操蛋的面试!
转载请注明:Android开发中文站 » 【记录】创业公司操蛋的面试过程
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK