近日,Reddit网友Mogady分享了自己在一家公司的面试经历。这段经历让他很沮丧,因为他觉得面试与ML工作者的实际能力无关是不公平的。我们先来看看他描述的采访过程。我有4年的NLP经验,最近在找一份远程工作,我申请了一家声称他们只雇用前3%的公司。当然,没有人知道这个数字是怎么来的。我申请了两次,第一次通过了codingtest,但是技术面试失败了,因为我没能在30分钟内解决2个问题。第一次面试失败后,反思自己的弱点,意识到解决问题才是求职面试的关键,于是在Leetcode上刷了一些题,然后申请了同一家公司的面试。这次我直接进入了技术面试阶段,他们给了我一个数据集,让我在30分钟内得到一个NLP方法,准确率达到96%,期间我只能浏览文档,不能在StackOverflow或Google搜索。我想这应该是对我理解问题能力的考验——它要我快速、很好地处理给定的数据。经过几次迭代,准确率达到90%,然后时间到了。但是我告诉面试官如果我有更多时间我会做什么。第二天面试官给我发了一封拒绝邮件,我让他们给我一个理由,他们说:“面试成功的人可以在给定的时间内获得更好的表现,因为这些人知道Pandas库的功能可以帮助他们快速完成编程。”但是根据我几年实际NLP工作经验来看,Pandas和Jupyter通常只是用来分析数据的,如果你真的在做一个项目,你可能希望尽可能去掉pandas的库函数。所以,做多一行代码不代表我不是前3%,如果公司因此拒绝我,我能说前1%连代码都不需要吗?他们只需要熟悉各种工具,有问题可以靠工具自己解决。如果他们认为从头开始构建项目不重要,我注定无法通过面试。显然,莫加迪对此非常恼火面试经历,他疑惑:“为什么现在所有的问题都用解决的速度来衡量?”莫加迪的经历引发了很多网友的讨论,有人说这很现实:“面试确实衡量了应聘者对面试中常用工具的掌握程度。”行业并专注于工具用得最多。一些企业通常也想尽快为客户创造价值,而不是想太多细节。这也会影响他们选择雇用的人。”但是,有些人在构建项目的具体问题上进行分析,认为压缩源代码(例如,用一行代码完成操作)不利于项目的长期运行。两者之间没有区别。一行编译好的机器码和几行代码,几行带注释的好代码是更好的选择。一位身为技术总监的数据科学家说:“用熊猫图书馆功能。更重要的是如何扩展和推广算法。我会更加关注这一点,而不是盲目选择只会加快训练速度。雇员。”还有人从公司层面看这个问题:“如果一个公司只考虑ML方法的速度,那么他们可能只想尽快赚钱,而没有长远的考虑。好的公司很看重员工分析和研究问题的能力。”所以不去这样的公司不要紧,没有未来。Mogady的面试经历值得我们深思,无论是对公司还是对个人。面对一个实际问题,能够又快又好地解决问题并不容易。如果您必须在速度和实际利益之间做出选择,您会选择哪个?
