1. 聚能聊>
  2. 话题详情

作为一名合格的JAVA程序员需要点亮那些技能树?

先看看这些程序员技能树,你掌握或了解哪些?OMG竟然有么多~~~震精!震精!!!

1

2

3

这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的。

尽管Struts2漏洞频出,但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。新兴互联网公司,一般来说主要是Spring家族居多,spring、spring Mvc以及Spring Boot 出现的频率较多。

从图中可以看出,分布式服务框架应用也是大部分企业招聘的必要条件了,阿里系的Dubbo名列前茅。相应的分布式应用程序协调服Zookeeper也出现在其中。

时下很流行的RESTful架构,准确的来说它是一种标准。也是很多企业考察的对象。

以下是出现次数超过100的一些技能,大家可以做一个参考。

Spring 299
MySQL 290

JavaScript 216
Linux 165
J2EE 151
设计模式 148
Struts2 138
Hibernate 132
Mybatis 130
jQuery 128
HTML 127
TOMCAT 117
iBatis 103
CSS 103
redis 102
多线程 102
dubbo 47 (绝壁不是打酱油的)

相信每个程序员、或者说每个工作者都应该有自己的职业规划,问一下自己对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?

各位 攻城狮们聊聊你们的看法

你所掌握的语言是什么?又是如何点亮自己的技能树的?

或是准备点亮哪些技能树?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    定制笔记本 x 3

  • 奖品二

    技术书籍 x 2

  • 奖品三

    虾米VIP月卡 x 5

245个回答

0

zkaif

学习JAVAweb的学生党,现在还在学习ssh框架中,别人都说要学ssm,不过无所谓啦毕竟ssh仍然占有很大的量,而且对我来说ssh框架还是能教给我很多东西的,打算学透了它再去看其他的,今天刚学完struts2还在沉醉于拦截器设计的如此巧妙,等学完ssh给自己做个个人博客再看它的源码然后再解决ssm。感觉学框架重要的还是学习它的实现方式,设计思想这样对自己提升快,就是struts漏洞百出,它的源码还是大牛写的反正都值得我去学习。

9

小崽崽 已获得定制笔记本 复制链接去分享

PHP才是世界上最好的语言,看我大PHP技能树

tree1

tree2

聚小编 回复

程序猿,你在挑起战争...

小柒2012 回复

哈哈哈 是不是要把JAVA的一个点都拆成一棵树~~

屁孩儿 回复

大写的牛!

屁孩儿 回复

哦不,COW!

屁孩儿 回复

哦不,OX!

屁孩儿 回复

哦不,EXCELLENT!

azinoa 回复

都是吓唬人的,😂

mengyx 回复

赞成 最爱php

java小萌新 回复

厉害了....

liuchuan95 回复

你们都是牛人

赵梓鑫 回复

我才Get到Java基础的那一个枝桠,好伤心的说。技术之路没有捷径可言

张维-IT&阿里云 回复

这是一片森林。。。。

seeyagain 回复

低调低调

互联搬运工 回复

大神呀,建议楼主,出个视屏教程,让小弟们更加膜拜。

见云开 回复

亦可赛艇

户籍科主任 回复

大写的难过!

$hello_world$ 回复

可怕

报表专家 回复

多线程与实践,设计模式

ice6 回复

无能的人爱用php黑java

19040417 回复

胸弟们,冒个泡,我是php初学者

小闻 回复

高并发,模块化是php的硬伤,也是Java存在的价值。黑猫白猫不同公司采用适合自己的技术就是最好的。

评论
5

似水的流年 已获得定制笔记本 复制链接去分享

java,php。这些排第一的除了还没用分布式的框架,其他的都在用,还是linux大法好
f301129af845e0314d0832290d57d33bgldt1210

sea-line 回复

这个linux分支实在太多了

飛行機 回复

画得好漂酿~~~

19040417 回复

这张图牛,光看他们的发展史就够呛

评论
2

jetbird0 复制链接去分享

structs2是不是有点过时了

小柒2012 回复

但是由于政府、银行以及传统企业遗留项目大部分还是采用Struts2的,所以还是占有一定市场,但绝壁不会增长。

海岸无眠001 回复

楼主写错了 是strucs2

小鱼纸币 回复

二楼 你也写错了 是是strus2

java小萌新 回复

三楼你也写错了,是strust2

见云开 回复

4楼你写错了,是strutssss2

