# Java Software Engineer Skill Map
## Basic
### Core Java
- Java The Complete Reference Ninth Edition.pdf
* Core
+ Basic Language Characteristics
- Data Types
- Syntax
- Control Flow
+ Object-Oriented
- Class
- Object
- Method
- Interface
- Inheritance
+ Miscellaneous
- Generics
- Autoboxing
- Enumerations
- Annotations
+ Parallelism
- Multithreaded Programming
+ Functional Programming
- Lambda Expression
- Stream API
* Commonly-used Libraries
+ String Handling
- java.lang.String
- StringBuffer and StringBuilder
- Regular Expression
+ java.lang.*
+ java.util.*
- Collections Framework
- Concurrency Framework
- i18n or g11n
* Currency
* Data & Time
* Language Locale
- Miscellaneous Utilities
+ java.io.*
+ java.nio.*
+ java.net.*
+ java.rmi.*
+ java.sql.*
+ javax.sql.*

### Algorithms & Data Structure
- Algorithms *
* https://www.coursera.org/learn/java-data-structures-algorithms-2
* https://www.coursera.org/learn/introduction-to-algorithms
- Data Structures *
* https://en.wikipedia.org/wiki/List_of_data_structures
* http://www.tutorialspoint.com/data_structures_algorithms/
- Object Oriented Programming *
* head_first_design_patterns.pdf
* Effective Java 2nd Edition.pdf
- Computer Architecture
* Memory Hierarchy
* Parallelism
* Multiprocessor Systems
- Operating System
* Memory Management
* MemProcess Management
* MemFile System *
- Computer Network
* OSI Model
* TCP/IP
* HTTP / HTTPS
* HTTP 1.X / HTTP 2

