Java软件工程师技能图谱

2018-02-28 07:46:34来源:cnblogs.com作者:小ben马人点击

分享
第七城市

原文链接: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
  • 计算机架构
  • 推荐书籍,Computer Architecture - A Quantitative Approach (Fifth Edition)
    • 内存层次结构,参考Computer Systems: A Programmer's Perspective, 3/E (CS:APP3e)中的《Chapter 6: The Memory Hierarchy》
    • 并行
    • 多处理器系统
  • 操作系统
  • 推荐书籍,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)
  • Java常用第三方库
    • 日志
      • log4j
      • slf4j
      • logback
    • 单元测试
      • Junit
      • Mockito
      • TestNG
    • 代码覆盖率(单元测试覆盖率)
      • jacoco
      • Clover
      • EMMA
      • sonarqube
    • Apache Commons
      • commons-io
      • commons-lang
      • commons-math
      • commons-codec
      • commons-collections
      • commons-beanutils
      • commons-logging
      • ...
    • Apache HttpComponents(专注于http及其相关协议)
    • Google Guava,Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库。
  • 软件工程
    • 项目组织
      • Maven
      • Gradle
      • Ant + Ivy (Optional)
    • 版本管理
      • git,常用命令
      • svn
    • UML,参考书籍,Applying UML and Patterns

前端 (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)

后端开发(服务端)

  • 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容器
    • Tomcat / TomEE(TomEE=Tomcat+java EE)
    • GlassFish
    • Jetty
  • Java中间件
    • Spring
      • Spring-Framework (依赖注入&面向切面编程)
      • Spring-Web
      • Spring-Data
      • Spring-security
      • Spring-boot (微服务架构)
    • Struts(MVC)
    • SpringMVC
    • Hibernate/JPA (数据持久化),Spring Data JPA(可选)
    • MyBatis
  • JAVA性能调优
    • Java Performance The Definitive Guide
  • 数据库
    • MySQL
    • SqlServer
    • Oracle
    • Nosql
      • Memcache,分布式内存对象缓存系统
      • Redis,基于K-V
      • MongoDB,基于分布式文件存储的开源数据库系统
      • Neo4j,图形数据库
  • 序列化
    • Google protobuf,Google 公司内部的混合语言数据标准,用于 RPC 系统和持续数据存储系统
    • Apache Avro,Avro是一种远程过程调用和数据序列化框架,是在Apache的Hadoop项目之内开发的
  • Java远程调用(RPC)
    • Apache Thrift, Facebook开发的远程服务调用框架
    • Motan
  • 消息队列
    • AMQP - RabbitMQ
    • Apache ActiveMQ
    • Apache Kafka
  • 消息
    • 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
    • 可扩展架构
      • 虚拟机
        • OpenStack,一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目
      • 容器
        • Docker
    • 亲自实践
      • Amazon AWS
        • EC2
        • S3
        • DynamoDB
  • 基于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

第七城市

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台