面试的时间是在 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 的使用和对象设计处理能力吗?
如果面试只是纠结这个逻辑是不是完成了,而毫不关心对面向对象的使用,框架的使用,设计能力,编译能力的考察的话,我只能说是有点奇葩了。
同学们,你们怎么看?
欢迎在下面留言,讨论。