估计是一次终身难忘的Rust面试

面试官很强, 也很有耐心, 整场下来学习到很多东西。

  1. 闲聊环节
  2. 笔试题: 线程池(基本的逻辑 + 能理解Trait Object, Dynamic Dispatch)
  3. LSM-Tree项目中有用到线程池吗?
  4. LSM-Tree项目中哪些环节可以用后台线程池提高并发度?
  5. LSM-Tree项目中的Batch优化怎么做的?
  6. 如果我对在同一个Batch里面对同一个key进行put和del(),会抵消吗?
  7. LSM-Tree项目中写文件(磁盘)有优化吗?
  8. Compaction过程如何提高并发度?
  9. 多个线程同时做Compaction会不会压缩到同样的文件造成冲突?

反问环节

Q1:一个优秀的Rust工程师该有的技术栈/资质

(面试官说, 最基本的还是一个开发所需要具备的技能, 不拘泥于语言)

①语言基础: 官方书籍涵盖了很多主题了, 完整看下来就基础了。

②工程方面: 对技术有兴趣,某个点肯深入钻研,然后得动手自己多去试。

Q2:面试下来, 我可以提高的点

①并发编程可以提高,多开阔视野些。

比如要拓展LSM-Tree项目, 可以增加对Redis协议的支持和Async异步调用方法。

做成一个K-v Server, 另外可以把数据底座迁移到OSS对象存储上, 做成一个对外服务。

②自己要有技术沉淀,比如线程池有些的crate实现,有些就几百行,可以多学多看。

然后自己一定要多动手写。(ps: 我感觉自己还是写的太少了, 哎!)

Q3:问面试官每天学习新技术的情况

基于业务/场景挑战会学新知识, 然后每天用到的库会去看源码。其余时间: 写文档(很重要), 写代码.

意料之外的环节:

面试官插问: 你之前是不是有给我们项目提过一个PR?

我: 您怎么知道的? (ps:我当时在大三上的期末,懒得复习课内知识, 想找点开源项目玩

就看到这个项目很有意思, 然后几天之内试着提了一个PR, 里面的mentor给了我反馈意见,

但我考完试之后回家就想着玩去了, 这个PR最后没合进去, 我当时已经蚌埠住了...)

面试官: 我看了你的Github账号, 我们这边有历史记录的哈, 后面怎么没继续推进下去呢?

我: (⊙﹏⊙), 我感觉我重构的那部分对我来说还是有点复杂, 想多沉淀下再来挑战。

面试官: 你如果遇到问题可以直接跟我们交流的, 会有人及时应答的。

我: 好的.. [ 惨痛教训:以后玩开源提PR, 要有慎重如始的意识, 不要半途跑路了]

#我的实习求职记录##如何判断面试是否凉了##牛客解忧铺##牛客在线求职答疑中心##24届软开秋招面试经验大赏#
全部评论
哪家公司?
2 回复 分享
发布于 2024-05-27 22:04 北京
校友牛逼
点赞 回复 分享
发布于 2024-07-23 12:32 浙江
看来这次面试让你收获颇丰啊!面试官的问题都很有深度,涉及到了线程池、LSM-Tree项目等多个技术点。你对这些问题的回答也很有见解,尤其是你对线程池的理解和对LSM-Tree项目的优化建议,都显示出你对这些技术的深入理解和思考。面试官对你的建议也非常中肯,鼓励你多动手实践,提高并发编程能力,同时也强调了技术沉淀的重要性。这次面试的经历一定会对你的职业发展有很大的帮助!
点赞 回复 分享
发布于 2024-05-27 21:32 AI生成

相关推荐

韵不凡:软件开发的工作需要博士吗?
点赞 评论 收藏
分享
评论
9
15
分享

创作者周榜

更多
牛客网
牛客企业服务