【真实案例分享】面对BAT大厂的竞争对手时,小公司Java工程师是如何败北的?【石杉的架构笔记】

欢迎关注我的公众号:石杉的架构笔记(ID:shishan100)程序员

周一至周五早8点半!精品技术文章准时送上!面试

精品学习资料获取通道,参见文末算法

目录

一、从一个求职案例引入数据库

2 、学历差距:面试官的第一印象编程

三、公司背景差距:你的人生名片缓存

四、技术差距:硬核能力的欠缺性能优化

五、架构能力的差距网络

六、面试结果的分析架构


“ 这篇文章,聊一个不少人感兴趣的话题,小公司的Java工程师和大厂Java工程师一块儿出去求职同一个职位时,前者的竞争力到底差在哪里呢?并发

搞明白这个事情,相信不少中小公司的同窗能够对本身当前的状况以及跟大厂之间的差距有更加清晰的认识。从而能够更好的规划本身的职业发展路线,更好的去努力争取一步一步的缩小差距。



(1)从一个求职案例引入


如下是一个很是真实的案例,是一个大厂工程师和一个小公司工程师同时求职一个独角兽公司的职位的经历。

其中一个同窗,211/985本科学历,出身互联网大厂,四五年经验的样子。技术积累很是扎实,并且参与开发的系统支撑过上亿用户量,有真正的高并发经验。

虽说那个系统不是他主导设计的,他仅仅是一个资深工程师,负责带几个小弟设计和开发几个子系统。

可是呢,他在这个过程当中,全程观察到了大厂里的大规模系统,如何规划、设计、构建以及演进的,如何依托各类各样的技术解决线上很高的挑战。

另一个同窗,普通二本学历,一样五年左右的工做经验,可是一直都在小公司里工做。平时也还算是比较好学,学了一些技术,各类东西或多或少都了解,在小公司出身的工程师里,总体技术还算是比较好一些的。




结果这两我的同时去一个几十亿美金估值的独角兽公司去面试求职,你们猜猜,发生了什么事情?

一样的年龄,两我的的面试结果是天差地别。

第一位同窗,顺利拿下独角兽的技术专家的职位以及一大笔期权,还能独立带团队;

第二位同窗,竟然连offer都没拿到,人家甚至都不肯意给一个高级工程师的职位。

因此这篇文章就从几个方面来分析一下这两种不一样的同窗,他们之间的差距到底在哪里。


(2)学历差距:面试官的第一印象


其实首先面试官看简历以及面试的时候,对你的第一观感就是两个:一个是学历,一个是公司背景,这俩东西几乎就造成了每一个面试官对你的第一印象。

好比说上述两位同窗,第一位同窗虽然也就是个本科学历,但起码是211/985的名校本科,而第二位同窗就是一个不知名的普通二本。

不少人也许以为学历这个东西是虚的,关键仍是能力。对于这个我是部分承认。

确实有的时候咱们也见到过,高学历的人他的技术能力、学习能力、人品态度甚至还远远不如一个大专学历的人。

可是也有不少状况下,高学历的同窗他的技术底子更好,学习能力更强,更加聪明,后劲和潜力远远比普通学历的同窗要好的多。




因此这个学历是不能一律而论的,不能说高学历的同窗就必定很牛,也不能说低学历的同窗就必定不好。要知道,高学历的同窗里也有各方面很差的,低学历的同窗里也有各方面极为出色和优秀的。

因此,个人观点一贯是不惟学历论,咱们在招人的时候,一般状况下都是要求名校本科/硕士学历的。

可是若是是特殊状况下,都会给普通学历的同窗一个机会,让他来证实本身的极为优秀的潜力和能力,也能够破格招收。

可是这里有一个很关键的点,那就是从咱们过往大量的经验而言,高学历的同窗,他当初为了考上名校,每每付出了大量的努力。因此他的学习能力以及潜力,可能每每更好。

而一个普通学历的同窗,当初考上了普通的大学,多是本身没发挥好,可是不少状况下,确实是学习能力没达到那个水平。

因此说,若是拿到两份简历,一份简历是211/985名校本科,一份简历是不知名的本二学校,那么做为面试官,第一印象,其实会潜意识里以为,这个211/985名校本科的同窗,应该学历能力和潜力会好不少,内心会更加指望一些,也会更加承认一些。

