森果云面试经历

上面刚刚面试完森果云,2小时48分,接近 3 个小时,有点特别的一家公司,记录一下。

整个面试有三轮。

一面

一面技术面问一下基础的和技术相关的知识点,我是精通 Java 熟悉 Python,面试的岗位是 Python 工程师。所以和 Python 一些底层相关的我不知道,但是我可以通过大致的思路,讲解整个流程,一面有个非常好的体验是,如果哪里回答错了或者没答出来,面试官会直接告诉我。

我回忆着有这么几个问题。

Python 浮点数计算如何保证精度

比如 0.11 - 0.1,这个原理是二进制存小数有精度丢失问题,我回答说要么都乘以 100 都转成整数计算,要么用 decimal 类型包装一下。

其实我的确不知道 Python 的,但是在前端、MySQL 这些地方,也同样面对类似的问题,尤其是和钱相关的,基本上就这两种解决方案。

多态是什么

坦率的讲忘了,但是我扯到了下设计模式和 5 大设计原则,讲了下在真实场景的运用,其中说到了策略模式。正好这个就是多态的体现,最终虽然没回答出来,但给面试官体现的是已经在用了,只是没说出来定义。

Python 于 FastAPI 的功能点

像 GIL、单线程多线程、asyncIO、中间件等等,这些东西我之前写了四篇文章和 Java + Spring 有对照,回答这些都没问题。

开放题,随机抽取 1-100,如何让 1-50 的概率是 51-100 的 2倍?

我说在列表里面放两遍 1-50 🤣🤣,面试官说太简单了,换个。

于是我换了种思路,把总体的概率设计为 1,相当于是吧原来 0.5:0.5 的平衡转为 0.67:0.33,那在抽中 51-100 的 0.5 概率中,把其中的 0.16 算作 1-50,也就是抽中 51 - 100 的时候再计算一遍概率,如果是 0.16/0.5 则算做 1-50,否则是 51 -100。

但是我这里没解释清楚,面试官没理解,后来 AI 问了下,也可以前置现在 1 2 3 中抽一次,抽中了 1 2 再去 1 - 50 中抽,抽中了 3 去 51 - 100 中抽。

还聊到了 AI 相关的内容,和二面有重叠,我放到二面里面说。

总之一面的目的是筛选技术合格的,有工程师思维的,没太局限语言。话说回来语言都是相通的,我认为精通某一门语言,3 个月时间就可以精通另一门。

二面

接着是二面,是这边的技术负责人,我们先聊了 AI,这家公司希望招聘到对 AI 有理解,能带领团队做 AI 赋能产研提效,我正好有相关的经验,我也在之前的文章里面把思路和流程都写了。

这是个比较稀少的经验,虽然现在 AI 非常火热,但大部分人都只用于写代码,这样的提效非常有限。于是我把之前做流程提效的案例演示了一遍,从整个流程层面让 AI 提效更多。

其实这里只用抓住一个核心,业务需求在人的脑子里面,要给 AI 做实施,就要以 AI 能听懂的方式告诉 AI。

所有的规范、提示词、流程,都是为了更切合 AI 为目的实现的。

基本的数据结构和算法

像是 Set、Map、List 这些,我分别说了这些,再说了以此为基础的扩展,像是 hashMap LinkedList等等。

怎么实现 LRU 算法实现,最近最频繁使用。

我说用两个 Map,一个 k 是时间戳,存 Value,另一个 K 是 Value 存次数。再分别说明了在新增、删除、排序的两个 Map 怎么操作。

在秒杀场景,比如 1w QPS 抢 5 个商品的时候,系统怎么设计。

我回答从前端页面开始做好限频,在请求打入后端后用 Redis 承接,接着分两种情况,要么是一点都不允许超卖,把大量请求通过 Kafka 做成顺序的,只消费前 5 个;要么是允许超卖,把后买的人自动退款。核心是不能让数据库一次性接收过量请求打崩了。

开放题,高德地图的红绿灯读秒倒数怎么设计

我说路政和市政这些会有数据给高德,核心是解决不准的问题。可以通过检测导航比如原本是 30s 倒计时,但大家在 10s 都走了,说明这里可能有问题,把这些问题上报做进一步处理。

另一个有些红绿灯在每天不同的时间段的倒数是不一样的,在早晚高峰和平时有差异,就做个比如以天为单位的策略。

一面聊的更多是技术细节,二面聊的是技术整体,架构、方案怎么设计之类的,我觉得二面比一面更简单些。

三面

接着到了三面,三面是 CEO 面,我在来公司前调研了公司的情况,包括融资、创始人采访等。现在的 CEO 是联合创始人之一。

这是一家 ToB 方向的公司,做果蔬数字化的,整体节奏比较慢,做的事情也真实有价值,区别于互联网搞快钱那种模式。这也是我比较欣赏的一点。

CEO 表明希望以合伙人的姿态招人,可以感受到一二三面对人不同角度的审视,所以我也切换不同的思维来回复。

