【offer收割机必备】我简历上的Java项目都好low,怎么办?

这篇文章我们来聊一聊,在系统设计项目经验这两块,应该如何充分的准备,才能拿出有技术含量的项目经验战胜跟你同台竞技的其他工程师,征服你的面试官,收获各种心仪的offer。

(1)高级工程师必备:系统设计能力

我们一般在招聘高级及以上工程师的时候,一定会严格考察一项能力,系统设计能力。

 

因为如果你仅仅是对各种各样的技术都熟悉,有技术广度,也有一定的技术深度,实际上是不够的。如果你的系统设计能力不到位,可能导致你在开发系统的时候会乱用技术。

 

比如说,有的系统他有一些自己特殊的业务场景和技术挑战,实际上在这个场景之下比较合适的是采用 “缓存 + 数据库” 的技术方案来应对。

 

但是呢,有的工程师会很多技术,但是缺少这种准确的分析系统问题,提出合理的技术方案的能力,也就是缺少系统设计能力,导致他可能会引入Elasticsearch这种技术来尝试解决这个问题。

 

那么结果必然是失败的。所以之前很多人找我问问题,说我在XX场景下,用了XX技术,但是没有起到我想要的那个结果啊?

 

我帮他一看,这不是必然的么,你的XX技术应该用在YY场景下,结果你用到XX场景下,肯定是不行的。

 

这就是系统设计能力的重要性。

那么落地到现在的互联网行业的面试,大家应该会注意到,很多大厂都会越来越开始问一些系统设计类的问题,举几个例子来看看:

 

1、如果让你设计一个秒杀系统,你会如何设计?

2、如果让你来设计一个消息中间件,你会从哪些方面来考虑?核心的架构以及数据结构如何设计?

3、如果让你来负责一个电商双11大促系统,你会如何来考虑和设计?

4、我们公司有这样的一个业务场景,XXXX,我给你画个图,YYYY,   就根据这样的一个场景以及面临的问题。如果让你来设计这个系统, 你会如何考虑?

 其实如果你在面试的时候遇到上面的那些问题,就是典型的系统设计问题。

 

面试中的系统设计问题主要分为两类,一类是常规性的,比如秒杀系统的设计,另外一类是那个公司自己的业务场景下的系统设计。

 

第一类系统设计问题其实很好快速突击准备,你可以到网上搜一搜互联网公司常问的一些系统设计问题。

 

收集好一些典型问题之后,百度一些技术博客给出的技术架构设计的思路,将这些思路自己进行整理总结,然后转化为自己的语言,最后落地到纸上画出架构图。

 

到面试现场,你能够画图把这个系统设计思路说清楚,这个基本就OK了。

 

这个准备时间不长,突击的话可能几天时间也足够了。

 

当然,还是那句话,最好的结果,必然是你自己本身做过类似的一些有挑战的系统。

 

此时你遇到这种系统设计问题,直接可以很牛叉的说,这类系统我之前做过,然后把自己之前的项目经验都现场画图给说出来。

 

第二类系统设计问题就不太好准备了,因为完全考验的是你实打实的系统设计能力,短时间内针对一个业务场景和技术难点,能否迅速给出一个初步的架构设计和技术方案。

 

第二类系统设计问题,从长期积累和准备的角度,我的建议是在平时自己在开发系统的时候多思考,自己的这个系统有没有什么技术难题,针对这个技术难题应该用什么什么技术,什么方案来解决,这就是潜移默化的在积累系统设计能力。

 

但是如果从临时抱佛脚的角度,平时没那样的积累,遇到第二类灵活开放的系统设计问题,那也不能一问三不知,大眼瞪小眼。

因此,我的建议是:

 

对于你要面试的公司,尽可能的多做了解。比如公司业务背景,大概用户量,这些都可以了解一下。

如果目标公司有官方的社区或者官方公众号,关注一下,看看上面的技术分享。

然后如果面试时,面试官针对他们公司的具体业务出了一个系统设计题目,你如果没有思路,建议尽可能的结合第一类的常规系统设计题目来思考套用。

 

举个例子,比如你面试一个p2p金融业务的公司,如果被问到大量用户同时抢标,如何设计架构?

 

你没有做过,但是你可以结合一些常规的系统设计题,比如秒杀系统的设计思路,套用在这个新的业务上。

 

而你如果在面试这家公司前,大致了解了其业务背景,那么对你回答这类系统设计相关的题目,肯定也是很有帮助的。

(2)如何让你的项目经验更有技术含量

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgpps.html