### Essentials
- Linux/Unix
* Shell commands (bash) (http://linuxcommand.org/index.php)
+ Text Processing
- AWK / SED
+ File Operation
- cd/ls/find/ (Pipe and I/O Redirection)
* VIM / Emacs ( Either of them)
* Shell Script(bash)
- Java Commonly-used 3rd-party Libraries
* Logging
+ log4j
+ slf4j
+ logback
* Unit Test
+ Junit
+ Mockito
+ TestNG
* Code Coverage
+ jacoco
+ Clover
+ EMMA
* Apache Commons
+ commons-io
+ commons-lang
+ commons-math
+ commons-codec
+ commons-collections
+ commons-beanutils
+ commons-logging
+ ...
* Apache HttpComponents
* Google Guava
- Software Engineering
* Project Organization
+ Maven
+ Gradle
+ Ant + Ivy (Optional)
* Versioning
+ git
+ svn
* UML

### Front-end (Web)
- Web Development (http://www.w3schools.com)
* HTML
+ HTML4
+ xhtml
+ HTML5
* css
+ css2
+ CSS3
* Data Representation
+ XML
+ JSON
+ JSONP
* Javascript
+ ECMAScript 6
+ Basics (https://developer.mozilla.org/en-US/docs/Web/JavaScript)
+ Ajax
+ AngularJS (plus)
+ JQuery (plus)
* TypeScript
* Responsive Web Page development (plus)

### Back-end Development(Server side)
- JavaEE
* JSP *
* JSTL
* Java Servlet *
* JavaServer Faces *
* JPA *
* JTA *
* JAX-RS *
* 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 Containers
* Tomcat / TomEE
* GlassFish
* Jetty
- Java mid-ware
* Spring
+ Spring-Framework (Dependency Injection & AOP)
+ Spring-Web
+ Spring-Data
+ Spring-security
+ Spring-boot (Micro-service Architecture)
* Struts(MVC)
* SpringMVC
* Hibernate/JPA (Data Persistency)
* MyBatis
- Java Performance Tuning
* java performance the definitive guide.pdf
- Database
* MySQL
* SqlServer
* Oracle
* Nosql
+ Memcache
+ Redis
+ MongoDB
+ Neo4j
- Serialization
* Google protobuf
* Apache Avro
- Java RPC
* Apache Thrift
* Motan
- MessageQueue
* AMQP - RabbitMQ
* Apache ActiveMQ
* Apache Kafka
- Messaging
* XMPP
- Searching/Indexing
* Apache Lucene
* Apache Solr
* Elasticsearch
* CoreNLP
- Big Data(Optional)
* Hadoop
+ Yarn (MapReduce)
+ HDFS
+ HBase
+ Hive
+ Mahout
* Spark
+ Spark-Core
+ Spark-SQL
+ Spark-machine learning
+ Spark Streaming
* Apache Storm
- Cloud
* Scalable Architecture
+ VM
- OpenStack
+ Container
- Docker
* Hands-on
+ Amazon AWS
- EC2
- S3
- DynamoDB
- JVM-based Programming Language
* Scala
* Groovy
* Clojure
* Kotlin
* http://www.oracle.com/technetwork/articles/java/architect-languages-2266279.html

### IDE
- IntelliJ IDEA
- NetBeans
- Eclipse

### Typical Java Applications
- Online Chatting (Web/Desktop System)
- Library Management System (Web System)
- Ticket Booking System(RESTful Web Service)
- HTTP File Downloader (Console / Desktop)
- P2P File Sharing (Console / Desktop)
- Blogging System (Web / REST)
- RDBMS UI Toolkit (Web /Desktop)

### Desktop Development
- awt
- Applet
- swing
- Netbeans Platform
- JavaFX
- swt

### Mobile Development
- Android
- JavaME

Java Software Engineer Skill Map的更多相关文章

  1. 2018阿里-研发工程师JAVA Software Engineer, Java

    岗位描述Job Description如果你想了解JAVA开发在阿里巴巴互联网生态系统中无与伦比的应用广度与深度: 如果你对基础技术感兴趣,你可以参与基础软件的设计.开发和维护,如分布式文件系统.缓存 ...

  2. software engineer's resume(帮助你写程序员简历)

    关键词 参考 简历模板 参考 下面开始是正文(关键词原文) 介绍 本项目由海外兔 (https://osjobs.net) 维护,海外兔团队由一线互联网面试官组成,提供海内外公司一对一入职套餐以及算法 ...

  3. Software Engineer

    1, 软件工程师 软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.软件工程师是从事软件开发相关工作的人员的统称. 它是一个广 ...

  4. 微软职位内部推荐-Software Engineer II-Web app

    微软近期Open的职位: The Office App Services team is working on the powerful Office Web Apps including Word ...

  5. 微软职位内部推荐-Senior Software Engineer -Web

    微软近期Open的职位: Location: Beijing, China The Office App Services team is working on the powerful Office ...

  6. Software Engineer Title Ladder

    http://changelog.ca/log/2013/08/09/software_engineer_title_ladder Within the software engineering pr ...

  7. Sr Software Engineer - Big Data Team

    Sr Software Engineer - Big Data Team   About UberWe’re changing the way people think about transport ...

  8. Security Software Engineer

    Security Software Engineer Are you excited to be part of the VR revolution and work on cutting edge ...

  9. 微软职位内部推荐-Software Engineer II-Senior Software Engineer for Satori

    微软近期Open的职位: Title: Software Engineer II-Senior Software Engineer for Satori, STC Location: Beijing ...

随机推荐

  1. Windows编写driver

    1. 编译 Pspeek.cpp #include <ntddk.h> #define DANIEL_LIST_PROCESS 0x8001 PDRIVER_OBJECT daniel_D ...

  2. Webshell免杀

    过狗过D盾 <?php class me{ public $a = ''; function __destruct(){ assert("$this->a"); }}$ ...

  3. Java常用的几个Json库,性能强势对比!

    作者:飞污熊 https://xncoding.com/2018/01/09/java/jsons.html 本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能.每次都在网上看到别人说什 ...

  4. 在Python中处理大型文件的最快方法

    我们需要处理的各种目录中有大约500GB的图像.每个图像的大小约为4MB,我们有一个python脚本,一次处理一个图像(它读取元数据并将其存储在数据库中).每个目录可能需要1-4小时才能处理,具体取决 ...

  5. 解决“每次打开office2010的word都会出现配置进度框”问题

       在win7中安装完office2010后.打开 *.doc文件时,总会弹出"配置进度框"问题,解决例如以下:  1)点击"開始"-->"执 ...

  6. bzoi1152 [CTSC2006]歌唱王国Singleland

    [CTSC2006]歌唱王国Singleland Time Limit: 30 Sec Memory Limit: 162 MB Description 在歌唱王国,所有人的名字都是一个非空的仅包含整 ...

  7. android Manifest.xml 文件详解

  8. 【记录】iconfont 批量把图标加入购物车的方法

    iconfont  是阿里旗下很好用的图标管理网站(https://www.iconfont.cn/),里面有百万个小图标,可以随意下载切换颜色,是很多前端人员的选择. 但是网站没有将图标批量加入购物 ...

  9. java 方法的定义与调用

    /* 定义一个方法的格式: public static void 方法名称(){ 方法体 } 方法名称的命名规则和变量一样,使用小驼峰 方法体:也就是大括号里面的可以包含任何语句 注意事项: 1.方法 ...

  10. Python自动补全缩写意义

    自动补全的变量的类别p:parameter 参数 m:method 方法(类实例方法)调用方式classA aa.method()或者classA().method() c:class 类 v:var ...