更新时间:2019-08-06 09:34:28 来源:极悦 浏览2296次
如果你准备在金九银跳槽的话,那么作为一个Java开发者,该怎样用一个月的时间,为即将到来的面试做好充分的准备!
一、技术广度
技术广度,顾名思义,你作为一个合格的工程师在开发一个系统,完成一些具体的技术任务的时候,必然是要使用到很多的技术的,而且针对这些技术还需要掌握一些非常常见,各种不同的系统可能都会涉及到的一些技术架构/技术方案。
这个系统很可能为了支撑一些特殊的技术场景会用到其他各种技术。
常见的比如说为了应对高并发的读会用到Redis缓存技术,为了做系统异步调用会用到RocketMQ技术,为了支撑大数据量的高性能检索会用到Elasticsearch技术,等等。
那么假如这个互联网公司在招聘的时候,他的招聘要求是什么?
是不是必须得要求候选人起码在dubbo、Redis、RocketMQ、Elasticsearch等多个技术领域,都有实际的生产项目使用经验,而且还对这些技术的各种特性以及落地项目的时候常见的技术架构/方案都比较熟悉,这样招聘这个人进来之后才能上手立马干活。
实际上,一个合格的适合互联网公司的工程师在技术广度上,还需要掌握其他很多东西。
比如分布式事务、微服务架构、分布式锁、性能优化、Java虚拟机优化、WebServer优化、数据库优化,等等。
越是大型的互联网公司,就越是会针对技术广度这块,考察的可能会越广泛,要求更高一些。
二、技术深度
技术深度是指的什么呢?简单来说,假如你有了上面第一条说的技术广度,这不能说明你有多优秀,仅仅只能说满足了面试的最基本的要求,招聘进来过后立马就可以上手干活了,没太大的培养成本。
决定你未来技术的高度有多高,还有你能否成为团队里顶梁柱的,是你的技术深度。
技术深度,顾名思义,就是说你对一个技术掌握的深度,举个最简单的例子。假如你们公司的一个系统里用到了kafka这个技术,好那么现在问题来了,线上生产环境中,每当高峰到来的时候,不知道为啥写kafka总会偶尔抛个异常出来,或者是说写入到kafka中的数据不知道为啥每天统计下来总会少一些。
因为很多人说是看过源码,但是其实都是浅浅的看过一点点,理解不太深入。
同时如果还有一些对某个技术在线上生产环境遇到过一些棘手问题,通过源码分析来解决问题的经验的,那么就是更优秀的技术深度的体现。
技术深度的体现,不一定是说看过源码,这只是其中一种表现形式而已,其他的还有,比如说对某个特别有难度的技术场景,比如说公司双11每秒几十万QPS并发请求下,你负责了其中支付系统,成功应对超高并发量。
在这个过程中,你对系统架构的设计,对系统做的大量的并发优化、性能优化,都可以成为你在某个技术领域的技术深度的体现。
因为真要有技术深度的话,你可能需要花费至少2年的时间,从底层开始研究一些基础性的技术。
在打通你的底层技术任督二脉之后,再去对常见的开源技术进行深入的源码研究,比如说:dubbo、zookeeper、springcloud、redis、rocketmq、elasticsearch,等等。
那如何学习才能快速入门并精通呢?
当真正开始学习的时候难免不知道从哪入手,导致效率低下影响继续学习的信心。
最重要的是不知道哪些技术需要重点掌握,学习时频繁踩坑,最终浪费大量时间,所以有一套实用的用来跟着学习是非常有必要的,以下资源获取方式,登录极悦IT培训官网【视频课程】专栏,直接下载学习。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习