面试指南
Table of Contents
面试 - This article is part of a series.
钱多事少离家近,位高权重责任轻
好工作 #
找工作最核心的一个问题就是“如何判断一个好的工作”,我的定义就是:
- 好的领导 working under a good leader
- 有趣的工作 interesting work
- 高的报酬 highly paid
三者兼有基本是在做梦,只能权衡。如果自己有短期、长期规划则更好,就不需要找答案了。现在的趋势是竞争越来越激烈,对于普通人而言,关键点是如何让自己受益最大,有长期成长回报。99%都是打工的,钱说了算。面试的过程相对很短,找人和找工作我自己都倾向有人介绍。
简历 #
好的简历就是你的形象和工作态度!可以直接抄用好的模版,网上很多,我自己的简历格式已经固定十多年了。
简历要简单明了的列出一些基本的事实,例如学校,工作过的公司,项目,专业资格,奖项等,面试官在“日理万机”中需要看几百份甚至上千份的简历,可以想象,他是不会也不可能每个字细看的,而且看多了,基本状况一目了然,一两分钟没有吸引到的话,就直接淘汰了。所以重点是除了简单罗列,一定要有自己东西,哪方面让你已众不同,杰出的,例如自己做过哪些具体、特别的贡献。简历也是让你选适合自己的千里马和领导,双向匹配的过程,在信息不透明的情况下,涮选掉你不希望的老板和工作,做到有的放矢。
面试 #
面试前的准备 #
- 了解公司:公司的 CEO 和管理层,商业运作模式和策略,产品竞争力,同行,财务状况,名声,过去几年的表现(上市公司通过股票市场),近期的大新闻
- 了解老板/面试官:资历,技术/非技术背景,所带的团队和业务,猎头反馈
- 了解职位:技术/非技术要求,领域发展前景,薪水范畴,个人喜好
- 大公司一般都有面经,自己去搜
相关网站: Linkedin, Glassdoor, Comparably, Crunchbase, Yahoo Finance
套路 #
个人介绍 :需要准备 1 分钟和 5 分钟两个版本,包括学习经历、工作经历、项目经历、个人优势、一句话总结,一定要自己背得滚瓜烂熟,张口就来
抽象概念:当面试官问你是如何理解多线程的时候,你要知道从定义、来源、实现、问题、优化、应用方面系统性地回答
项目强化:至少与知识点的比例是五五开,所以必须针对简历中的两个以上的项目,形成包括【架构和实现细节】,【正常流程和异常流程的处理】,【难点+坑+复盘优化】三位一体的组合拳
STAR 模型:针对综合能力方面的考察,如与人交流、沟通,处理客户的能力;文档,报告,进度控制,处理项目的能力;提高团队协作,竞争力的能力;等等,可参考 免费课程 Grokking the Behavioral Interview
- S Situation 事情是在什么情况下发生;
- T Task 你是如何明确你的任务的;
- A Action 针对这样的情况分析,你采用了什么行动方式;
- R Result 结果怎样,在这样的情况下你学习到了什么。
- 压力练习:面试的时候难免紧张,可能会严重影响发挥,通过平时多找机会参与交流分享,或找人做压力面试来改善
- 表达练习:表达能力非常影响在面试中的表现,能否简练地将答案告诉面试官,可以通过给自己讲解的方式刻意练习
- 重点针对:面试官会针对简历提问,所以请针对简历上写的所有技术点以及个人优势进行重点准备
面试也是一种沟通,注意沟通技巧,要留心对方的动作,语气,意图
“普遍性”问题 #
通常都是些傻 B 问题,没错,但对于这类问题态度要诚恳,表达、用词、铺垫很重要,事先要有所准备,不要陷入负面信息上,点到为止。一般如果碰到过多纠缠这样的问题,我对面试官、职位、和公司的印象分大减,面试官难道自己没有找过工作?
请介绍你自己?
这不是要你介绍你的历史,潜在台词都是你能解决什么样的问题,你能给公司带来啥价值,把最好的你介绍出来,把你最好的经历介绍出来,展示出相关的技能,如何与职位相关:
- my past success is ___
- my strength is ___
- what I am looking for is ___
自我介绍的黄金公式 | |
---|---|
开头 展现自身价值 | 让对方知道你的价值所在,通常可以从最近的一份工作里比较好的案例说起,让对方一开始就知道你是对的人。 |
中间 PST 凸显自身优势 | 主动来连接工作中的重大转折,让对方知道你是怎么变成今天的你。 |
结尾 设定对话方向 | 明确的告诉对方,你今天为什么要来到这里。 |
为什么选择这份工作或者想换工作?一般我都是三选一来回答(尽量不要讲原来的不好,虽然都是套路):
- 对这份工作感兴趣,可以吹一下对方的公司和职位 - 有更好的发展空间:目前工作完全胜任,但觉得自己能力可以有更大的发挥,接受更大的挑战 例如“在过去的公司中,我们的企业文化并不鼓励我去主动创造,而在这家公司(比如 Facebook),我可以获得很多创造的机会,我为此感到炒鸡兴奋!”;
- 试一试更好的机会,猎头找上门,大力推荐;
- 为了更好的薪水:自信说出你要大幅涨薪的想法;
自身有啥缺点?两种策略,一种是把特点包装成缺点,远期目标包装成近期缺陷,例如关注技术过多,产品,设计方面,缺少关注;二是自己还比较弱的方面 (但千万别和应召职位冲突),例如某方面的知识和经验,然后报告自己如何改进和学习的,变被动为主动。
能接受加班吗?瞎编一下,目前或以前已经经受过加班的考验,家常便饭,顺便问一下公司的加班情况,自己顺便掂量一下是不是好公司。
职业规划?学更多的技术,干更多的活,带更大的团队,赚更多的钱,也是不痛不痒的地方胡诌一下。
反向面试 #
这是个很多人忽略的地方:面试官最后通常都会问你你有什么想问的,这其实是我面试中最喜欢的部分,碰到优秀的面试官/老板,互动性很强。从这里可以了解未来的老板以及公司,直接正面的反馈最重要。
职位 The Role:
- 这个职位的挑战是什么?
What are the challenges of this position?
- 职业前景如何?
What is the career path?
技术 Tech:
- 目前公司采用哪些技术栈?对不同技术是如何选择的?为什么这样选择?
What is the common tech stack used in the project and company? why you choose that over another?
- 有开发文档吗?
Do you have development document for the code?
- 你们现在是如何做 CI/CD 的?部署一次有多快?
How do you do CI/CD now? How fast you can deploy?
- 目前衡量软件质量的最重要指标是哪些?
What are your most important software product metrics?
- 如何追踪 bug,以及生产环境发生问题,如何处理?
How to identify and track the bug and what do you do after a production incident?
- 如何计划和处理技术和商业目标?决策过程如何?
How to plan and manage technical goals and business goals? what is the decision making process?
团队 Team:
- 团队大概多大,新手多还是老手多,能介绍一下团队成员背景吗?
How big is the team,more juniors or seniors? Can you share the background of the team members?
- 技术决策如何作出的以及如何向团队沟通?
How are the technical decisions made and communicated?
- 团队目前面临的问题有哪些?
What are the problems the team faces right now?
公司 Company:
- 目前最大的竞争对手是谁?
who are the major direct competitors?
- 公司的财政状况稳定吗?过去几年都赚钱了吗?
How is the company financial stability? How is the company funded? Is the business is profitable for the past years?
- 公司的加薪,奖金情况如何?
Do you do annual salary increases?
How is the annual bonus for the past years?
- 公司的文化如何?
What is the culture like at the company?
Does company encourage and sponsor staff to learn and develop?
- 什么让你觉得这家公司会取得成功?
what makes you think this company will be successful? What do you like most working in this company?
参考 反向面试
准备 #
Java & 架构师资源 #
海量面试资源 & 八股文
2021 年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。持续更新中。
2022 年最新版:题库非常全面,累计 16000+ 道
「Java 学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试,首选 JavaGuide!
Doocs
- advanced-java
互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 - leetcode
多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解。 - source-code-hunter
互联网常用组件框架源码分析。 - jvm
Java 虚拟机底层原理知识总结。 - coding-interview
代码面试题集,包括《剑指 Offer》、《编程之美》等。
- advanced-java
系统学习,成效才会卓著(入坑需谨慎),系统学习资源:
FAANG 面试指南 #
和考试类似,需要有的放矢
算法面试刷题指南(Leetcode):我经历了算法面试/编程作业不下十次,坦白讲算法编程面试和算法编程关系就像托福考试和英语水平。所以除非 FAANG 之流,其它公司我一般都回绝。算法编程是所有技术准备中最难也是需要时间最久的(3 ~ 6 个月或更长的时间)。
Being good at algorithm interviews does NOT mean you are a good programmer and vice versa.
小结: 找工作一般不是一个快速、顺利的过程,面试发挥有时好有时不好,也要看面试官心情,不是每个公司都适合你,你也不是喜欢每一家公司。一个公司找人和一个人找公司,后者其实所付出的风险和代价要大得多,所以随着经历,需要逐渐把被工作选换作定向选工作来思考和处理。