有些候选人来我这边面试Java技术岗位的时候,我经常会问他:项目最大的难点是什么?亮点是什么?这个模块是你主导的吗?
而另外一些候选人,我反而不会这么问。因为他的简历里,项目实战那一块已经写得非常清楚了。我只需要沿着他的介绍,继续追问细节即可。
我这种类型的面试官,算是比较好的了。当候选人的项目写得不清楚时,我还是会抱有一丝期待。
是不是只是简历没写好,其实能力不错。
所以,我一般都会主动去挖掘他的亮点。但是,你最好不要把希望寄托在面试官身上。不是每一个面试官,都会花这么多时间去帮你挖亮点。
很多时候,你的项目写得不好,面试官心里已经减分了。下面我说一下,项目实战怎么写是比较好的。
其实不难的,你只要记住,项目实战,最重要的一点只有一个。
只介绍你重点设计或者深度参与的模块,也就是那些真正能够代表你专业能力的项目。
不要为了让简历显得丰富,把参与过的项目全部写上去,这是简历的大忌。
项目实战,是最能够体现专业能力的地方。所以,把最有代表性的项目拿出来讲,而不是把所有参与过的项目都写上去。一般来说,项目实战写 2~3 个就够了。
真正的大型项目,一个就足够聊半个小时。如果你写了六七个项目,面试官反而会觉得,每个项目你都只是参与了一点,并没有真正做的很深。项目经历,宁可少,也不要杂。
另外,还一定要保证一个前提。
项目里的每一个细节,你都知道。
这一点超级重要。因为真正的面试,基本都不会停留在项目介绍。而是从你的介绍里面,不断往下追问。
如果很多细节你都不知道,那么聊不了几分钟,面试官就会判断出来,这个项目并不是你主导的。
如果继续追问,很多关键问题都回答不上来,那他甚至会怀疑你的诚实度。这样的项目,写出来反而容易扣分。
那项目应该怎么介绍呢?
我一般建议按照下面这个顺序。
- 项目背景:为什么会有这个项目,要解决什么业务问题;
- 项目描述:这个项目主要做什么;
- 你的角色:你在项目里承担什么角色,例如技术负责人、架构设计、核心开发等;
- 负责哪些模块:哪些模块是你主导设计或者负责开发的;
- 项目最大的技术难点:真正困难的地方在哪里;
- 你是如何解决这些问题的:你的设计思路、决策过程以及为什么这么设计;
- 项目最终创造了什么价值:最好能够数据化,例如提升多少性能、节省多少成本、支撑多少业务量等。
整个介绍顺序,其实就是在回答一个问题。
为什么这个项目值得写到你的简历上。
举个例子。
很多人的项目介绍是这样的。
我负责订单模块开发,完成订单创建、支付、退款等功能。
这样的介绍,其实信息量非常少。因为面试官听完以后,只知道你做了一个订单系统。至于你的技术能力到底在哪里,他还是不知道。
如果按照刚才那个思路来介绍。
例如:
- 项目背景:随着业务增长,原有订单系统越来越难维护,并且高峰期经常出现性能瓶颈,因此需要对订单核心链路进行重构。
- 项目描述:负责整个交易订单系统的重构,包括订单创建、支付、退款等核心流程。
- 我的角色:项目技术负责人,负责整体架构设计以及核心模块落地。
- 负责模块:负责订单创建、支付链路、库存扣减以及订单状态流转等核心模块。
- 项目难点:订单链路涉及库存、支付、优惠券等多个系统,需要解决高并发下的数据一致性、接口幂等以及异常补偿等问题。
- 解决方案:经过方案对比,最终采用 XX 方案来保证数据一致性,并设计了对应的幂等机制和异常补偿机制,保证整个交易链路的可靠性。
- 项目价值:系统上线后,高峰期能够稳定支撑业务增长,订单核心链路更加稳定,同时降低了线上故障率,提高了系统可维护性。
你会发现。同样是介绍一个项目。后者一下子就能够体现出你的专业度。
另外,在介绍的时候,还有两个地方特别注意。
第一,不要花太多时间介绍整个公司的业务。
有些候选人一开始介绍项目,就从公司的业务开始讲。商城、会员、支付、物流……
五分钟过去了。我还是不知道。
你到底负责哪一部分?
面试官不是来了解你们公司的。而是来了解你的。所以,项目背景用一两句话交代清楚即可。然后尽快进入你负责的模块,以及你解决了哪些问题。
第二,不要只介绍做了什么,更要介绍为什么这么做。
比如不要说:
我们用了 Redis 做缓存。
而应该说:
由于数据库查询压力越来越大,并且热点数据访问频率非常高,所以增加了 Redis 缓存,并结合本地缓存以及缓存更新机制,把数据库压力降了下来。
前者是在介绍技术选型。后者是在介绍你的技术思考。
对于技术岗位来说,真正有价值的,往往不是你用了什么技术,而是为什么选择这个技术,以及它解决了什么问题。
基于上面我说的一些技巧,你就可以提前做一些准备了。就是把每一个项目,都提前按照面试官的思路推演一遍。
例如:
- 为什么要这样设计?
- 有没有其他方案?
- 为什么最终选择这个方案?
- 这个方案最大的缺点是什么?
- 如果业务量增长十倍怎么办?
- 如果某个组件挂了怎么办?
- 当时线上遇到过哪些问题?
- 最后又是怎么解决的?
提前把这些问题全部准备过一遍了。整个交流过程也会顺很多。
项目经历,从来不是比数量,而是比深度。
把一个大型项目或者模块讲深,更容易让面试官认可你的能力。