前言

大家好,好久不见!

最近太忙了,实在没时间上来写blog,昨天收获了最后一个offer(育碧),自此,我的跳槽计划完全结束

我在一个月的时间拿下了育碧,动视,EA的Offer

此处育碧Offer镇楼!哈哈哈,其他的我就不放了,其实还有个雷蛇也到了最后一轮,我的名字打码了,请见谅!

我也要重新换一个地方开始我的人生了,再见了!我工作4年多的老公司!

言归正传

大家都知道我,我喊着要跳槽要跳槽,结果从去年(2021)年初到年底,都是雷声大,雨点小

最后基本约等于没跳,看着以前的老兄弟们一个个离职,最后只有我一个老员工了,感觉百感交集

加上12月中旬原公司的团队重组,这边换了新上司,新上司希望大展宏图,并且引入新的团队管理制度

开始大规模的任用新人,引入新人管理

自然而然,我就开始被边缘化了,也待的没意思,也感觉我会越来越down,心情也越来越坏

所以,在12/25日,我决定跳槽,并且下定决心。

面试准备

面试流程

基础的面试流程,这里面有两家都是这个流程,另外一个流程比较快

  1. 电话沟通 (HR)
  2. 笔试 (codifity/算法平台)
  3. 电话面试(技术)
  4. 视频面试(技术)
  5. 视频面试 (HRBP/Team leader)
  6. 电话面试 (HR)
  7. Offer发放

基础技术栈的准备

首先是面试准备,这部分我已经准备了大概半年的样子,我从6月开始复习八股文

八股文复习的方向,主要是和你的技术栈有关,例如,我的技术是Python/Golang后端开发

首先是基础技术栈,相对于我这种工作几年的老哥来说,一般不会问什么

1
2
3
import 之后是个什么情况

___main___代表什么

这种是对初级程序员来进行询问的,我们要认清楚自己的工作年限进行准备,而不是上来抱着基础梭哈,这属于浪费时间。