luya 回复

五楼你不按常理出牌啊,是四不是4,而且strutc2,看好了

java小白白 回复

你们继续,我就看看

聚小编 回复

楼上的几位,你们是来搞笑的么~~给你们搬个终身搞笑奖

评论
2

我很无奈 已获得技术书籍 复制链接去分享

Java 相关的知识技能点太多了,本人就列举出自己从刚开始接触Java 到目前为止真正用过的一些技能以及知识点,详细的内容我就不具体描述了,只大概个图
1
相关细节若要细分,Java基础 就有很多,后面还分有前端工程师所需要了解掌握的前端框架,样式、布局等,web开发人员了解的SSH Spring MVC框架,DBA的数据库,服务端工程师的Linux,集群等。以及目前互联网用到的一些分布式架构框架,缓存,开发工具等,细细数来,感觉还真不少,向所有坚守在Java开发岗位上的同仁们 致敬!
你们辛苦了,清明节了,多烧点纸 ~~!

1

老虎是个蛋 已获得定制笔记本 复制链接去分享

最近公司一直在招聘java软件工程师,我就大体说一下公司对java软件工程师的一些标准吧:
1、java基础,主要集中在concurrent包的使用以及理解
2、多线程知识,锁机制
3、动态代理底层原理
4、redis相关知识
5、分布式事务
6、mysql相关知识,包括mysql的分库分表相关知识
7、RPC的一些知识以及底层原理
8、异步IO相关知识
9、对业务的理解(感觉挺重要的)
10、ES、Hbase、hive等大数据相关知识
11、MQ相关知识

heiyoubo 回复

评论
2

爵霸 已获得虾米VIP月卡 复制链接去分享

要看职业的,有网页端、客户端、服务器、DBA等职业,打团战不同的位置都需要人
DBA一般刷SQL mongoDB ETL python或perl
网页前端:html div css form表单 javascript,可以选jsp或php
服务器端:socket套接字 掉包处理 核算 数据库
客户端: UI 控件 通信
手机端:OC/ANDROID相关技能

2

张维-IT&阿里云 已获得虾米VIP月卡 复制链接去分享

正在使用的

Spring框架
Spring框架是一个分层架构,有7个定义良好的模块组成
spring模块构建在核心容器智之上, 核心容器定义了创建、 配置、和管理bean的方式
组成spring框架的每个模块(或组件)都可以单独存在, 或者与其他一个或多个模块联合实现

模块如下:

复制代码
1--核心容器
核心容器提供spring框架的基本功能,核心容器的主要组件是BeanFactory, 他是工厂模式的实现.
BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性与实际的应用程序代码分开

2--Spring上下文
是一个配置文件,该配置文件向spring框架提供上下文信息

3--Spring AOP
通过配置管理特性,Spring AOP 模块直接将面向切面(方面)编程功能集成到spring框架中

4--spring DAO
JDBC DAO抽象层提供了有意义的已成层次结构, 可用该结构管理异常处理和不同数据库抛出的错误信息,极大的降低了异常代码数量

5--Spring ORM
spring框架插入了若干个ORM框架, 从而提供了ORM的对象工具,其中包括了Hibernate, Mybatis

6--Spring Web
web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供上下文

7--Spring MVC
该框架是一个全功能的构建web应用程序的MVC实现. 通过策略接口,MVC框架变成高度可配置的. MVC容纳了大量视图技术. 其中包括JSP、Velocity和POI
复制代码
Spring 框架的好处

spring是最大的工厂
spring负责业务逻辑组件的框架和生成, 并管理业务逻辑组件的生命周期
spring可以生产所有实例, 从控制器、 业务逻辑组件、 持久层组件
Spring特点

复制代码
1--降低了组件之间的耦合性, 实现了软件各个层之间的解耦
2--可以使用spring容器提供的服务, 如: 事务管理, 消息服务
3--容器提供单例模式支持
4--容器提供AOP技术, 利用它很容易实现权限拦截, 运行期监控
5--容器提供了众多的辅助类, 能加快应用的开发(org.springframework.jdbc.core.JDBCTemplate 等)
6--spring对主流的应用框架提供了集成支持, 例如: hibernate,JPA, Struts, Mybatis(IBatis)
7--Spring属于低侵入式设计, 代码污染度极低
8--独立于各种应用服务器
9--spring的DI机制降低了业务对象替换的复杂性
10--spring的高度开发性, 并不强制应用完全依赖于spring, 开发者可以自由选择spring的部分或者全部