学历对我求职的影响

因为我是在 2014 年考入湖北工业大学,在 2015 年因家庭困难退学出来打工,当销售在中国电信卖手机,工作了两年攒钱去培训班学了 Java,从此走上编程道路。

这里我说的确有一些影响,但是中国的市场足够大,所以我把整个市场当做搜索,而不是适配,展示最真实的自己,寻找与我最匹配的岗位,最需要我的公司;而不是为了迎合某家公司迁就自己去适配公司。

所以这件事本身虽然有一些困扰,但也还好。

你刚刚说了很多 AI 在研发上的提效,在产品方面怎么提效?

这个好像是二面问的,我有点记不清了。

我说 AI 能提效的前提是人已经先把需求理解的足够透彻,如果一个东西人都不了解,交给 AI 去做一定做不好。

针对产品侧的提效分为两个方面,实施和思考。

实施方面在原型图、流程图等实现方面 AI 要快,比如 figma,思考方面当然在画图前人要先了解状态机、业务架构等等,这里人要有个重要的特质是知道自己不知道,把不知道的部分用 AI 补全,做出更完善的流程图和架构。

怎么判断一个人 AI 是否真的有经验?

我说从技术层面,得有个会 AI 的人和面试者聊,真正的知识在细节里面,如果到了很底层两边都能聊上来,那就说明面试者是的确有能力的。

从业务层面,如果 AI 可以帮助降本增效,就说明是有用的。

怎么保证把你招进来后心思在工作上?

最后 CEO 很坦率的讲出了她的疑惑,她表示看我平时折腾的很多,怎么保证我招你进来了后,你心思在上班上?

这个问题的确坦诚🤣🤣,但是我也说出了自己内心真实的想法。

我喜欢纳瓦尔最新一次的采访,纳瓦尔说人生有三个重大决策一定要仔细思考,其中一个是做什么事。我现在对下一份工作有 3 年的规划,所以我会仔细的审视,一旦确定,我将要投身于此。

人生早期探索阶段做加法,对任何新鲜的事物都说 yes,随着对自身理解和见识的增长,要开始学会做减法,对一切其他事物说 NO,专注于手头的事情。

很多时候搞副业的本质还是为了赚钱,如果说已经有了足够的金钱,那会做什么呢?思考的足够深刻后,我的回答是和这个世界做互动,我为社会创造一些价值,世界给我一些反馈。如果说现在做的事已经是财务自由后想做的,那为什么还要去搞副业?

另一方面我现在对物欲没那么大的需求,相比较更多的金钱,我希望一个事做成后,那种满足感、成就感会更持久,我会追求那些。

相比较这个问题,我真正思考的是我能不能在这个行业长久的以一种平静甚至愉快的情绪做下去,我以前认为只要对一件事有兴趣,就可以无视其他任何东西做下去,实际上不是的,环境的影响、外界的反馈都有很大影响,但改变环境本身也是一种智慧,比如在家总是玩就让自己去图书馆学习。

所以一旦我接受了 offer,即说明我们目标一致,我会竭尽全力朝着目标前进,如果在过程中发现不对,及时沟通调整,如果最后实在发现有缘无份,那就好聚好散,这相比较硬撑到最后大家都很痛苦,是一种更高效的方式。

当然这个回答是我整理后的回复,我现场的回答没这么有逻辑,主要是三个小时啊,我有点顶不住了,上一次连续三个小时还是王家墩那家公司。

总的来说我对这家公司给我的体感是一家有人情味的公司,我看到有人带小孩来公司,HR 和他们有说有笑的,面试空隙和我看了整体的工位,没发现斗殴,没看到产品与研发撕逼,面试官们整理也是和蔼平等尊重的态度,没有居高临下审判的感觉。大家围绕着创造价值,有条不紊的进行着工作。我没去这家公司工作过,此观点仅供参考。

相关推荐
零雲2 小时前
Java面试:@Component和@Bean的区别是什么
java·开发语言·面试
用户6802659051193 小时前
如何利用 Endpoint Central 提高企业终端管理效率
javascript·后端·面试
风止何安啊4 小时前
Set/Map+Weak三剑客的骚操作:JS 界的 “去重王者” ,“万能钥匙”和“隐形清洁工”
前端·javascript·面试
凛_Lin~~4 小时前
安卓 面试八股文整理(原理与性能篇)
android·java·面试·安卓
程序员爱钓鱼5 小时前
用Python开发“跳一跳”小游戏——从零到可玩
后端·python·面试
程序员爱钓鱼5 小时前
Python 源码打包成.whl文件的完整指南
后端·python·面试
努力学算法的蒟蒻5 小时前
day47(12.28)——leetcode面试经典150
算法·leetcode·面试
东东的脑洞6 小时前
【面试突击】TCP 四次挥手详解
网络·tcp/ip·面试
37手游后端团队7 小时前
Cursor 工作区使用技巧:让 AI 真正理解你的多项目协作
后端·面试·架构