面试经历 – 微派网络服务器研发工程师校招
由 ChatGPT 生成的文章摘要
博主分享了自己参加微派网络“会玩”App海外版服务器研发岗位面试的经历。面试持续了65分钟,虽然在算法方面回答不太好,但与面试官聊得很愉快。面试涉及了自我介绍、对公司和岗位的了解、算法问题、项目经验、数据库知识、编程语言等多个方面的内容。面试官认真地提问了许多问题,从个人经历到技术知识广泛覆盖。面试虽然超时,但面试官认为面试仍未完全结束,并继续询问问题。整个面试过程充满了挑战,但也展示了面试官对候选人的兴趣和耐心。

面试经历 - 微派网络服务器研发工程师校招

于 2024/8/14 19:30 进行的为时 65 分钟的面试,是微派网络“会玩”App 海外版的服务器研发岗位。第一次面这么长时间,面试官基本把我摸清了属于是。面试官人很好,聊的也很开心。算法方面答得实在不太好,其他方面感觉大差不差,也有疏漏但是感觉问题不大。很有意思的是这次面试面试官似乎对我的经历还蛮感兴趣的,听他的意思是其实面试时间已经严重超时了,然而即便如此在反问环节结束以后面试官又突然接着问了我几个问题。

以下是面经:

  • 自我介绍
  • 对公司有一定了解吗,知道这个岗位研发的 App 叫啥吗?看到你涉猎的方向比较广,你个人比较倾向哪个方向?(更倾向研发)对于研发这个方向你更倾向于前端还是后端?
  • 算法题:Leetcode 7. 整数反转(脑子有点没转过来,刚开始绕远了还弄了个栈来做),如果需要检测整数反转后可能产生的数值溢出,应该怎么做?(这个没做出来)
  • 算法题:给定一个字符串数组,其中每个字符串由小写字母组成,不重复且有序。如果一个字符串可以通过增加、删除或改变一个字符得到另一个字符串,那么它们会被划分到同一类,问一共有多少类字符串?每个字符串长度不超过 26,字符串数量不超过 100,000(无向图求连通块/并查集,这道题没做出来)
  • (对于 OI-Wiki 划词评论系统)你是如何接触到这个项目并且选择了这个项目的?这个项目是你完全独立完成的吗?你觉得整个项目中哪里是最具有挑战性的?(源文档到目标文档段落的定位)你是怎么做的?你了解编译器是怎么从 Markdown 解析成语法树的吗?
  • 你是学什么专业的?你是怎么接触到这些有关编译原理的内容的?
  • 你觉得你的实习经历或项目经历中,哪一个给你带来的团队协作的成长是最大的?(我讲了之前字节青训营的项目)你在实习中没有类似的经历吗?有没有遇到项目时间节点冲突,或者出现加急项目的情况?
  • 看到你拿过蓝桥杯的奖,这个比赛是考什么内容?你在比赛中遇到过什么算法?你印象比较深刻的 dp 有哪几种?(不知道)背包问题知道吗?能大概讲讲这个问题吗?你觉得背包问题在现实中的应用场景是什么?(我举了一个不恰当的例子)
  • 有了解过数据库吗?数据库底层查询的原理了解过吗?能讲讲数据库从接收到 SQL 语句到返回查询结果经过了哪些流程吗?刚才你提到了查询计划,能展开说说吗?(讲了查询计划的优化)查询计划的优化除了索引选择,在关联表比较多的时候,还可能会做什么优化?(不清楚)写过 JOIN 语句吗,有没有考虑过数据库在底层时如何执行 JOIN 语句的?你觉得通过什么方式查询关联表可以提升效率?(我提到了类似覆盖索引的做法,面试官表示差不多,随后总结有的数据库就是通过类似于上述背包问题的动态规划算法来查找最佳的关联表查询方案)
  • 你是什么时候接触编程的?你为什么在那个时候就想买编程书?(喜欢玩 Minecraft)既然如此,你大学为什么选了金融这个专业?
  • (对于 rCore 操作系统)我看到你提到了死锁检测,能讲讲吗?(提到银行家算法)在业务场景中,假设有一个游戏对局管理器对象,有两个锁,分别是玩家管理锁和对局管理锁,可能有多个线程操作该对象,在该场景下如何进行死锁检测?(从工程角度来讲可以尝试 tryLock)如果 tryLock 失败,这种情况应该如何处理?(重试、上报、降级)有没有可能实现一种逻辑,使得一把锁超时时自动释放?(我考虑到健壮性的问题,存在一种可能某种业务确实需要长时间持有锁)
  • 有用过 Redis 吗?有用过 Redis 做过全局锁吗?使用 SETNX + EXPIRE 时你如何做?(业务线程定时查看自己是否仍持有锁)解锁应该如何解锁,可以直接删除 KEY 吗,能用伪代码表示一下应该怎样操作 Redis 吗?(这里应该是想让我检查 GET KEY 对应的 VALUE 是否是对应线程 ID,但我没想到)
  • 反问:对我本次面试的评价
  • (突然又想问)对 Java 的运行机制了解的怎么样?了解什么是 JIT 吗?了解一段 Java 代码在 有 JIT 和无 JIT 时运行的区别吗?为什么直接运行机器码比直接运行 JVM 字节码快?(JVM 字节码需要翻译)你认为是 JVM 字节码翻译过程慢还是 JVM 字节码翻译成机器码的质量更低?
  • 你还用过哪些编译型语言,除了 Go 和 rust?各个语言都存在常量,你有没有接触过哪些语言的常量是比较特殊的?一般常量会存在哪里?(.data 段)
  • 你觉得 Go 和 Java 比较有意思的差异在哪里?(提到 Go 作为编译型语言又同时提供了 GC)你觉得 Go 的 GC 是在编译期就确定的吗?(在运行时进行,如果在编译时那不就是 rust 了)你的意思是 Go 会像 Java 一样有一个运行时虚拟机吗?(不是)你对 Go 的运行时了解多吗?(提到协程)你觉得协程和线程有哪些区别?(提到有栈协程和无栈协程)Go 是有栈协程还是无栈协程?

2024/8/16 11:30 收到感谢信

扫码关注 HikariLan's Blog 微信公众号,及时获取最新博文!


微信公众号图片
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