那么在面试的时候,面试官心里的我的情感色彩,实际上是相对来讲对名校同窗更加接收程度高一些的。

而对于普通学历的同窗,可能就是没什么期待,也没什么负面情绪,就是面试的时候带着很日常的感情色彩来对待。

那么你们想,这个学历的差距,是否是在一开始甚至还没面试的时候,就已经让面试官有了不一样的看待了?这就是学历给面试结果带来的第一个影响的地方。

另外,你们能够想象一下。假设两我的的技术水平、项目能力都是同样,可是岗位需求有限,就一个坑,你以为会招谁?

那想都不用想,确定是211/985学历的同窗!这个就是学历的优点了,在其余方面假设面试结果都差很少的时候,你仍是可能会由于学历问题,被竞争对手挤走,而后失去offer,别人由于学历高,就能够拿到更多的offer机会。


(3)公司背景的差距:你的人生名片


除了学历以外,你给人的第一印象,就是你的公司背景。这个其实很是简单,不用我多说,你们也知道。

虽说不少大厂出身的同窗,也有那种能力平庸,技术不太好的状况,小公司出身的同窗,反而也有那种技术能力强悍的人。

但仍是那句话,大部分状况下,大厂出身的同窗,相对技术能力都是比较好的,有保证。

而小公司出身的同窗,不少状况下确实技术能力通常,也没作过什么有挑战的技术项目,总体而言比较普通。




因此通常在面试官来看,若是你是知名大厂出身,那么通常刚开始就会对你内心有好感,你们都愿意找知名公司的人进来加入本身,对方的技术和经验有保障。

可是若是你是小公司出身,面试官对你是没任何感情色彩的,不知道你到底怎么样,一切仍是要看面试状况。

一样,咱们再假设:若是两我的学历差很少,技术能力差很少,项目经验差很少,可是一个是出身大厂,一个是出身小公司,你会要谁?

固然仍是会优先选择大厂的同窗加入团队了,毕竟人家大厂出身,对大厂自身的一些技术体系见识也多一些,眼界更加开阔一些,哪怕冲着这一点也会让人家进来。


(4)技术差距:硬核能力的欠缺


承接上文所述,接下来上面两位同窗开始了几轮面试。

第一位同窗的状况以前已经说过,平时很是注重技术积累,常常学习各类技术。

并且这位同窗喜欢探索各类开源技术的源码,喜欢研究各类不一样场景下技术挑战的解决方案,本身作了大量技术笔记,因此对Java领域完整的技术栈都有很深的积累。

同时,由于在大厂里开发系统,自己在各类技术挑战之下,是有足够的机会实践,将各类技术在项目里落地。

好比说真正用缓存技术来抗每秒几万的并发读请求,或者基于分库分表抗几十亿数据量的存储和查询。

既然如此,面试结果固然是显而易见了。

面试官必定会从并发编程、缓存、JVM、MQ、分布式、微服务、分库分表、NoSQL、高并发等各个环节开连环炮深刻的发问,从各类技术的一些基本的原理,到他在项目里的各类结合业务是如何落地实践的,平时遇到哪些坑是怎么解决的,而后深刻的一些技术的底层源码级别。

这个同窗,均可以回答的很是的好,基本能彻底hold住面试官的各类问题。

可是第二位同窗呢,那就差不少了,基本上面试的时候,面试官各类发问之下,确实发现这我的对各类技术都有必定的了解,好比说JUC、RocketMQ、Kafka、Dubbo、Redis等技术,或多或少都知道一些。

可是呢,若是往深了问,好比问他RocketMQ在项目里究竟是怎么用的?为何要用?不用行不行?抗了多大的并发?这些问题,他就无法说了。




为何呢?由于在一些小公司里,可能对MQ用的很简单,甚至都没用,因此他的实践经验并非不少,他只是业余时间本身学习过一些基本的使用和原理而已。

而后再往深了问,说能不能来聊聊源码之类的,那他更加是说不出来了,由于根本没能力去精读一个开源技术的源码。

因此最后在面试官的眼里,第一位同窗,技术广度足够,技术深度扎实,实践经验也丰富。

第二位同窗,技术广度差强人意,还算是知道一些,可是技术深度几乎没有,实践经验也几乎不多。明显第一位同窗的技术能力要高出第二位同窗一大截。

这就是两我的的硬核技术能力的差距,在面试的时候会直接影响面试官的考察。


(5)架构能力的差距


在面试的过程当中除了硬核技术能力以外,很是关键体现不一样的人的层次和水平的,还有架构设计的能力的差距。

面试官会深刻考察你在一个项目里扮演的是个什么角色,首先会摸清楚大家一个完整的大系统是多大规模,你在里面是负责了哪些东西,有没有带人,带人是作什么的。

接着会仔细考察你对本身系统的设计能力,什么样的业务场景,业务多复杂,技术挑战有多高。

而后你如何总体规划和设计你的系统,你如何分配子系统和任务给你带的一个团队,如何把控一个团队来推动一个大系统的开发。

另外,面试官还会出一些你没经历过的系统设计题目,看看你在短期内,随机应变,可否把一个陌生背景下的系统设计出来一个雏形。




经过这些,能够看出你在系统设计的时候,各个点的考虑是否合理,可否全局把控一个系统,可以把控多大的系统。

这类问题能够完美区分出来一我的的能力。你是到了技术专家的水平,能够带团队负责一个大系统呢?仍是说只能带一两个小弟做为高级工程师负责一个大系统中的一两个子系统?经过这一系列的架构能力的拷问,就能够区分出来。

因此第一位同窗,他自己就带了几个小弟,算是一个小的团队,并且负责了几个子系统,他能够很好的说出来本身负责的业务场景。

好比说像用户量,并发量,数据量,请求量,技术挑战,技术复杂度,如何规划和设计一个大系统的,如何给小兄弟分配任务的,怎么把控一个大系统不断推动和演进的。这些东西,他均可以说出来。

而第二位同窗,就差不少了,他自己在小公司里最多就带过1个小弟一块儿负责某个子系统的开发,没独立把控过一个大的系统,并且作的系统也没太大的技术挑战,最后说出来的系统架构也很简单,没太多的技术挑战。

因此在这里,又是体现和区分出了两我的的能力的差距。


(6)面试结果的分析


最后综合以上几点,咱们先不考虑其余的因素,好比说软素质(沟通能力、表达能力、团队协做能力,等等)。

就上面几块分析,你们就能够看到了。第一位同窗,学历更好,潜力更好,技术过硬,能带团队,在大厂把控过有技术挑战的大系统。

因此对于一个独角兽公司而言,在招聘技术专家的时候,是会选择这位同窗发offer的,由于他来了就能够带一个团队,把一个完整的系统抗起来,各类架构设计,团队管理,技术能力,均可以hold住。




可是第二位同窗,学历普通,潜力通常,技术平平没太大亮点,也没太好的架构能力和经验,又一直在各类小公司里干。

最后综合一考量,甚至可能会招聘一个两三年经验的大厂同窗到独角兽公司团队给高级工程师的offer,而不是要一个四五年经验的小公司出身的工程师,因此最后这位同窗连独角兽公司的offer都没拿到。

相信你们看完这篇文章,应该能够从各个层面了解到本身的一些欠缺和差距,以及在求职的时候,出身小公司的同窗为何屡屡受挫,好机会不多。

可是你们也不用所以泄气,小公司的工程师也是能够逆袭冲进BAT大厂的,只要你们坚持和努力,给本身定好明确的规划,一步一个脚印慢慢走,就必定能够作到,最难的,是你决定开始的那一步。

而关于如何规划准备,如何面试,能够参见笔者之前的一篇文章:

「非广告,纯干货」中小公司的Java工程师应该如何逆袭冲进BAT?


(封面,图源网络,侵权删除)

扫描下方二维码,备注:“资料”,获取更多“秘制” 精品学习资料

一大波微服务、分布式、高并发、高可用的原创系列文章正在路上

欢迎扫描下方二维码,持续关注:

石杉的架构笔记(id:shishan100)

十余年BAT架构经验倾囊相授

推荐阅读:

一、拜托!面试请不要再问我Spring Cloud底层原理

二、【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问?

三、【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战

四、微服务架构如何保障双11狂欢下的99.99%高可用

五、兄弟,用大白话告诉你小白都能听懂的Hadoop架构原理

六、大规模集群下Hadoop NameNode如何承载每秒上千次的高并发访问

七、【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍

八、拜托,面试请不要再问我TCC分布式事务的实现原理!

九、【坑爹呀!】最终一致性分布式事务如何保障实际生产中99.99%高可用?

