转载

年薪75万的真实技术面试实践攻略(篇章一)

年薪75万的真实技术面试实践攻略(篇章一)

互联网的寒冬已经开始了,想必大家已经有了切身的感受,公司内部晋升要求变高、名额变少,外部机会的要求也水涨船高,并且限制涨幅、职级等。

如何在较为恶劣的大环境下,从海量候选人中脱颖而出,获得心怡的工作机会,升职加薪,开启职场新篇章呢?

我们另辟蹊径,思考下,面试官会从哪些方面考察候选人呢?

整体上主要分为: 专业能力、解决问题能力、沟通协作能力 、成长潜力、文化匹配 这五大方面。

于是我们就有了方向,在面试之前,积极做系统性的准备;面试中,全力展现这些能力;面试后,复盘总结、查缺补漏、继续提高自身能力。

下面结合具体案例分析下这五大方面。

篇章一: 专业能力

专业能力主要分为 深度 广度 这两块。

技术深度

无论工作经验多少,学海无涯,知识都是会存在盲区的,但是对于简历里提到的技术点,就需要具备一定的深度了。比如提到了Redis,不仅要说出来String、Hash、List、Set、ZSet这几种数据类型,当你说出了各个类型的应用场景、每种类型内部的数据结构实现、持久化的策略、缓存淘汰的策略、以及与其他存储组件的选型对比时,面试官就会眼前一亮。

当面试官又问到Redis做分布式锁的用法,你不仅说出了SetNX还有超时自动释放锁的机制,还说出了单机模式下系统可用性的问题,以及集群模式下,Master宕机后和Slave数据不一致造成的安全性问题,又提到了Redlock算法如何来提高可用性和安全性的时候,你的专业能力深度,就可以给面试官留下一个深刻的印象了。

再举个栗子,有的同学简历里写了Java基础扎实,在面试官眼里,那可能就代表着你至少看过并深入理解了比如String、HashMap、ArrayList、ConcurrentHashMap等常用类的源码了。

简单总结下,专业能力深度这一块,就是 不仅要会用,还要懂原理,看源码,深入到各种细节中去 。功夫在平时,要养成习惯,多多积累。

面试过程中,回答问题,要注意体现自己专业能力的深度,需要 主动 展现你对简历提到技术点的深入理解,不要让面试官挤牙膏一样的问。

技术广度

技术广度主要包括 技术视野 思考模式 这两方面。

关于技术视野,举个栗子,比如你项目使用的是微服务架构,面试官大概率会问,你们数据一致性是怎么保障的?

这时就要先体现你的技术深度了,详细说出你们系统在数据一致性方面做的具体工作,比如最大努力通知、兜底补偿之类的方案。

紧接着,面试官又问,还了解其他的数据一致性解决方案吗?如果你能说出强一致性的2PC、3PC、Paxos、Raft、Zab;最终一致性的Saga、TCC、Seata(AT和MT模式)以及MQ事务消息等等,这些 解决方案的演进过程,各自优缺点和适用场景 的话,技术视野这块,面试官应该会给个高分了。

再举个栗子,面试官问到了MySQL 的Update操作执行过程,你提到了WAL技术,先写Redolog,防止机器Crash造成数据丢失,也能提高性能,通过配置还可以减少磁盘IO的次数;紧接着又补充到,Kafka、Rocketmq等消息中间件以及Elasticsearch、HBase、Leveldb、Rocksdb、TiDB、Tair等高性能存储组件都用到了这种技术,这同样也可以体现你的技术视野。

面试的岗位级别越高,对广度的要求也就越高,上文我举了一个分布式事务解决方案的例子,作为一个资深技术人员,主流的解决方案是应该了解的,可以体现我们的技术视野,因为较高级的岗位需要经常做一些方案设计和选型的,甚至需要做一些架构设计,如果没有足够的视野,需要长期支撑业务迭代的技术架构,企业不敢让你搞;扛着整个部门季度KPI的业务大需求,也不敢让你来做方案设计。

大家可以想想自己项目中有哪些技术点,可以体现自己的技术视野呢?

下面再来介绍下,同样可以体现技术广度的,思考模式这块。美团的同学可能听过,BeafQPS方法论,具体如下。

BenchMark(对标) ,做方案搞架构,要了解部门、公司内、业内的通用和先进解决方案,进行对标。

Efficiency( 效率) ,方案设计要高内聚、低耦合,易扩展,易维护;重复的工作自动化等等,要经常思考如何提高效率。

Architecture(架构) ,要符合简单、合适、可演进的原则,好的架构,可以提高迭代效率,降低研发成本,提高系统稳定性。

Function( 功能) ,这个是 beafqps 7要素中最基础的一个,勿忘初心,要实现功能。

Quality( 质量) ,一方面是指可靠性,系统要可测试、质量保障要做好;另一方面是指可用性,要高可用,稳定性要好,需要采取熔断降级、限流、 耗时重试、兜底补偿、立体化监控等措施。

Performance( 性能) ,高并发、低延迟,需要采用无状态、串行改并行、同步改异步、读写分离、分库分表、慢查询优化、JVM优化等措施。

Safety( 安全) ,权限要做好控制、鉴权和越权治理,另外还要防范SQL注入、XSS攻击、CSRF等等。

如果在与面试官的交流中,上面7个要素,你都提到了,绝对是可以说明你的思考已经比较 全面 了,具备了较好的 技术广度 了,如果面试官对你的技术深度,也是有较高评价的话, 专业能力 这一块,就过关了。

预知其余面试要素剖析,请听下回分解

作者:达叔,前美团资深工程师。

年薪75万的真实技术面试实践攻略(篇章一)

年薪75万的真实技术面试实践攻略(篇章一)

原文  http://mp.weixin.qq.com/s?__biz=MzIzODIzNzE0NQ==&mid=2654418009&idx=1&sn=236637134bda59da20cc78b01f99f154
正文到此结束
Loading...