Java软件工程师技能图谱
原文链接:Java软件工程师技能图谱
最近在考虑“拥有怎样的技能才能算一名合格的java软件工程师呢?”这个问题。碰巧在github发现一个很棒的开源项目--程序员技能图谱。@Zhang Wei写的Java Software Engineer Skill Map确实能解答我心中的疑问。好的东西应该向更多的人,我将英文版本根据自己的理解写成中文版,并补充了相应的学习资料(书籍是可下载的,中文书籍可能存在版权问题,推荐书籍都是比较经典的英文教材)。希望这次整理能帮助更多的人解答心中的疑惑。
Core Java
- Java The Complete Reference Ninth Edition.pdf
- 核心
- 基础知识
- 数据类型
- 语法
- 控制流
- 面向对象
- 类
- 对象
- 方法
- 接口
- 继承
- 杂项?(
Miscellaneous应该就是不能准确归类的分成一类)- 泛型
- 自动装箱
- 枚举
- 注解
- 并行
- 多线程编程
- 函数式编程
- Lambda 表达式
- Stream API
- 基础知识
- 常用库
- 字符串处理
- java.lang.String
- StringBuffer 和 StringBuilder
- 正则表达式
- java.lang.* (里面包含java语言基础类)
- java.util.*
- Collections框架
- Concurrency框架(包含许多线程安全、测试良好、高性能的并发构建块)
- i18n 或者 g11n(国际化)
- Currency
- Data & Time
- Language Locale
- 其他工具类(
Miscellaneous Utilities, 如base64,DoubleSummaryStatistics等等)
- java.io.* (包含I/O相关类)
- java.nio.*(包含异步I/O相关类)
- java.net.*(网络编程)
- java.rmi.*(RMI编程,RMI,即Java Remote Method Invocation 是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。)
- java.sql.*(jdbc2.0之前的东西)
- javax.sql.*(包括了jdbc3.0的特性)
- 字符串处理
- 核心
算法 & 数据结构
- 算法 *
- 推荐书籍,Robert Sedgewick,Kevin Wayne写的 算法 (英文第四版)
- 数据结构 *
- 推荐书籍同上
- 面向对象编程 *
- Head First设计模式(Head First Design Patterns)
- Effective Java 2nd Edition
- 计算机架构
- 操作系统
- 推荐书籍,Abraham Silberschatz/Peter Baer Galvin/Greg Gagne的《Operating System Concepts 9th》
- 内存管理,Cornell University的CS 412/413 Introduction to Compilers Spring 2008中的Memory Management
- 内存进程管理
- 内存文件系统 *
- 计算机网络
- 推荐书籍,ANDREW S. TANENBAUM/DAVID J. WETHERALL《Computer Network Fifth Edition》
- OSI模型
- TCP/IP协议
- HTTP/HTTPS协议
- HTTP1.X/HTTP2协议
要点
- Linux/Unix
- Shell命令(bash)
- 文本处理
- AWK/SED
- 文件操作
- cd/ls/find/ (管道和I/O重定向)
- 文本处理
- VIM/Emacs(其中一个)
- Shell脚本(bash)
- Shell命令(bash)
- Java常用第三方库
- 日志
- 单元测试
- 代码覆盖率(单元测试覆盖率)
- Apache Commons
- commons-io
- commons-lang
- commons-math
- commons-codec
- commons-collections
- commons-beanutils
- commons-logging
- ...
- Apache HttpComponents(专注于http及其相关协议)
- Google Guava,Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库。
- 软件工程
前端 (Web)
- Web开发 http://www.w3schools.com
- HTML
- HTML4
- xhtml
- HTML5
- css
- css2
- CSS3
- Data Representation
- XML
- JSON
- JSONP
- Javascript
+ ECMAScript 6- Basics
- Ajax
- AngularJS (plus)
- JQuery (plus)
- TypeScript
- Responsive Web Page development (plus)
- HTML
后端开发(服务端)
- JavaEE
- 详细参考资料:http://www.oracle.com/technetwork/java/javaee/tech/index.html
- JSP *
- JSTL
- Java Servlet *
- JavaServer Faces(一个为网络应用程序构建基于组件的用户界面的Java规范) *
- JPA(Java持久层API) *
- JTA(Java事务API)*
- JAX-RS(Java API for RESTful Web Services)*
- Managed Beans / CDI 1.1/ DI /IOC
- Bean Validation
- JAX-WS
- JavaMail
- JACC
- JASPIC
- Java WebSocket
- Java JSON Processing
- Concurrency Utilities for JavaEE
- Batch processing framework
- Java容器
- Java中间件
- Spring
- Spring-Framework (依赖注入&面向切面编程)
- Spring-Web
- Spring-Data
- Spring-security
- Spring-boot (微服务架构)
- Struts(MVC)
- SpringMVC
- Hibernate/JPA (数据持久化),Spring Data JPA(可选)
- MyBatis
- Spring
- JAVA性能调优
- 数据库
- 序列化
- Google protobuf,Google 公司内部的混合语言数据标准,用于 RPC 系统和持续数据存储系统
- Apache Avro,Avro是一种远程过程调用和数据序列化框架,是在Apache的Hadoop项目之内开发的
- Java远程调用(RPC)
- Apache Thrift, Facebook开发的远程服务调用框架
- Motan
- 消息队列
- 消息
- XMPP(Extensible Messaging and Presence Protocol)
- MQTT
- Web Sockets
- 搜索和索引
- Apache Lucene
- Apache Solr
- Elasticsearch,全文搜索引擎,底层是lucene,但是无法直接使用
- CoreNLP,Stanford开发的一套开源的NLP(自然语言处理)系统
- 大数据(可选,有兴趣的可以深究)
- Hadoop
- Yarn (MapReduce)
- HDFS
- HBase
- Hive
- Mahout
- Spark
- Spark-Core
- Spark-SQL
- Spark-machine learning
- Spark Streaming
- Apache Storm
- Hadoop
- 云
- 可扩展架构
- 亲自实践
- Amazon AWS
- EC2
- S3
- DynamoDB
- Amazon AWS
- 基于JVM的编程语言
- Scala
- Groovy
- Clojure
- Kotlin
IDE
- IntelliJ IDEA,极力推荐这个
- NetBeans
- Eclipse
桌面开发
- awt
- Applet
- swing
- Netbeans Platform
- JavaFX
- swt
移动开发
- Android
- JavaME
参考资料
@Zhang Wei Java Software Engineer Skill Map
Java软件工程师技能图谱的更多相关文章
- JAVA软件工程师应该具备的技能有哪些?
前言:有朋友问我:学历和能力哪个重要?我个人觉得能力大于学历,没有能力哪来的学历,学历只是证明能力的一方面.为此在能力方面畅谈java软件工程师必备的能力.作为一名合格的java工程师,不仅需要学历, ...
- 关于Java 软件工程师应该知道或掌握的技术栈
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 J ...
- PHP 工程师技能图谱
# PHP 工程师技能图谱## 基础知识 - HTTP - HEADER - REQUEST - RESPONSE - GET/POST/PUT/DELETE/PATCH/CONNECT/OPTION ...
- Python 工程师技能图谱skill-map
# **Python 工程师技能图谱** ## **入门**- 笨办法学Py- 官方教程- Hitchhiker- coursera * codeskulptor.org ## **进阶/脚本** # ...
- 前端工程师技能图谱skill-map
# 前端工程师技能图谱 ## 浏览器 - IE6/7/8/9/10/11 (Trident) - Firefox (Gecko) - Chrome/Chromium (Blink) - Safari ...
- JAVA软件工程师应该具备哪些基本素质?
必知:软件企业要求基础软件工程师具备六大基本素质,即良好的编码能力.自觉的规范意识和团队精神.认识和运用数据库的能力.较强的英语阅读和写作能力.具有软件工程的概念和求知欲和进取心. 1.良好的编码能力 ...
- 没找到工作的Java软件工程师是屌丝中的屌丝啊
Java软件开发的工作咋就那么难找呢?
- Java软件工程师全栈技能
1.前端基础技能,掌握html.js.css,会用jquery.bootstrap. 2.前端技能升级,会用echart.BMap等等. 3.前端高级技能,熟练使用angularjs等等. 4.服务端 ...
- 三年java软件工程师应有的技技能
摘要:http://blog.csdn.net/jieinasiainfo/article/details/51177729 http://blog.csdn.net/kangqianglong/ar ...
随机推荐
- scanf 函数笔记
函数声明 int scanf(const char *format, ...); 说明 <返回值> scanf ("<格式化字符串>", <参数表&g ...
- 必须掌握的50条Linux基础操作命令
说明: 根据笔者平时使用情况,并结合参考一些其他资料,精心整理出以下必须掌握的50条Linux基础命令. 命令: 1. ssh 登录到远程主机 $ ssh -l jsmith remotehost.e ...
- Docker底层架构之网络实现
前言 Docker 的网络实现其实就是利用了 Linux 上的网络命名空间和虚拟网络设备(特别是 vethpair). 基本原理 首先,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)来 ...
- Linux vi & bash使用笔记
f 1.vi入门级命令 打开或新建 vi filename 有三种模式,刚开始进去的是一般模式,在一般模式下按 I 之后进入编辑模式 ,按Esc进入命令模式 在命令模式下按 :wq 保存退出 多个窗口 ...
- win10下安装Anaconda3
1.官方下载:https://www.anaconda.com/distribution/#download-section (最新版直接下即可) 或者国内镜像下载:https://mirrors. ...
- 原生Ajax发送get、post请求每一步
说明 发送Ajax的请求的核心对象是XMLHttpRequest,因此我们需要了解该对象的相关属性和方法 方法(图一) 属性(图二) 第一步:创建 XMLHttpRequest对象,下面都简写为 xh ...
- 如何快速搭建一个 Node.JS 项目并进入开发?
了解:如何快速搭建一个项目并进入开发? 在此不概述 Node.JS 的历史以及发展过程. 因为之前接触过通过 Java 开发语言,所以明确地知道一个服务器所需的文件,以及一个服务器所需要的操作. 那么 ...
- django登录页面优化
环境准备 1.python3.6 2.django2.0+ 3.bootstrap3 后台代码 #创建login_check视图函数,用来处理登录 def login_action(request): ...
- 死磕mysql(6)
再写数据库作业的时候,发现了一个问题,如果存在主键外键的约束,数据就删不掉 --set foreign_key_checks=0; 关掉外键约束 用好了再打开 --set foreign_key_ch ...
- C# 把带有父子关系的数据转化为------树形结构的数据 ,以及 找出父子级关系的数据中里面的根数据Id
紧接上一篇,将List<Menu>的扁平结构数据, 转换成树形结构的数据 返回给前端 , 废话不多说,开撸! --------------------- 步骤: 1. 建 Menu ...