聊聊后端面试那些事-【公粽号:堆栈future】
面试到底要怎么准备
面试官心里
简历必须真实
简历上写的最近的项目必须做到熟悉
你掌握的技术必须做到知根知底
具备做事的能力
简历上没有的软技能
态度和心态
候选人心里
我要刷题 top100?
我要准备自我介绍
我要熟悉项目
我要把数据库相关知识掌握
我要把NoSQL相关知识掌握
我要把语言层面的知识掌握
我要把态度摆端正
PK环节
面试官问你的问题肯定是你要具备的,但是你具体掌握到什么程度就看你造诣有多深,但是如果问你的问题你确实不知道,那么这个时候你去问下周边小伙伴知不知道,如果不知道那么可能是面试官他想知道你知不知道,如果不知道就真诚地说出来,没什么大不了的,但是知道的话又不太了解一定要说不知道!
其次不管面试官是刁难你还是顺从你,你都应该表现出是谦卑的姿态,面试官也是打工的,当然很多面试官都不知道自己是打工的,以为自己是高人,对你不屑一顾,这个时候你一定要冷静的面试完,不要跟他翻白眼。
最后就是你熟悉的知识不要做到一知半解,就是面试官问你你最拿手的知识,你却给面试官一句话总结了,这是不地道的,面试1h,你5s就答完了,剩下的时间你让面试官怎么办?难道多给你出两道hard题让你做?所以这个时候一定要把面试官往你熟悉的领域上引导,多说几句又何妨?
准备阶段
正常面试官问你的问题都是按照既定套路来的,这个套路大致如下:
1. 自我介绍
(XXX)网上有模板。
2. 最近项目介绍
(XXX)网上有模板。
3. 语言介绍
这里拿Go举例
-
map的扩容原理
-
slice的扩容原理
-
chan的原理
-
并发控制技术有哪些
-
gmp调度
-
内存分配和垃圾回收
-
性能调优
无非就这几种,你就看你了解吗,不了解回去背下来。
说实话,语言层面你如果一知半解,基本上给面试官的感觉就是你会写,你是初级水平而已,你离我要的候选人的目标差点意思,基本上心里已经把你毙掉了。
4. 数据库原理
这里拿MySQL举例
-
几种日志
-
隔离级别
-
mvcc
-
幻读
-
间隙锁 行锁 Next-key Lock
-
索引优化 explain
-
索引类型和区别
-
主从相关
-
分库分表
基本上就这些知识,你如果不清楚,那么工作5年和工作10年你是一丁点都没积累,35岁淘汰的可能就是你了。
5. NoSQL原理
这里拿Redis举例
-
redis几种数据类型
-
为什么是单线程
-
如何做持久化
-
大key删除和查询
-
后台线程或者进程有哪些具体做什么
-
主从相关
-
Redis Cluster相关
-
脑裂或者鲸群相关
-
缓存击穿 穿透 雪崩
-
缓存使用策略
基本上就这些知识,我在这里重点强调一下,你可以不用它但是你不得不掌握它,不为别的就为和面试官能把这1h聊完,这样你就不用写算法了。
6. 其他组件原理
-
kafka相关
-
MQ相关
-
ES相关
-
Nginx
-
其他
就是你起码得熟悉一个组件,比如kafka或者MQ,因为大公司一定在用,所以不要局限在业务中说没有用到就不研究了,这样就大错特错,你得为你的将来负责,而不是成为公司的一颗螺丝钉。
7. 八股文
-
分布式锁
-
1亿个数 找到top100相关等无关痛痒的面试题
-
分布式一致性raft等
-
分布式事务
-
一致性hash
-
其他
这些问题说实话你回答出来就是加分项,你回答不出来也没事,因为基本用不到,所以这些你可以多阅读多积累,这样慢慢就会背下来的。
8. 架构
-
设计一个系统
-
微服务架构
-
监控指标或者SRE相关
-
部署相关
-
流量镜像或者分流
-
链路压测或者灰度流量
-
API网管设计
-
服务治理
-
高可靠 高可用 可扩展等
-
集群相关
9. 算法
阿里比较厉害,基本不问算法
其他公司效仿字节都问算法,所以没办法你得多刷题
你今天不刷题,明天面试官就把你刷了。
其实刷题不是让你刷一遍,重点在“刷“,就是一直刷,一直刷,一直刷,直到背下来,不然你刷1000道你还是不会,一定要刷高频题!
小结
总之面试是一场持久战,你起码得好好准备一个月左右,不要断断续续,要1个月持续学习,直到感觉自己背下来了可以上战场了才可以约面试,不然你面试的越多,浪费的时间越多,过不了的机遇越大,你的自信心下降的越厉害,你就越找不到工作,你就越颓废,最后死循环!
- END -
堆栈future
使很多处于迷茫阶段的coder能从这里找到光明,堆栈创世,功在当代,利在千秋