个人情况
本人目前是计算机专业研二,个人对开源非常感兴趣,也加入了一些开源组织做开源内容,主要使用语言是golang,项目主要和分布式相关,学习过MIT 6.824的部分内容。
一面
在面试前会有hr小姐姐来和你联系,跟你确认面试时间,有任何问题都会帮忙进行协调,非常nice。😊
面试开始之后,面试官会首先介绍个人情况以及公司的业务情况,包括现阶段在做的一些主要工作有哪些还有如果未来入职你能接触到哪些内容。接下来就是正式开始面试:
- 自我介绍。
- 介绍项目。
- 分布式一些理论概念,分布式锁的概念,如何实现分布式锁。
- 使用ETCD是如何实现分布式锁的,都用到了哪些API,如何学习使用的?可以介绍一下ETCD的原理么?
- 使用Redis如何实现分布式锁,怎么保证Redis锁的正常释放,如何评估任务的执行时间自动续约锁。
- 有没有做过一些破坏性的测试,例如计算机故障,网络短掉了?你是怎么解决的?
- 事务的隔离级别?并发事务会带来的问题?举几个例子说明一下
- 当写一个程序申请内存时,会做哪些操作?中断,页面置换,堆,栈等。
- 力扣随机一道题。时间复杂度,空间复杂度,分析最差情况。
- 一道设计题,给你10k个任务,其中1%低优先级任务,其他为高优先级任务,双核CPU如何调度最为高效。
- 反问。
一面的面试官人很好,有一些问题你不清楚会给你解释,也会做一些引导,全程都没有很压抑。而且最后还说了pingcap给他的一些感受,而且也给了一些建议非常真诚
二面
一面结束的第二天中午hr小姐姐就来约二面了。
面试开始之前同样面试官也会简要介绍一下情况。
- 自我介绍。
- 感觉自己一面表现怎么样。
- 一个程序从写的代码文件到最后输出结果,中间经历的整个过程是怎么样的?编译连接装入以及内存的一些相关操作。
- 程序运行起来后,被CPU执行调度,这个过程说一下?进程,线程以及调度。
- go协程调度模型,GC(记不清问没问这些了)
- A要给B发送数据,中间经历了哪些流程,从传输到从网卡整个来说一下。网络连接,传输层,中断,内核态用户态,IO多路复用。
- IO多路复用详细说一下。
- 力扣随机一道题。时间复杂度,空间复杂度。
- 反问。
二面的面试官知识储备非常丰厚,而且从问的问题上可以看出,更多的是从整个计算机整体的执行层面将各种知识进行串联的,如果对于某个地方说的不是很清楚会继续讨论。而且反问环节中面试官对于个人成长和知识的理解都比较有深度,还详细的介绍了公司整体在做的几条主线,让你对公司做的内容进一步有了更清楚的了解,而且也介绍了一些技术栈看你对哪个更感兴趣。
hr面
同样是二面结束之后的第二天中午就约了hr面试。
面试开始之前同样面试官也会简要介绍一下情况。
- 自我介绍
- 有没有什么比较自豪的事情
- 有没有哪些是自己比较遗憾的事情
- 面对一些突发情况是怎么处理的
- 和小伙伴意见分歧怎么解决
- 如何理解开源
- 等等记不太清了😥
总结
hr面没过多久之前对接的小姐姐就来谈offer的一些细节了,整体面试感受非常好,对于整个面试来说我个人觉得不是特别难,没有那些很常规的套路,还是看你对这块的理解是怎么样的,还有你个人的学习能力是怎么样的。而且面试也是学习和成长的过程,面试你的人也都是在这个领域做了比较久的前辈,可以从和他们的对话中学到很多知识。
pingcap支持远程办公现在也是一家分布式合作的公司,hr面的时候提到如果在一个城市可以凑够一桌麻将的人,那么就会在那个城市开一个office,现在北上广深,杭州,成都都可以选,还不来试试吗?欢迎联系帮忙推荐哦!
全部评论
(10) 回帖