作者:石杉的架构笔记
写在前面
春节长假转眼已过,即将迎来的是一年一度的金三银四跳槽季。
假如你准备在金三银四跳槽的话,那么作为一个Java工程师,应该如何利用1个月的时间,快速的为即将到来的面试进行充分的准备呢?
这两篇文章,专门站在面试官的角度,给大家分析了平时互联网公司是如何全方位的考察一个候选人的。
总结起来,面试官考察候选人的时候主要是从技术广度、技术深度、基础功底、系统设计、项目经验几个角度来进行的。
那么本文咱们就针对每一块内容,具体的来说一下考察的一些点。更重要的,是针对考察的这些点,如何来快速的进行准备。
技术广度
技术广度,顾名思义,你作为一个合格的工程师在开发一个系统,完成一些具体的技术任务的时候,必然是要使用到很多的技术的,而且针对这些技术还需要掌握一些非常常见,各种不同的系统可能都会涉及到的一些技术架构/技术方案。
举个例子,一个互联网公司的比较重要的系统,首先肯定会用到分布式服务框架,比如dubbo/spring cloud,这样可以将系统拆分为分布式的架构,或者说现在很流行的说法是微服务架构,这样每个人负责一个服务或者是一个子系统。
接着这个系统很可能为了支撑一些特殊的技术场景会用到其他各种技术。
常见的比如说为了应对高并发的读会用到Redis缓存技术,为了做系统异步调用会用到RocketMQ技术,为了支撑大数据量的高性能检索会用到Elasticsearch技术,等等。
那么假如这个互联网公司在招聘Java工程师的时候,他的招聘要求是什么?
是不是必须得要求候选人起码在dubbo、Redis、RocketMQ、Elasticsearch等多个技术领域,都有实际的生产项目使用经验,而且还对这些技术的各种特性以及落地项目的时候常见的技术架构/方案都比较熟悉,这样招聘这个人进来之后才能上手立马干活。
要求一个候选人对各种常见的技术以及相关架构都有实际的项目经验以及对技术本身也足够熟悉,这就是所谓的技术广度,站在招聘候选人的角度来分析一下,想必大家就理解这个“技术广度”考察项了。
实际上技术广度这个东西,都说了是技术广度了,所以肯定不仅仅只是上面提到的那点东西。
实际上,一个合格的适合互联网公司的工程师在技术广度上,还需要掌握其他很多东西。
比如分布式事务、微服务架构、分布式锁、性能优化、Java虚拟机优化、Web Server优化、数据库优化,等等。
越是大型的互联网公司,就越是会针对技术广度这块,考察的可能会越广泛,要求更高一些。
技术广度的快速准备