面试准备指南
面试准备清单
面试是一定要准备的,准备得越充分,面试越顺利,拿到的 Offer 越好。如果你已经准备好了简历,下面是你还需要准备的内容。
面试过程中,一般考察候选人三方面主要能力:基础扎实、能解决问题、未来可期。 八股文 + 算法考察基础是否扎实,项目问题 + 场景题考察能否解决问题,通用问题考察你是否未来可期。
必备项
自我介绍
面试的开场白,也是引导面试官的好时机。尽量往自己擅长的方向引导,不要给自己挖坑。建议控制在 1-2 分钟,包含基本信息、核心技能、主要项目经历和求职意向。
Java 八股文
必考内容,不管什么类型的公司都需要。把文档中的内容掌握好,足以应对各大面试中的八股文环节。
算法
刷 100-200 道 LeetCode 基本够用,以简单和中等难度为主。刷题过程中理解背后的思想和题型分类,而非死记硬背。面试不一定出原题,可能出变型。推荐去 codetop.cc 刷高频题。
项目准备
主要准备最近一家公司或最重要的项目,需要覆盖以下方面:
- 项目背景,为什么要做这个项目
- 系统的演进过程,有哪几个阶段,每个阶段主要做了什么
- 项目中的技术选型,使用工具和框架时的调研,为什么选 A 而不选 B
- 项目中的线上问题,发生背景、解决过程、最终结果
- 项目亮点,你做过最出色的事:技术选型、线上问题处理、复杂需求方案设计、性能优化、项目重构等
通用问题
非技术问题,HR 问得较多。文档中有专门整理,提前准备即可。常见问题包括:离职原因、职业规划、优缺点、薪资期望等。
反问面试官
每次面试结束面试官通常会问"有什么想问的",需要提前准备。可以问岗位相关、技术发展方向等。文档中有参考答案。
进阶项
架构设计(5年以上必考)
考察架构设计能力及架构思想是否完整,包括架构落地能力、DDD 领域驱动设计等。要学会从业务出发进行系统拆分和模块设计。
项目管理
主导跨团队、跨部门大项目时如何高效协调、提前发现问题、保证按时交付,以及遇到困难时如何应对。
项目介绍如何准备
大部分情况下,这是面试的开门题,面试官主要考察你的概述能力和全局视野。有人经常抱怨每天在堆业务没有成长,但实际上需求分析能力、沟通协作能力、产品思维能力、抽象建模能力都是非常重要的硬实力。
项目介绍需要准备以下 9 个方面:
- 明确项目定位 -- 项目是做什么的
- 明确项目价值 -- 为什么做?解决了用户什么痛点?带来什么价值?
- 明确项目功能 -- 涉及哪些功能模块?
- 明确项目技术 -- 用到了哪些技术?
- 明确个人角色 -- 你在项目中承担什么角色?
- 明确整体架构 -- 系统的架构是怎样的?
- 明确优缺点 -- 项目的不足之处,如果重新设计你会如何改进?
- 明确项目亮点 -- 这个项目有什么值得说的亮点?
- 明确技术成长 -- 通过这个项目你有哪些技术成长?
提示: 项目介绍建议采用 STAR 原则(Situation-Task-Action-Result),先讲背景和目标,再讲你做了什么,最后讲结果和收获。
自我介绍参考
自我介绍是面试的第一印象,好的自我介绍能引导面试官往你擅长的方向提问。以下是不同经验层次的参考结构:
应届生 / 1-3年经验
面试官好,我是 XXX,毕业于 XXX 大学 XXX 专业。我在 XXX 公司工作了 X 年,主要负责 XXX 系统的后端开发。项目使用了 Spring Boot + MySQL + Redis + MQ 等技术栈。我在项目中主要负责了 XXX 模块的设计和开发,做了 XXX 方面的优化,取得了 XXX 的效果。我对 Java 并发编程、分布式系统比较感兴趣,也一直在学习相关的知识。今天来面试贵司的 XXX 岗位,希望能和您交流。
5年以上经验
面试官好,我是 XXX,X 年后端开发经验。最近在 XXX 公司担任高级开发 / 技术专家,主要负责 XXX 业务线的核心系统。系统日均处理 XXX 万笔交易,我负责了整体的架构设计和核心模块的开发。期间主导了 XXX 系统的重构,通过 XXX 方案解决了 XXX 问题,性能提升了 XXX%。同时在团队中负责 Code Review 和技术方案评审。这次面试贵司的 XXX 岗位,希望能有更大的技术挑战和成长空间。
自我介绍注意事项
- 不要背诵感太强,保持自然流畅
- 突出与目标岗位相关的经历
- 提到的技术点都要确保自己能展开讲
- 不要过长,1-2 分钟为宜
- 不要提不擅长的技术,避免给自己挖坑
大厂面试流程参考
字节跳动
一般分五轮:笔试 + 三轮专业面 + 一轮 HR 面
| 轮次 | 内容 |
|---|---|
| 笔试 | 纯算法题 3-5 个,一般完成 1-2 个即可通过 |
| 一面 | 基础面,计算机专业基础 + 简历相关项目 + 算法 |
| 二面 | 项目经历 + 岗位方向基础 + 算法 |
| 三面 | 项目经历深挖 + 专业知识 |
| HR面 | 为什么来、职业规划、兴趣爱好、个人管理等 |
特点:
- 面试官一般很有耐心(时长 1 小时+),问得很细,十分考验专业功底
- 算法要求不高,剑指 Offer 难度(大概率原题),但一定要会,不会基本挂
- 面试效率很高,一般第二天就安排下一面,有时不给太多准备时间
腾讯
一般 1 轮笔试 + 3 轮技术面 + 1 轮 HR 面
| 轮次 | 内容 |
|---|---|
| 笔试 | 不一定有 |
| 一面 | 计算机基础 + 算法 |
| 二面 | 项目 + 技术 + 算法 |
| 三面 | 项目深入 |
| HR面 | -- |
特点:
- 一般 2-5 天一轮,线下可能当天或隔天
- 每轮大约一小时,每轮有 2-3 个算法题
阿里巴巴
一般 1 轮笔试 + 3 轮技术面 + 1 轮 HR 面
| 轮次 | 内容 |
|---|---|
| 笔试 | 算法 + 其他,难度较大 |
| 一面 | 基础 |
| 二面 | 项目 |
| 三面 | 项目 |
| HR面 | -- |
特点:
- 整体难度偏大,无论笔试还是面试
- 面试不一定有算法题
- 反馈周期 2-7 天
面试准备时间线建议
| 时间节点 | 准备内容 |
|---|---|
| 面试前 2-4 周 | 系统学习八股文,刷 LeetCode 高频题 |
| 面试前 1-2 周 | 准备项目介绍,整理项目亮点和难点 |
| 面试前 3-5 天 | 准备自我介绍,模拟面试,准备通用问题 |
| 面试前 1 天 | 了解目标公司和岗位,准备反问问题 |
| 面试当天 | 检查设备(远程面试)、带好简历(现场面试),提前到达 |
重要提醒: 面试准备不是临时抱佛脚,八股文和算法需要持续积累。项目亮点的总结也需要时间沉淀,建议平时就养成记录的习惯。