这里我举几个面试里面的例子(此处我不会透露是哪家公司的!

比如Python

1
2
3
4
1. 多线程使用过吗?平常在什么时候使用?和多进程相比有什么好处?缺点在哪?
2. 多线程之间的通信方式了解吗?
3. 实现一个装饰器的timeout逻辑
4. 协程是什么?解决了什么问题?你会在什么情况下使用协程?或者进程?或者线程?

比如Golang

1
2
3
4
5
6
1. interface的反射机制了解吗?一般你会在什么情况下调用?
2. 如果一个协程被系统调用,那么相对应的M和P会怎么操作?
3. 说一下slice扩容的方案
4. map是如何扩容的?
5. map的hash冲突如何解决?
6. map的负载因子是什么?

大概就是举了几个例子,我们都是工作3-5年的老哥了,问的问题一般都会倾向实战或者高级八股

如果不了解,或者没用过,这可不行!无论如何,就算背也要背下来!找工作,这事儿不寒碜,千万别整那些高尚因子,如果你不学习,好工作就只能被别人找走,你就只能继续跌落下去,有毛意思!

这里我梳理了一些面试的基础资料,放置到我的Github当中。

也会推荐几本书,我放到这下面了,大家看完,跳槽指定是没问题了。

推荐书籍(必看!)

  1. Golang底层原理剖析(主力看协程部分)
  2. Golang专家编程(短小精悍的一本书)
  3. Python cookbook (主要看生成器,迭代器)
  4. Python 进阶编程 (快速随便看一遍)

这里梳理了一些我的八股文,放置在github当中了!

https://github.com/Alexanderklau/prepare_materials

希望大家都能好好使用!

其他技术的准备

其他技术,也就是指:你使用过的框架,你使用过的第三方服务

例如:redis,Elasticsearch,Mysql,Rabbitmq,kafka之类的

这部分也是八股文居多,但是涉及到实战的也不少

如果你没有核心使用,只是会用,那么你需要进行八股文的背诵

比如redis,面试其中某个就问到了(我不会说是哪家的

1
2
3
4
5
1. Redis 的缓存击穿?雪崩?预热?降级?
2. Redis 为什么要用单线程?
3. Redis 6.0为什么引入多线程?
4. Redis 的内存优化该怎么做?
5. 设计一个读多写少的高并发系统,用Redis进行缓存,如何设计?

这种就是典型的八股,这种你背就完事儿了,这里我也会梳理一下然后推送到Github上

如果,如果你只是为了面试,那么我建议只背诵八股文就好了

此处梳理一些经典问题,都是面试遇到的

1
2
3
4
5
6
7
8
9
10
11
12
1. 你一般如何设计一个es的Mapping
2. 遇到oom,你一般怎么处理?
3. Redis 缓存雪崩是什么,怎么处理它?
4. Etcd的raft协议描述一下
5. Elasticsearch脑裂如何发生的?怎么规避?
6. 讲一下你开源的几个Es的基础库
7. 描述一下snowflake算法
8. 分布式锁的实现(redis,etcd)
9. 描述一下es的选主
10. rabbitmq的topic描述下
11. rabbitmq,kafka,rocketmq你是如何选择的?
12. rabbitmq高可用的实现机制?

大概就是这些八股文,你背就完事儿了。

我整理的八股文

https://github.com/Alexanderklau/prepare_materials

推荐几本书,这几本书都是我看过的,希望大家也去看看吧

我在Es方面下了很多功夫,大家也可以选择自己的专精点进行突破

  1. ElasticSearch搜索引擎构建和实战
  2. ElasticSearch源码剖析
  3. Etcd技术内幕
  4. Rabbitmq实战指南
  5. Redis实战

英文准备

这部分要看你之前的积累,可以看到,我投的基本都是外企

国内的企业,例如网易,腾讯我看都不看,我不想进去996,也不想进去当人肉电池,我有我的人生和生活

所以英语这方面,对大家伙儿还是挺重要的,这部分我只能说

  1. 自我介绍 (尽量写好点,不要写中式英文)
  2. 问答部分 把自己的简历用英文写一遍,然后大概就知道人家说什么了,poor English也行,说清楚就可以了,词组不行的话就往外蹦词
  3. 讲真,如果不学好英语,你是无法进入外企打工的,平常如果想要进外企,你需要持续性的进行外语学习,不能停止

算法准备

没说的,leetcode直接上,没有捷径

我去年开始刷题,到今年才敢直接上面试(其实是我太笨)

一般面试的算法都是比较基础的

梳理一下我这次被问到的几个算法

  1. 最大岛屿面积 (bfs)
  2. 翻转二叉树
  3. LRU算法
  4. 布隆过滤器 (这个只是描述了一下)
  5. 设计多线程队列 (不能使用自带的列表类型)
  6. 黄金矿工问题 (dp算法)

推荐几本书

  1. labuladong的算法小抄
  2. Python数据结构与算法分析
  3. 算法(第四版)

HR面试准备

我因为跳槽不多,这部分其实没有被怎么问到

这几家的HR都非常专业,问的问题都是非常核心的

例如

  1. 你在上家公司做了很久,为什么要跳槽?
  2. 你和同事们的关系如何?你平常如何和沟通能力差的同事进行技术对接?
  3. 你对自己的职业规划?
  4. 你认为自己在团队是一种什么样的角色?
  5. 你可以描述下你的工作嘛?
  6. 你对自己的评价?
  7. 描述你自己的优点和缺点?

到了这一步,其实你已经稳了,如果你跳槽太多了,那你会被问的更多。

Team Leader面试准备

这部分主要是针对高级programer或者是team leader进行面试的

我这里经历了两家公司都会有此项面试

主要是对你的工作定位进行询问,对你的疑问进行答疑

此处面试不难,但是你的简历经历最好不要作假,因为会询问很多公司业务部分的东西(如果你简历乱写,会背调的

这部分不会询问技术细节,但是会考察你的架构能力,和你的沟通,分析问题的具体能力,举个例子

  1. 在项目中,你遇到过棘手的问题吗?如何去处理的?
  2. 项目管理部分,你是如何团结团队进行开发的?
  3. 团队有多少人?你主要的定位?
  4. 你对自己的评价
  5. 平常有带过新同事吗?怎么帮助他快速融入团队?

大概就是这样,这部分不难。

心态的调整

我12月经历了很多事,导致自己心态一度药丸

具体我也就不说了,反正基本都是工作上的

这个项目是我从无到有做起来的,现在调整业务线

相当于这个迭代之后,业务就不会再更新功能了

这部分属实就很难受。

所以心态很差,不过至少顶着压力完成了所有笔试面试

其实不是想给大家讲鸡汤

如果撑不下去,就回家休息休息,不要把自己压垮

可以看一些喜剧,武林外传之类的,开心点

结尾

粗粗一看,又写了三千多字的流水账

哈哈,仔细想想,一路走来,压力真的太大了

我给自己立下誓言,跳槽不成功,我就不玩游戏

现在我成功了,所以我又可以玩了

过两天就过年了,希望大家都开开心心,可以得到自己想要的东西

希望大家明年,跳槽加油!学习加油!

爱你们!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
时间又不会为我赖着不走

干嘛停下来为了选择头疼

我的新目标就在下个路口

现在要做的就是加点油门

当我穿过拥挤的人群

穿过低谷时被冲洗的人情

感谢所有为我亮起的灯在我丧气的时候

总是仗义的过来按我门铃