这是本人整理的一些与Golang后端研发岗位相关的面试笔记,欢迎大家及时补充
当然并不局限于Golang研发岗位,笔记中还包括计算机网络、操作系统、MySQL、Redis、系统设计等八股文,其他语言岗位的也可以阅读
一些建议:
简介明了:保持简历简洁明了,使用清晰的布局和格式,使得信息易于阅读。限制简历长度在一页或两页之内,但必须包含基本的个人信息,比如年龄、性别、电话、邮件以及教育经历
突出重点:
- 项目经验:如果有相关的项目经验,可以列出项目的名称、时间、描述和您在项目中承担的角色和职责,最好别是那些烂大街的项目(点名某外卖、某论坛等),如果实在没有,可以参考我个人做的分布式定时任务管理平台Crony ,建议看看源码,不是很难,至于怎么在简历中写,可以参考程序员推荐简历,简介明了 ,还有怎么在面试过程中介绍这个项目可以参考项目经历介绍.md
- 实习经历:现在应届生如果没有实习经历真不好找工作了,建议大二或大三的时候找一份实习工作
整理的一些面试八股文,答案不一定准确,如果感觉不准确的可以自行在网上查找验证
其中❤表示重点
-
Golang面试题,包括Go语言的基础语法、垃圾回收、内存管理、GMP模型以及常见数据结构(channel、map、select...)的底层原理等
推荐阅读地鼠文档, 可以在里面找到许多与go语言相关的文档
-
面试过程中面试官可能要求实现的一些代码编程
比如:
-
两个协程交替打印10个字母和数字
-
启动 2个groutine 2秒后取消, 第一个协程1秒执行完,第二个协程3秒执行完
...
-
-
一些常见算法的模板,比如KMP、LRU算法、二分法、回溯法、分治法、滑动窗口等
推荐阅读algorithm-pattern ,是基于Go语言的,阅读此文档可以解决面试中绝大部分算法题
-
MySQL的一些面试题,包括:
-
存储引擎
-
索引及其优化
-
事务(MVCC)和锁
-
分库分表和主从复制
...
-
-
Redis面试题
包括基本的数据类型、过期键的处理策略、持久化、集群、主从和哨兵等
-
计算机网络相关面试题
比如网络协议、TCP三次握手、四次挥手、http和https等
-
操作系统面试题
比如线程、进程以及它们之间如何通信的、多路IO复用、内存等
-
在海量数据场景下的一些面试题,比如:
-
寻找热门查询,300万个查询字符串中统计最热门的10个
-
在2.5亿个整数中找出不重复的整数,内存空间不足以容纳这2.5亿个整数
-
在5亿个int找它们的中位数
...
-
-
微服务场景下的面试题,比如服务治理、熔断和降级等
-
在某些特定场景下设计的面试题,比如:
-
分布式ID生成器
-
短网址系统
-
定时任务调度器
...
-
-
与架构设计相关的面试题,比如:
-
为什么要做多级缓存
-
MQ中间件是如何实现消息可靠性投递的
...
还在更新中...
-
本项目主要以简单问答的形式介绍面试八股文,如果想深入了解计算机网络、操作系统、数据库等,强烈推荐阅读小林coding (xiaolincoding.com)
面试问题和答案大部分来自于网络,包括:
- 路人张的面试笔记
- 地鼠文档
- algorithm-pattern
- 一些知乎上的文章
- 牛客上的面经
- IT老齐-哔哩哔哩视频 (bilibili.com)
- 个人面经
答案不一定准确,欢迎大家提issues或者pull requests进行补充