个人情况
学历:Top211 本硕
工作年限:四年---2年Java后台开发,2年Golang后台开发
过往经历:两段大厂背景
目标岗位:后台研发,只看杭州和上海的岗位
面试情况
概况
时间线:
| 时间 | 事项 |
|---|---|
| 2023.05.15~2023.06.04 | 准备阶段:leetcode刷题+制作简历+知识点复习 |
| 2023.06.13~2023.06.21 | 查漏补缺、调整状态:查找面经模拟面试+2场真实面试 |
| 2023.06.27~2023.07.07 | 反复复习+疯狂面试:面试30场+,有时候一天面试四五场 |
沟通的公司/部门:17家
面试的公司/部门:14家(有几家简历评估没过)
收获offer:3+
准备阶段
主要针对以下几项:
- 算法题
- 简历
- 项目经历
- 个人技术栈
算法题
因为平时几乎不怎么会去做力扣算法,所以这块还是投入了很长的时间去刷的。刷题路径:
- 代码随想录:programmercarl.com/ 。按顺序刷完了数组、链表、哈希表...二叉树、回溯、动态规划、贪心这几个章节没有全部刷完,只挑选了几个高频的
- CodeTop:codetop.cc/home,按频度从前往后刷,我大概刷了60道
这两个加起来总共刷了120道左右,不是特别多。个人觉得主要还是掌握一些基本的题型,然后在面试过程中,如果遇到原题就可以直接写出来。如果没遇到,就冷静分析,思路卡住了就和面试官沟通,一般都能做出来
简历
制作简历的过程其实是梳理项目经历+复习个人技术栈的过程。因为要确保写在简历上的每一句话、每一个词,都是有准备的,面试过程中最忌讳的就是自己简历上的东西说不清楚。
简历上的关键项可以考虑:
- 工作经历:简单写一下自己何年何月在哪家公司就职,按时间倒序写
- 项目经历:重点部分,按照STAR原则写自己的项目经历,项目数量3个就可以。我自己的简历刚开始写了5个,后来发现在整场面试中一般就只会问1~2个项目。也出现过被面试官委婉地说“项目很多,简历很充实”的情况,所以后面就删除了2个不太重要的项目。
- 个人技能:慎重写“精通”,清楚底层原理写“熟悉”,了解一些底层原理写“了解”,如果只是使用过,对底层没有没有任何了解建议就不要写了
- 教育背景:由于是社招,工作经历+项目经历更重要,所以我就把教育背景写在了最后面
重点再说一下STAR原则,STAR原则的定义网上搜一下就可以。实际在写的时候我是按照:
-
项目介绍:项目背景+项目目标,对应的是 S 和 T
-
个人职责:突出自己干了哪些事情,可以分点叙述,对应的是 A
-
项目成果:分点写个人职责中罗列的点对应的项目具体的成果,如果是多人参与的大型项目,可以用一个小点写整体成果,重点还是写自己的部分。项目成果可以从多个角度看:
- 业务上:可以是C端体验、用户操作效率、模型的通用性
- 技术上:性能、稳定性、可用性、通用能力沉淀
项目经历
平时一定要常总结,每做完一个项目,就假设现在要将这个项目写在简历上,然后按照STAR原则描述一遍。这样就不至于在找工作时,还要重新去回忆或者翻找以前的文档。如果平时有这个习惯,那么在找工作的时候拿来即用就行了。
得益于这个习惯,我自己在这个事情上节省了很多的时间。
然后用节省出来的时间,以面试官的角度,针对每个项目,准备了很多的问题。比如:
把自己假想成面试官,然后思考面试官看到这个项目时可能会问哪些问题。思考角度可能是业务方面的,也可能是纯技术上某些深层的点。
然后准备对应的回答,建议一定要把这个回答写下来。并且站在面试官的角度去想这样回答是否足够简洁、易理解。需要这样去准备这种问题不会很多,往往可能是非技术性的问题,比如:项目背景、模型设计和迭代等。技术性的问题的答案比较固定,不容易产生歧义
如果面试过程中,由于面试官没有理解到项目中的某一些点而导致你和面试官花了很多时间去沟通,这就很可能导致面试不通过。因为面试官不会觉得自己有问题,他会觉得是候选人没有讲清楚
个人技术栈
个人技术栈通常是和项目紧密相关的。比如语言、项目中使用到的技术组件,应该尽可能地熟悉并了解其底层原理。我自己是针对每一个技术组件都写了相关的笔记,在面试前方便自己复习,比如我写的kafka相关的文章目录:
如果有读者需要的话,可以留言,后续考虑将这段时间的写的笔记发布出来
面试阶段
面试的大致流程
- 自我介绍:准备一小段自我介绍。通过自我介绍引导面试官提问自己擅长的部分,比如我对mysql很熟悉,所以在自我介绍中就会强调这点
- 项目讨论:20~30分钟
- 系统设计题:如果面试官对简历中的项目不感兴趣或者在很短时间内就结束了上一环节,面试官可能会出系统设计题。30+场的面试中,考系统设计题的场数其实不多(没面过外企,外企似乎会比较多),秒杀系统的设计好像被问到过2次
- 算法题:一般都会做一道算法题,10~20分钟。做算法题的流程是:在有了思路之后,先将思路和面试官沟通,确认思路没问题后再开始编码。
面试心态
- 不卑不亢:把面试官当做是你未来的同事,把项目讨论环节当做是日常的技术评审。不要表现得太傲慢,对于面试官的问题耐心解答;也不要表现得太卑微,有理有据的前提下也是可以质疑面试官的
- 真实展现:不会就说不会,不要因为自己不会某个知识点而感觉到羞愧,没有人什么都懂。
面经
详细面经访问我的博客:blog.echo-ataraxia.icu/