Java开发人员能力模型
前言
没有对比就没有伤害,没有伤害就没有上进心!
本文的出发点主要有以下两条:
让大家通过对比能力模型,发现自己的不足;
知道自己的不足后,提供一条学习的路线建议。
如果不害怕暴击10000000+的伤害,就请继续往下。。。
1年
一年经验还是职场菜鸟,你的立身之本就是扎实的基础知识,这也是你以后能走多远、走多快的保证。
--能力要求
数据结构与算法:一般对应届生的要求就是数据结构和算法的原理基本都理解,数据结构包括:数组、链表、栈、队列、树、图;算法包括:插入排序、快速排序、堆排序、广度优先、深度优先等。
所以工作一年后,就会要求对这些理论的东西在java语言中能一一对应起来,在实践应用中能应对自如;
并发编程:理解concurrent包的用法,了解CAS、AQS的基本原理,熟悉线程池用法;
IO:熟悉IO包的用法,理解BIO、NIO线程模型的区别和使用场景;
--学习建议
这个阶段,有两本书一定要啃下来的(这里说的啃,可不是读):《java数据结构和算法》、《java编程思想》
--面试模拟
比如,面试官先问你HashMap中插入一条数据的过程是怎么样的?
你估计会回答,HashMap底层是用数组来存储键值对,先对key做hash,然后根据hash值确定数组的下标,存入数据。那面试官就会继续问你,如果该下标处已经有数据,怎么办?
你如果这个时候说不知道的话,那这个问题就到此结束了。如果你说和已经存在的数据通过链表方式放到一起。
那么面试官接下来就可能会问你,除了链地址法,还有没有其他方法?
如果你回答不上来,那么到此为止。如果你依然回答上来了,那么面试官还会继续问你,你觉得它们两个各有什么优缺点?
如果你依然可以回答的话,那么面试官会继续问你,你觉得还有没有比它更好或者更高效的实现方式?
如果你还能说出来的话,那么就你所说的实现方式肯定依然可以问你很多问题。
3年
如果在其他行业,3年可能也就是个稍微高级点的菜鸟,但是在软件开发行业,3年已经可以算是码代码的主力军了,这个阶段要求你不仅更深入了解前面的基础,还要求对各种框架原理、设计模式广有涉猎。
--能力要求
Java虚拟机:主要包括三部分:GC、类加载机制、和内存模型;
设计模式:四人帮搞出来的那一套基本都要能熟练掌握;
框架:结合设计模式熟悉springMVC、spring、mybatis等框架的实现原理;
--学习建议
同样有两本书要坚持啃下来:《深入理解Java虚拟机》、《Head First Design Patterns》;上面那三个框架的核心流程的源码也是一定要熟悉的,这个熟悉过程和设计模式的学习可以相互对照。
这个阶段啃下来,对并发编程、IO线程模型就会有更深入的理解了。
同时,可以根据这些框架的设计思想,自己去重复的造造轮子了。
--面试模拟
比如,面试官首先问你内存分为哪几部分,这些部分分别都存储哪些数据?
然后继续问你一个对象从创建到销毁都是怎么在这些部分里存活和转移的?
接着可能会问你,内存的哪些部分会参与GC的回收?
完事以后,可能还会问你Java的内存模型是怎么设计的?
你回答了以后,还会继续问你为什么要这么设计?
问完以后,还可能会让你结合内存模型的设计谈谈volatile关键字的作用?
你在谈的时候,肯定会提到可见性,那么接着可见性这三个字,还可以继续问你并发的内容。
5年
5年是开发人员的一个大门槛,到这个时期就要考虑个人往后的发展路线了,是继续深入技术,还是转向管理。当然对系统的全局把握能力是能跨过这个门槛的硬指标。这里就只讲技术发展的路线。
--能力要求
系统规划能力:熟悉主流框架的特点和适合场景,能根据业务特点架构起一套系统框架出来,这个框架不仅仅是让业务正常运转的框架,还要包括持续集成、自动化测试、运维、监控、告警等等一套完整的体系;
性能调优能力:虚拟机调优、中间件调优、数据库调优等;
领导力:逐渐建立在团队中的影响力;
--学习建议
深入了解各大开源框架的实现原理,做到按需选用,要快速的知道一个框架的优缺点,适不适合自己的业务场景,就需要前面深厚的基础了。
熟悉大型互联网系统架构的高并发、高可靠、伸缩性、可维护、安全等各个方面,学习BAT的成功经验;
在持续集成、自动化测试、运维、监控、告警等方面,打造一套成熟的方法论;
也推荐几本书吧:《大型分布式网站架构设计与实践》、《深入分析Java Web技术内幕》、《软件架构设计》、《Java并发编程实战》、《Effective Java中文版》
--面试模拟
到这个阶段,已经没有什么套路可言,就是根据以往的项目进行询问。作为被面试人,要提前准备好项目亮点,并引导面试官在这些亮点上深入交流。如果没有什么亮点的话,面试官可能礼貌性的问点框架原理问题,就over了。
总结
这段时间面试了不少开发人员,有不少工作可能六七年了,但真实水平还处于一年那个阶段,关键自己对此还没有一个清晰的认识,这里算是稍做总结,给准备换工作的人一个参考吧。
注 以上只描述了java相关的部分,并没有涉及到项目管理工具、数据库、前台界面开发,这些内容可能很多java岗位也是需要考察的
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群346942462,我们一起学Java!
Java开发人员能力模型相关推荐
- 面向 Java 开发人员的 Scala 指南: 深入了解 Scala 并发性
http://www.ibm.com/developerworks/cn/java/j-scala04109.html http://www.ibm.com/developerworks/cn/jav ...
- Java开发人员如何构建自己的技术体系
Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地.成为Java架构师除了掌握Java语法之外,还要 ...
- 优秀的Java开发人员必备的6个技能
作为历史最为悠久的编程语言,Java的发展势头一直非常好.而Java从业人员的选择范围也非常多,大致上可以将Java开发人员分为两类,一类是技术人员,一类是管理人员.无论是哪一类,想要成为一名优秀的J ...
- Java开发人员必备的7大技能,每一个都必不可少
Java存活这么多年,目前Java软件开发工程师已经成为"香饽饽"了,工作环境好,就业薪资高,成为很多门外汉羡慕的对象,确实Java已经成为比较受欢迎的编程语言.可以说当下Java ...
- java 开发人员工具_每个Java开发人员都应该知道的10个基本工具
java 开发人员工具 大家好,我们已经到了2019年的第二个月,我相信你们所有人都已经制定了关于2019年学习以及如何实现这些目标的目标. 我一直在撰写一系列文章,为您提供一些知识,使您可以学习和改 ...
- java分布式系统开发_从微服务到分布式系统-Java开发人员生存指南
java分布式系统开发 感觉像是对微服务的炒作正在慢慢地落到实处,并且我们的行业开始意识到,根据微服务背后的体系结构范式无法通过仅在现有组件之上公开一些HTTP接口来轻松创建一个系统. . 我们似乎确 ...
- java开发错误_每个Java开发人员都必须避免的9个安全错误
java开发错误 Checkmarx CxSAST是功能强大的源代码分析(SCA)解决方案,旨在从根本上识别,跟踪和修复技术和逻辑安全漏洞:源代码. 在这里查看 ! 自从1995年中期引入Java以来 ...
- Spring MVC的DispatcherServlet – Java开发人员应该知道的10件事
如果您使用过Spring MVC,那么您应该知道什么是DispatcherServlet? 它实际上是Spring MVC的心脏,确切地说是MVC设计模式或控制器的C语言. 应该由Spring MVC ...
- 适用于Java开发人员的Elasticsearch:简介
本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...
- 适用于Java开发人员的Elasticsearch:Java的Elasticsearch
本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 . 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序. 我们涵 ...
最新文章
- React 教程:快速上手指南
- Python金融大数据分析——第五章数据可视化(2)金融学图表
- Windows单机配置Kafka环境
- TintTo和TintBy
- [转] 三种Python下载url并保存文件的代码
- 使用setCustomView建立标题居中的自定义ActionBar
- php单例模式代码,php设计模式之单例模式代码
- DBGridEh使用技巧
- qt label显示图片_Qt官方示例-QML Axes
- 重装上阵两个人合体机器人_又一部热门定档!林超贤、彭于晏领衔《紧急救援》重装定档2021年大年初一...
- keil4及其注册机、stc-isp烧入软件
- Android Studio安装教程
- 论文插入参考文献神器——EndNote(包括EndNoteX9安装和破解)
- C/C++中的函数参数传递机制 作者:杨宁 发布时间:2000/11/30
- 【论文解读 KDD 2019 | GATNE 】Representation Learning for Attributed Multiplex Heterogeneous Network
- java 蓝桥杯 分机号
- Matlab 函数circShift、psf2otf 的 python(Numpy)实现
- Dell EMC VxRail超融合节点升级混合云软件
- 人力资源管理系统面向对象建模分析
- kdb的基本用法 2
热门文章
- Nero8完整版下载地址
- duplicate from active dg 的 run 脚本 sfile 为完整配置可能导致的一些错误
- php 查看linux硬盘序列号,LINUX获取硬盘序列号
- windows 10 Tera Term显示乱码
- 代管挂账业务,没有做代管挂账确认单是否可以暂估入账
- 如鹏网.Net高级技术4.String特点及常用方法
- 表白网页制作_表白网页_创意表白_表白神器
- 福建省2020年计算机学业水平考试时间,2020学业水平考试时间表
- 解决向日葵远程不能退出腾讯安全管家,点退出时没反应,也不能远程卸载
- java 习题_【精选】Java习题Java习题.pdf