目录:
- 高级工程师必备:系统设计能力
- 如何让你的项目更有技术含量
上篇文章 《1个月内如何搞定BAT大厂的面试准备和复习?》我们聊了聊Java工程师在跳槽前的1个月,如何利用较短的时间从技术广度、技术深度、基础功底几个方面进行较为完善的准备。
这篇文章我们继续来聊一聊,在系统设计和项目经验这两块,应该如何充分的准备,才能拿出有技术含量的项目经验战胜跟你同台竞技的其他工程师,征服你的面试官,收获各种心仪的offer。
一、高级工程师必备:系统设计能力
我们一般在招聘高级及以上工程师的时候,一定会严格考察一项能力,系统设计能力。
因为如果你仅仅是对各种各样的技术都熟悉,有技术广度,也有一定的技术深度,实际上是不够的。如果你的系统设计能力不到位,可能导致你在开发系统的时候会乱用技术。
比如说,有的系统他有一些自己特殊的业务场景和技术挑战,实际上在这个场景之下比较合适的是采用 “缓存 + 数据库” 的技术方案来应对。
但是呢,有的工程师会很多技术,但是缺少这种准确的分析系统问题,提出合理的技术方案的能力,也就是缺少系统设计能力,导致他可能会引入Elasticsearch这种技术来尝试解决这个问题。
那么结果必然是失败的。所以之前很多人找我问问题,说我在XX场景下,用了XX技术,但是没有起到我想要的那个结果啊?
我帮他一看,这不是必然的么,你的XX技术应该用在YY场景下,结果你用到XX场景下,肯定是不行的。
这就是系统设计能力的重要性。
那么落地到现在的互联网行业的面试,大家应该会注意到,很多大厂都会越来越开始问一些系统设计类的问题,举几个例子来看看:
1、 如果让你设计一个秒杀系统,你会如何设计?
2、如果让你来设计一个消息中间件,你会从哪些方面来考虑?核心的架构以及数据结构如何设计?
3、如果让你来负责一个电商双11大促系统,你会如何来考虑和设计?
4、 我们公司有这样的一个业务场景,XXXX,我给你画个图,YYYY, 就根据这样的一个场景以及面临的问题。如果让你来设计这个系统, 你会如何考虑