程序员分级标准与需要的技能
首先声明下,Java程序员的分级并没有统一的标准,以下列举出来的只是我所理解的关于Java工程师的划分标准,不喜勿喷,如有建议,欢迎评论或私信。
我理解的Java程序员的分级主要有四级:Java初级程序员、Java中级程序员、Java高级程序员、Java技术专家/架构师/全栈工程师。
首先,需要先了解下对知识技能的掌握程度,对于知识技能的界定界限有以下几种:
- 了解,即能够对所需要的知识有所认识,但这种认识可能是局部或点状的,当谈及这些知识时,能意识到自己知道;
- 熟悉,即对所需要的知识有系统性地认识,能够找到知识之间的联系,把点状的认识连成线,且可以运用相关知识解决部分实际问题;
- 掌握,即对所需要的知识有全局性的认识,能在将各个知识点串成线的基础之上,认清整个知识网络,且可以在实际工作中自由运用;
- 精通,即对所需要的知识能够做到融会贯通,不仅对知识网络有清晰的认识,而且能够将其与其他相关领域的知识相融合,能够在灵活运用知识的同时不断创新。
一、Java初级程序员(又名:Java初级工程师/Java初级开发)
1.级别介绍与职责
简单一句话总结初级程序员就是:知道怎么用。
具体些就是,能够成为初级程序员需要:对Java知识有初步的理解;能够使用Java语言实现一个功能模块;需要了解并掌握CRUD操作;能够按照说明文档使用一些框架或中间件。
以我的理解:Java初级程序员是一个开发团队内的储备人才。
在公司中招聘的初级程序员一般需要承担的岗位职责为:
- 负责功能开发工作;
- 编写技术文档;
- 拥有自测能力,修改与完善测试人员测试的bug
2.根据职责需要的技术:既是初级程序员的要求也是初学者的目标
Java知识体系:推荐的学习渠道与方法
掌握Java基础语法、熟悉Java高级语法(反射、注解、泛型、枚举、异常、Lombok、Stream等)、熟悉Java常见集合与底层原理、熟悉多线程与并发包工具类的使用、熟悉IO流使用与NIO、了解网络协议、了解JVM基础知识
数据库知识:推荐的学习渠道与方法
熟悉MySQL/Oracle基础语法使用、熟悉MySQL/Oracle常见使用规范
Web框架:推荐的学习渠道与方法
熟悉Servlet、熟悉Web框架使用与基本原理(重要框架有:Spring、SpringMVC、Mybatis、SpringBoot),了解RPC框架
常见中间件:推荐的学习渠道与方法
熟悉Redis使用、熟悉消息队列的使用(依据所在公司使用的选择熟悉一种或多种:kafka、rabbitMQ、rocketMQ等)、熟悉Tomcat等web服务器的使用和配置
前端知识:推荐的学习渠道与方法
熟悉(HTML、CSS、JavaScript、JQuery)、了解(Vue、AngularJS等JS框架)
如果主要做的是后端研发,这块知识可以不用作为重点
设计模式:推荐的学习渠道与方法
了解常见设计模式
数据结构与算法:推荐的学习渠道与方法
能够理解并掌握Java基础编程题50道题的解法思路
3.根据职责需要的能力:
**学习能力:**身为一个初级程序员最需要具备的能力,而且是需要持续性的学习。很多程序员在工作几年后也还只是初级程序员,在程序员这行,不进则退,没有有效的学习和总结,早晚会被淘汰。醒悟越早,努力越好。
抗压能力:身为一个程序员必备能力之一。初级程序员的压力主要来源于分配的任务是有时限的,时限长压力小,时限短压力大。心态容易爆炸的人不太适合做这行。
沟通能力:不是有技术就不需要沟通了,甚至技术越强的人要求的沟通能力也越高,因为技术就是为业务服务的。脱离业务的技术是锻炼能力用的,不是工作用的。
团队协作能力:和同事相处融洽的能力也是程序员的必备能力之一。
4.总结
一般能通过公司的面试进入到公司的程序员都可以将自己划分为初级程序员。
建议能够分析所在公司的系统架构,并能够在工作中验证学习的知识,加深对各种知识的理解。如何分析公司的技术架构与业务体系
备注:
后面带有链接的都是需要后续补充的,如果有相关方面的经验或心得,欢迎一起讨论