好文程序员首页投稿(暂停使用,暂停投稿)

Java开发人员能力模型

2017-09-23  本文已影响1042人  梦孤

前言

没有对比就没有伤害,没有伤害就没有上进心!

本文的出发点主要有以下两条:

  1. 让大家通过对比能力模型,发现自己的不足;
  2. 知道自己的不足后,提供一条学习的路线建议。

如果不害怕暴击10000000+的伤害,就请继续往下。。。


1年

一年经验还是职场菜鸟,你的立身之本就是扎实的基础知识,这也是你以后能走多远、走多快的保证。

--能力要求

--学习建议

这个阶段,有两本书一定要啃下来的(这里说的啃,可不是读):《java数据结构和算法》、《java编程思想》

--面试模拟

比如,面试官先问你HashMap中插入一条数据的过程是怎么样的?
你估计会回答,HashMap底层是用数组来存储键值对,先对key做hash,然后根据hash值确定数组的下标,存入数据。那面试官就会继续问你,如果该下标处已经有数据,怎么办?
你如果这个时候说不知道的话,那这个问题就到此结束了。如果你说和已经存在的数据通过链表方式放到一起。
那么面试官接下来就可能会问你,除了链地址法,还有没有其他方法?
如果你回答不上来,那么到此为止。如果你依然回答上来了,那么面试官还会继续问你,你觉得它们两个各有什么优缺点?
如果你依然可以回答的话,那么面试官会继续问你,你觉得还有没有比它更好或者更高效的实现方式?
如果你还能说出来的话,那么就你所说的实现方式肯定依然可以问你很多问题。


3年

如果在其他行业,3年可能也就是个稍微高级点的菜鸟,但是在软件开发行业,3年已经可以算是码代码的主力军了,这个阶段要求你不仅更深入了解前面的基础,还要求对各种框架原理、设计模式广有涉猎。

--能力要求

--学习建议

同样有两本书要坚持啃下来:《深入理解Java虚拟机》、《Head First Design Patterns》;上面那三个框架的核心流程的源码也是一定要熟悉的,这个熟悉过程和设计模式的学习可以相互对照。
这个阶段啃下来,对并发编程、IO线程模型就会有更深入的理解了。
同时,可以根据这些框架的设计思想,自己去重复的造造轮子了。

--面试模拟

比如,面试官首先问你内存分为哪几部分,这些部分分别都存储哪些数据?
然后继续问你一个对象从创建到销毁都是怎么在这些部分里存活和转移的?
接着可能会问你,内存的哪些部分会参与GC的回收?
完事以后,可能还会问你Java的内存模型是怎么设计的?
你回答了以后,还会继续问你为什么要这么设计?
问完以后,还可能会让你结合内存模型的设计谈谈volatile关键字的作用?
你在谈的时候,肯定会提到可见性,那么接着可见性这三个字,还可以继续问你并发的内容。


5年

5年是开发人员的一个大门槛,到这个时期就要考虑个人往后的发展路线了,是继续深入技术,还是转向管理。当然对系统的全局把握能力是能跨过这个门槛的硬指标。这里就只讲技术发展的路线。

--能力要求

--学习建议

--面试模拟

到这个阶段,已经没有什么套路可言,就是根据以往的项目进行询问。作为被面试人,要提前准备好项目亮点,并引导面试官在这些亮点上深入交流。如果没有什么亮点的话,面试官可能礼貌性的问点框架原理问题,就over了。


总结

这段时间面试了不少开发人员,有不少工作可能六七年了,但真实水平还处于一年那个阶段,关键自己对此还没有一个清晰的认识,这里算是稍做总结,给准备换工作的人一个参考吧。

以上只描述了java相关的部分,并没有涉及到项目管理工具、数据库、前台界面开发,这些内容可能很多java岗位也是需要考察的

上一篇 下一篇

猜你喜欢

热点阅读