十、拜托,面试请不要再问我Redis分布式锁的实现原理!

十一、【眼前一亮!】看Hadoop底层算法如何优雅的将大规模集群性能提高10倍以上?

十二、亿级流量系统架构之如何支撑百亿级数据的存储与计算

1三、亿级流量系统架构之如何设计高容错分布式计算系统

1四、亿级流量系统架构之如何设计承载百亿流量的高性能架构

1五、亿级流量系统架构之如何设计每秒十万查询的高并发架构

1六、亿级流量系统架构之如何设计全链路99.99%高可用架构

1七、七张图完全讲清楚ZooKeeper分布式锁的实现原理

1八、大白话聊聊Java并发面试问题之volatile究竟是什么?

1九、大白话聊聊Java并发面试问题之Java 8如何优化CAS性能?

20、大白话聊聊Java并发面试问题之谈谈你对AQS的理解?

2一、大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?

2二、大白话聊聊Java并发面试问题之微服务注册中心的读写锁优化

2三、互联网公司的面试官是如何360°无死角考察候选人的?(上篇)

2四、互联网公司面试官是如何360°无死角考察候选人的?(下篇)

2五、Java进阶面试系列之一:哥们,大家的系统架构中为何要引入消息中间件?

2六、【Java进阶面试系列之二】:哥们,那你说说系统架构引入消息中间件有什么缺点?

2七、【行走的Offer收割机】记一位朋友斩获BAT技术专家Offer的面试经历

2八、【Java进阶面试系列之三】哥们,消息中间件在大家项目里是如何落地的?

2九、【Java进阶面试系列之四】扎心!线上服务宕机时,如何保证数据100%不丢失?

30、一次JVM FullGC的背后,竟隐藏着惊心动魄的线上生产事故!

3一、【高并发优化实践】10倍请求压力来袭,你的系统会被击垮吗?

3二、【Java进阶面试系列之五】消息中间件集群崩溃,如何保证百万生产数据不丢失?

3三、亿级流量系统架构之如何在上万并发场景下设计可扩展架构(上)?

3四、亿级流量系统架构之如何在上万并发场景下设计可扩展架构(中)?

3五、亿级流量系统架构之如何在上万并发场景下设计可扩展架构(下)?

3六、亿级流量架构第二弹:你的系统真的无懈可击吗?

3七、亿级流量系统架构之如何保证百亿流量下的数据一致性(上)

3八、亿级流量系统架构之如何保证百亿流量下的数据一致性(中)?

3九、亿级流量系统架构之如何保证百亿流量下的数据一致性(下)?

40、互联网面试必杀:如何保证消息中间件全链路数据100%不丢失(1)

4一、互联网面试必杀:如何保证消息中间件全链路数据100%不丢失(2

4二、面试大杀器:消息中间件如何实现消费吞吐量的百倍优化?

4三、高并发场景下,如何保证生产者投递到消息中间件的消息不丢失?

4四、兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构

4五、从团队自研的百万并发中间件系统的内核设计看Java并发性能优化

4六、【非广告,纯干货】英语差的程序员如何才能无障碍阅读官方文档?

4七、若是20万用户同时访问一个热点缓存,如何优化你的缓存架构?

4八、【非广告,纯干货】中小公司的Java工程师应该如何逆袭冲进BAT?

4九、拜托,面试请不要再问我分布式搜索引擎的架构原理!

50、【金三银四跳槽季】Java工程师如何在1个月内作好面试准备?

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

5二、【offer去哪了】我一连面试了十个Java岗,通通石沉大海!

5三、高阶Java开发必备:分布式系统的惟一id生成算法你了解吗?

5四、支撑日活百万用户的高并发系统,应该如何设计其数据库架构?

5五、尴尬了!Spring Cloud微服务注册中心Eureka 2.x中止维护了咋办?

5六、【Java高阶必备】如何优化Spring Cloud微服务注册中心架构?

5七、面试官:消息中间件如何实现每秒几十万的高并发写入?

5八、【非广告,纯干货】三四十岁的大龄程序员,应该如何保持本身的职场竞争力?

5九、【生产实践总结】支撑百万链接的系统应该如何设计其高并发架构?

做者:石杉的架构笔记 连接:https://juejin.im/post/5c6a9f25518825787e69e70a 来源:掘金 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
相关文章
相关标签/搜索