一次注定失败的裸面

用户头像
escray
关注
发布于: 2020 年 09 月 29 日
一次注定失败的裸面

第 1 次面试

2020-09-29

Ruby 开发岗

海淀

待定



这次找工作,在手机上安装了三个 APP:BOSS 直聘、拉勾、猎聘。其中 BOSS 直聘的招聘效果最好,偶尔有人翻我的牌子,我也偶尔投递一两份简历;拉勾上基本没有人搭理我,可能相对于互联网大厂我的资历和年龄都是硬伤;在猎聘里面,目前只有猎头顾问来看我,估计用于充实他们的“人才库”。



这次面试就是在 BOSS 直聘上收到的,Ruby 开发岗。



从我个人来说,我还是挺喜欢 Ruby 以及 Rails 框架的,写过一些代码,确实感觉很爽,之前一度想要成为 Ruby on Rails 的全栈开发工程师或者是远程开发工程师。但是 Ruby 的岗位似乎不是那么多,而薪水也不是很高(可能是因为入门很容易?),所以后来基本上放弃了,转而参加极客时间的 Java 训练营,打算找 Java 方面的岗位。



据说中国有超过百分之五十的开发者使用 Java。



没有特别的去准备,只是在面试之前,简单复习了一下 Ruby 的语法。如果下次还有面试 Ruby 的机会,我一定不会这样“裸面”了。



到了公司楼上,在会议室里等了一会儿,有人给发了两张面试题,很久没有这种参加考试的感觉了。四道基础知识问答,一道系统设计,看了一下,都不太会,裸面的结果。



于是硬着头皮,把自己知道的东西写了上去,然后鄙视了一下自己的硬笔书法。在系统设计的题目上花的时间略多一些,关于抽奖系统的,感觉挺有意思的。可能是因为面试的比较少,所以对于系统设计有点缺乏经验。



后来还有时间,就又用手机搜了一下答案,然后也填在了下面。不知道有没有监控,但是我觉得本身也不是考记忆力,只是给后面的面试提供一个谈资。



面试题留在下一篇再说。



大概四十分钟之后,先前发题的小姑娘把面试题拿走了。不会因为我答的不好,连面谈的机会都没有吧。



然后技术负责人进来,看上去和我年龄差不多大。



面试官看了一下我的两页纸,就其中的一道基础知识题和我聊了两句,关于 Ruby 的 block 和闭包,我对这块的解释是有问题的(裸面后遗症)。



然后我们一起聊了一下关于红包抽奖系统的设计。我觉得这个部分应该是面试官比较满意的,我虽然没有给出正确的答案,但是设计思路应该还是比较对头的。



比较有意思的题目是,如果是随机抽奖,如何设计抽奖程序?比如发出去 1000 张二维码,其中 1 个一等奖,2 个二等奖,3 个三等讲,如何抽奖?我当时选择了发牌的方式,1000 张牌,然后前 6 张有奖,洗牌之后随机发放。



后来讨论的时候,我觉的似乎这种方式还有漏洞,另外也还有可以改进的地方。



在过程中,面试官也聊了一下关于技术团队的现状,人数不多,大概有只有 3 个 Rails 开发,还有一些其他的岗位,但是公司的业务发展看上去还是挺不错的,流量应该在百万级。



比较吸引我的地方是他们这里的技术氛围还不错,有单元测试(惊喜,是我少见多怪么?),有重构,还有两周一次的迭代,但是并不强调敏捷开发或者 Scrum。



早 9 晚 6,打卡,不怎么加班,13 薪。



感觉聊的还不错,面试官说需要回去商量一下,让我稍等。



在这里出现了这次面试的第二个失误,没有索要面试官的联系方式。



接下来出场的应该就是大 BOSS 了,也很年轻,让我简要的介绍一下自己。



于是我把自己的经历流水账了一遍,后来发现可能说的有点多,另外语速还是偏快,也没有注意听众是否感兴趣。



BOSS 比较礼貌的听我讲完,然后给我简单介绍了一下公司的情况,以及将来可能的技术方向和挑战,听上去还是很有吸引力的。



最后到了谈钱的时候,果然是“谈钱伤感情”,可能我自己开价有点高,BOSS 说要再考虑一下,我表示价格可以商量。



谈及薪水的时候,BOSS 问我有没有做过管理。因为我并不想做管理,而且这么小的团队,还有之前的面试的技术 Leader,我就说没怎么做过。然后 BOSS 说,如果单做技术的话,价格是有点高。其实这个时候,要么表示自己能做管理,要么就说自己可以“三项全能”,可能是更好的表达。



等通知,有一点期待……



面试题目:



  1. 概述 Ruby 中的 object,class, module,并用图形说明他们在对象模型中的关联关系。

  2. 简述 Ruby 中的代码块(Block),以及代码块的闭包。

  3. 如何编写一个 module 可以使得 include 该 module 的 class 即可以获得该 module 的实例方法,也可以获得类方法。

  4. 简述 Rails 中的 MVC,以及 Rails 从接受请求到返回请求的内部流程。



设计一个抽奖系统,需求:



  • 抽奖需要设置若干奖品,奖品可以是不同类型,例如红包、礼品等,每种奖品可以设置中奖概率,以及前提条件,如用户性别、用户年龄等;

  • 需要对参与抽奖的用户做统计,例如何时参加、是否中奖等;

  • 可以应对百万级别的高并发。



请设计并写出此系统需要用到的相关 Model、数据库表、关键逻辑代码实现等。



注:BOSS 直聘上有面试预约,但是我忘记面试签到了,小遗憾。

发布于: 2020 年 09 月 29 日 阅读数: 20
用户头像

escray

关注

Let's Go 2017.11.19 加入

大龄程序员

评论

发布
暂无评论
一次注定失败的裸面