Golang服务端面经
一、投简历#
内推 > 猎头 > Boss 直聘、脉脉 > 其他 app (拉勾等)
如果是内推就是帮忙递简历,和自己投没啥区别,注意会不会有锁定期。
二、准备一些场景问题#
1、自我介绍
2、有什么问题需要问面试官的
3、你遇到过最难 / 挑战性的事情是什么?
三、技术问题分为四类#
1、QA 类#
基础问题,背就知道了
2、底层实现原理(还好,八股,需要理解下)#
go runtime 锁 chan 协程 singleflight gc(实现) main goroutine 运行
中间件数据 / 防止丢失
b + 树 /skiplist 怎么插入数据
mq/redis 怎么做一致性?
数据库 mvcc 各种锁
磁盘 IO 非阻塞 IO 磁盘 io 和网络 io 区别
mq 延时队列,数据是怎么存储?
consul 注册
微服务一致性算法(Paxos Raft)
3、数据结构 + 算法 (刷题)#
算法要从计算的角度去考虑问题,需要关注边界问题,完成有限例子的验证。
没有什么完美算法,要么是用空间换时间,要么时间换空间,所以需要关心下复杂度这回事。
各种排序
二叉树 中序 z 遍历
堆
动态规划
手写线程池 手写 hash 表
4、开放类(终面 + 解决问题能力)#
主要是澄清式回答,为什么是?
小公司:业务架构 / 设计
常见概念的深入理解:二分法 / 二进制 / 文件中数字定位 / 寻址过程
选型:为啥用 mq?为啥用 consul?为啥用集群?
四、职业发展路径(HR 喜欢问)#
五、提现#
1、多关注技术使用的时候会出现什么坑,知道有什么坑才敢用。
六、总结#
面试是一种费曼学习法,因为需要讲出来,自己不理解的话,是没有办法让别人理解的,需要逼着自己搞懂。
面试官还是变着法地考察你,多用心。
谢谢一路上帮忙的朋友 >_<
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: