面试编码测试的可疑价值和真正的挫败感
面试编码测试的可疑价值和真正的挫败感
免责声明
首先,我想澄清我喜欢解决简短的编程评估。这很有趣,我可以提高和更新我对数据结构和算法的知识。我把它比作下棋。专注于游戏并随着时间的推移找到越来越好的解决方案是很有趣的。事实上,在过去的几个月里,我花了很多天在 CodinGame 上解决编码难题,我学到了很多东西。当我意识到我的职业道路不应该受到解决其中一个问题的速度的影响时,问题就出现了。
介绍
许多科技公司使用编码平台来采访软件开发人员。我多次参与这种招聘阶段,有些人参与其中,而另一些人则令人沮丧。
如果你还没有机会尝试,这个想法很简单。你申请一份工作,过程的第一阶段是通过一个编码测试, 衡量你的技能 .现实远非如此,我无法理解为什么它如此受欢迎。公司因押注大数定律而失去了优秀的开发人员:说服尽可能多的候选人开始招聘过程,然后让算法提供随机问题来选择最佳候选人。
不一样的味道,一样的味道
一些测试是多项选择类型,而另一些则需要编写小块代码。同样流行的是有 1 个或多个编码难题。结果是一样的。
魔鬼倡导者
我明白为什么大公司会这样做。当一个空缺职位有 100 名候选人时,如果编码测试过滤掉 80% 的人,甚至是其中的优秀开发人员,这没什么大不了的。其余的仍然很有可能成为市场的佼佼者。我可以看到这将继续下去。对于许多开发人员来说,高薪和接受度高的公司可能会超过繁琐的招聘步骤。
但是中小型公司没有大公司的影响力:金钱和声誉。所以我想谈谈广阔的市场、普通的公司和普通的软件开发人员。不是高技能职位。
误区一:编码速度很重要
大多数时候,开发人员每天花费 2-4 个小时进行实际编码。另外 2 个多小时用于会议、澄清、帮助同事、寻找解决方案、电子邮件、公司仪式、上下文切换活动等。每天超过 1 小时可能会进行一些与工作无关的活动:休息、寻找合适的歌曲以增强能量、查看社交网络或其他任何事情。
误区二:代码优化很重要
好吧,在实现随机功能时,迟早会遇到性能问题。但是很有可能与您如何使用编程语言功能及其框架有关。不是因为您没有重用字符串值,或者您使用了列表而不是数组。不同的编程语言有不同的概念,但你明白了。
误区三:非常了解算法很重要
没有。您不在乎为排序列表实现了什么算法或为字典键实现散列算法。你应该尝试学习这些概念并在某个时候练习这些概念,最好是在你职业生涯的开始阶段。然后,几年后,当工作最终需要理论时,你应该有信心再次跳入理论。
总体感觉
在我看来,开发人员在职业生涯中倾向于避免这些编码测试。当他们认为他们的知识和时间更有价值时,他们感到被冒犯了。一些,因此完全拒绝公司。
现实情况是,您可以知道如何:
- 明确要求
- 估计工作
- 从头开始设计和开发项目
- 编写自动化测试和文档
- 配置 CI/CD 管道
- 成功部署到生产环境
但是在面试的第一阶段失败了,因为你不知道如何递归地清理 JSON 字符串,没有 IntelliSense,没有 IDE,没有互联网,没有你习惯的所有包,最好在 30 分钟或更短的时间内。很多技术和软技能都被忽略了。相信我,它发生在我身上,并不好玩。甚至不值得失望。
我的建议
在这些平台上继续编码以获得乐趣,但要意识到获得的技能只是开发人员经验的一小部分。
注:封面图片仅供参考。该帖子并未抱怨特定平台。它陈述了关于正确衡量候选人技能的观点。有数十个平台为科技公司提供这项服务,并且都使用相同的概念。
最初发表于 https://dev.hodina.net .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明