想去大公司,如何做好技术储备?

来自:Java技术精选,作者:陈树义

对于许多身处小公司的开发朋友来说,去到一个像 BAT 这样的大公司是其短期的追求。精选君的技术讨论群中也有许多这样的人,他们愿意努力,但很多时候不知道应该如何努力。那么今天就让我们来聊一聊去大公司,你应该如何做好技术储备。

虽然不同公司有不同的面试标准,但是这些公司其实都有着类似的评判标准。总结下来无非就是对于技术理论以及项目经验的考察。

技术理论

技术理论,其实就是我们常常说的基础。而这基础范围常常非常广泛,包括了:Java 集合原理、Java 反射原理、Java 泛型、Spring AOP 原理、Spirng IOC 原理、JVM 内存结构、JVM 垃圾回收机制等等。

这些基础其实总结起来可以分为几个方面:

  • Java 语言高级特性。包括 Java 集合原理、Java 多线程、Java 并发、Java 反射等。虽然这些东西在实际工作中不一定会常常用到,但这些都是基础知识,面试中会经常问到。

  • 常用框架的原理。对于 Java 开发来说,Spring 是最为重要的一个框架,因此与其相关的 Spring AOP、Spring IOC 原理自然也是考察的重点。类似的框架还有 Redis、Zookeeper、Dubbo、Kafka、ElasticSearch 等。简而言之,常见的框架原理,你都得略知一二,并且最好有一个深入的方向。

  • Java 虚拟机相关。Java 虚拟机是 Java 语言中的重要组成部分,一般面试或多或少都会涉及到,了解这部分知识非常重要。这部分知识也不少,包括:字节码结构、Java 虚拟机内存结构、Java 虚拟机垃圾回收机制等等。

要做好这部分的储备,其实无非就是平时多多学习,与同事或技术群的同学一起讨论。这样日积月累就可以不断丰富自己的技术体系。

项目经验

一般来说,对于技术理论的考察都会在一开始的前几轮面试当中。而对于项目经验的考察则会在后面几轮进行考察。而项目经验主要还是看你的真本事,看你究竟做过哪些项目,都做了什么工作,你是否真的了解了这些项目,这些项目的架构是怎样的,有什么做得不好的地方,有什么可以改进的地方,等等。

要说上面是纸上的战术,那么项目经验就是真刀真枪地开干了。如果你没有实际的经验,那么在项目经验的考核中就会被刷下来。而能生存下来的,基本上是有丰富的项目经验的人。

举个例子,一个面试者平时做的项目只有简单的管理系统,基本上都是增删改查的操作。另一个面试者做过面向几百万用户的搜索系统,使用了 ElasticSearch 框架、Kafka 消息队列,并且对整个系统的架构非常了解,还对系统提出了自己的改进建议。这两个人对比之下,自然是第二个人更有经验些了。

所以如果你准备进去大公司,那么你就要在日常的工作中有意识地去做一些有挑战的项目。你要不断地去升级自己的技术栈,接触业界使用得较多的框架,并且在实战中去使用它。

当然在实际工作中,会出现这样或那样的问题。例如:我的公司业务量太小,根本没机会去用这些东西。平时工作太忙了,没时间学习等。其实一切都在于你自己,你想要什么,就去做什么,最后你就会得到什么。

总结

要进去大公司,就必须提前做好技术储备,其实就是在技术基础和项目经验这两个方面做好准备。当你的技术储备达到要求时,其实进入大公司就是顺水推舟、轻而易举的事情了。

我之前也写了一篇阿里菜鸟的面试文章,其实也验证了我本文所说的观点,感兴趣的同学了看一下:聊聊阿里面试的三个层次

推荐↓↓↓
iOS开发