一次谈不上有点内卷的美东某金融公司面试

面试的时间是在 2021 年的 11 月初开始的。

从投递简历开始到拒绝一共经历了 4 轮,在第 4 轮代码的过程中被拒绝。

拒绝的理由是,提交的代码没有完成题目指定的目的,目前他们找到比我更牛逼的人了。

对这个理由,我只能是呵呵一笑,在本文的最后我会把题目和我的代码作为附件发出来,供有精力跑跑的同学去看看吧。

大家看看到底是不是这个原因?还是只能说这个团队是奇葩,其实我们也不能上升公司层面,可能就是这个团队是奇葩罢了。

相关背景

公司方向是做金融和资产管理的。

虽然公司是做金融和资产管理,但是并不是所有 IT 都和这个有关系的,应该是公司内部希望做一个处理项目等。

HR 是白人,相对来说还是比较好沟通,具体面试的人是印度人,谈不上难沟通,其实还是比较好说话的,整个面试的 1 个小时还是非常顺利。

在面试完成后的第二天,发了一个代码题目过来,希望我完成。

这个题目说是有 3 个小时去完成,其实是一个设计题目,并不需要在线代码,也没有完全的时间限制,具体自己掌握。

在提交代码后的 3 天,他们给出了上面的结论。

第一轮 —— 公司介绍和技术

第一轮是电话沟通,在投了简历后的不久,HR 有人联系我说约个时间来电话详细聊一下。

聊天的内容还是非常多的,主要有你曾经做过的想,Java 有关 OOP 的内容,多线程,关键字,设计模式等等。

多线程是如何进行控制和调试的,关键字有哪些,你是如何进行编码的。

个人感觉这部分的内容还是非常多的,你需要对 Java 的多线程和线程安全有些了解才能答得上来。

第二轮 —— 技术面试

这个部分是 Zoom 的在线视频面试。

这部分面试的人是一位印度女性,她的语言没有什么印度口音,发音还算是非常清晰。

在这部分中主要讨论了我曾经做的一些项目,和在这些项目中有些什么样的问题。

同时在这部分对 Java 数组的遍历有过一些讨论,这里主要还是讨论了线程安全的问题,比如说遍历上面会不会有线程安全的考虑等等。

整个过程还是非常轻松的,问题不大。

第三轮 —— 代码

出问题的地方在这轮。

其实这个也没有什么好说的下面就是他们代码要求的问题:

为了不找麻烦,我将内容截图了。

下面就是中文的土话解释了:

实现一个租车系统,使用的是 OOP。

这个系统允许完成对车的预订:给定的参数是车的类型,预订时间和天数。

车的类型有 3 种类型,同时使用 Unit 测试

今天再次阅读这个题目后,我的测试应该是完成了车的预订,因为题目没有说要对还车进行考虑和逻辑设计,所以我只做到了返回确认码。

我认为这个题目的主要目的是考察 OOP 的问题,而不是完成整改逻辑流程,因为题目来看并没有要求完成还车等逻辑流程。

代码请参考附件。

Demo-Cars-Rental-main.zip (41.6 KB)

本来这个代码是放在 GitHub 上的,为了不找麻烦,我就作为附件上传了。

运行结果为:

上面显示了完成预订后的确认码。

总结

针对上面的回复我的想法还是呵呵的。

这显然有点奇葩的回复,你出的这个题目的目的是什么呢?不就是要考察对 OOP 的使用和对象设计处理能力吗?

如果面试只是纠结这个逻辑是不是完成了,而毫不关心对面向对象的使用,框架的使用,设计能力,编译能力的考察的话,我只能说是有点奇葩了。

同学们,你们怎么看?

欢迎在下面留言,讨论。