Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

没用Pandas快捷方法,硬核编程的我面试被拒

代码简洁就是高效?

近日,Reddit 上一位网友 Mogady 分享了自己在一家公司的面试经历。这段经历让他感到沮丧,因为他觉得面试并不是在考察 ML 工作者的实际能力,这是不公平的。我们先来看看他讲述的面试过程。

我有 4 年的 NLP 经验,最近想找一份远程工作,于是我申请了一家公司,该公司声称他们只雇佣 top 3% 的人。当然,没有人知道这个数字是怎么来的。

我申请了两次,第一次通过了编码测试,但没有通过技术面试,因为我没能在 30 分钟内解决 2 个问题。

第一次面试失败之后我反思了自己的弱点,并意识到解题才是工作面试中的关键,于是我在 Leetcode 上刷了一些题,然后又申请面试同一家公司。这次我直接进入了技术面试阶段,他们给我一个数据集,要求我在 30 分钟内让一个 NLP 方法的准确率达到 96%,其间我只能浏览文档,不允许用 StackOverflow 或谷歌搜索。我想这应该是在考察我理解问题的能力——想让我又快又好地处理给定数据。

经过几次迭代,准确率达到 90%,然后时间到了。但我告诉面试官如果我有更多时间,我会怎么做。

第二天面试官给我发了一封拒绝邮件,我要求他们给我一个理由,他们说:「面试成功的人可以在给定的时间内获得更好的性能,因为这些人知道 Pandas 库函数能帮他们快速完成编程。」

但是根据我几年的 NLP 实际工作经验,Pandas 和 Jupyter 通常只用来分析数据。如果你真的在构建一个项目,你可能就想尽可能摆脱 Pandas 库函数。因此,不只用一行代码完成操作并不意味着我的能力不是 top 3%。

如果该公司因此拒绝我,那么我是否可以认为 top 1% 的人甚至不需要编码?他们只需要对各种工具得心应手,问题就能靠工具自己解决了。

如果他们认为从头开始构建项目并不重要,那我注定不会面试成功。

显然,Mogady 对这段面试经历感到非常懊恼,他提出疑惑:「为什么现在所有问题都以解决速度为衡量标准?」

Mogady 的经历引发了网友的诸多讨论。有人表示这很现实:「面试确实会衡量应聘者对行业中常用工具的了解,并将重点放在最常用的工具上。一些公司通常还希望尽快为客户创造价值,而不考虑太多细节。这也会影响他们选择雇用谁。」

图片

但也有人从构建项目的具体问题上分析,认为压缩源代码(例如用一行代码完成操作)不利于项目的长期运行。一行代码编译之后的机器码和几行代码没有差别,而几行有注释的好代码是更佳的选择。

图片

有担任技术主管的数据科学家表示:「使用 Pandas 库函数编写一行代码不是什么重要的事情,更重要的是如何扩展和泛化算法。我会更看重这一点,而不是盲目选择只会加速训练的员工。」

图片

还有人从公司层面看待这个问题:「如果一个公司只考虑 ML 方法的速度,那么他们可能也只是想尽快盈利,而没有长远发展的想法。好的公司在意的是员工分析和研究问题的能力。」所以这样的公司不去也罢,没什么前途。

图片

无论是对公司还是对个人,Mogady 的面试经历都值得我们思考。面对一个实际问题,又快又好地解决问题不是易事。如果要在速度和实际效益上选择一个,你会怎么选?

参考链接:https://www.reddit.com/r/MachineLearning/comments/y7708w/d_how_frustrating_are_the_ml_interviews_these/

工程技术面试
相关数据
数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

Jupyter技术

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。

暂无评论
暂无评论~