1

biehl 已获得虾米VIP月卡 复制链接去分享

1002211_20160809204351590_343270037

1

龚得星 已获得虾米VIP月卡 复制链接去分享

主攻java,因为项目的需要,点亮spring boot,spring mvc、nginx、openresty、docker、mysql、elasticsearch、logstash、jenkins等技能,至于maven、git、shell、sql那是必备的,去年研究过nodejs、react以及ant design,最近在学习netty,好吧,我就是大乱臭,啥都会点,不过开发效率还可以,至于质量,那是一个持续优化的过程

5

小黄瓜2017 复制链接去分享

唯爱依人 回复

这是什么看不懂?

评论
2

林妙可 复制链接去分享

自古程序员爱黑Java,不黑不痛快的说,最近一周在V2EX上至少看到过不下5个黑Java的帖子,而且都是顶的老高,一共点开看了一个感觉好无趣啊。我到现在为止已经写了4年的C了,主要是做嵌入式驱动的开发,这一块的水很深,所以我平时更多的空闲时间都是用在其他方面,之前回忆了一下本科的基础数据结构和算法知识,期间对Mathematica也产生过不太浓厚的兴趣,后来发现IDEA太好用了,所以我就开始玩Java,虽然懂不懂的人都在黑。以下是我自己已经点过和最近想点的Java方面的技能树:

已点技能:

1.J2SE,Java语言基础,Java基本类库的使用;
2.Android应用层开发,四大组件,SQLite使用以及其他基础知识,可以自己开发Android应用;
3.IDEA的熟练使用;

待扩展技能:
1.Java8的新特性以及今年的Java9;
2.Java并发编程;
3.Java网络编程,如果懒得玩SSH可以尝试下Play框架;
4.Jvm学习;
5.Java性能优化;
6.学习下Scala和Groovy;

目前正在巩固以下Android的应用开发以及重读《Effective Java》,不过最近没什么好点子,也就之前写了个数独游戏,后来考虑的碎片时间完成了一小部分,现在没动力了。这个完了之后打算研究下Jvm和Java并发编程,这块完了之后可能是Java8的新特性研究和阅读JLS,后续是Groovy的研究和Java网络编程,Scala就放在后面了,因为暂时没有需求。

唯爱依人 回复

不知道?

韩浩然1988 回复

这是真的?

评论
1

尤迪安 复制链接去分享

strust2是有点过时,但是很多二次开发的小公司和一些老项目还在用,比如我所在那个

小柒2012 回复

还有 比如我所在的这个 哈哈

评论
1

景元滨 复制链接去分享

需要做一个大规模的网站,但又不是非常大的,数据库用mysql,现在是会.net mvc,java没学过,感觉.net mvc在语法、IDE方面特别好,但是服务器windows server真是让人很郁闷,应该怎么选择呢,重新学java?需要学的内容太多了.....,.net?服务器让人很崩溃......

上上233 回复

我也是.net,但是服务器是租虚拟主机的。

评论
1

互联搬运工 复制链接去分享

以下是出现次数超过100的一些技能,大家可以做一个参考。
Spring 299
MySQL 290
JavaScript 216

非常庆幸,排前三位的常用技能,我基本算会操作。这说明我是合格的程序员吗。

飛行機 回复

60分

评论
2

iskyshop 复制链接去分享

所有的技能都熟悉,也都是我们iskyshop产品体系所用到的,现在很多同学仅仅是知道一个概念求职时候基本都会说很精通!

1

charcair 复制链接去分享

我们公司要求:webx,rocketmq,redis,storm,mongodb

ecs西邪 回复

为webx点赞!

评论
1

空境 复制链接去分享

java核心知识点:jvm、常见的jvm分析工具jstack,jmap。 java并发编程模型。sql性能

康康康 回复

是啊,文中没提到jvm也很疑惑啊,看来底层的东西只有应聘才问……最近在看深入理解java虚拟机,感觉以前代码丑爆了

评论
2

it民工198807 复制链接去分享

好复杂 宝宝还年轻,我想退休。总的来说学无止境 ,当年我以为学会ssh就行了 可是越往上学的越多 什么离线数据,什么分库分表,我想退休。

1

三好青年柒 复制链接去分享

分布式服务 已成趋势

heiyoubo 回复

嗯, 是的

评论
5