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 [ √ ]
- Basic Language Characteristics
- 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.*
- String Handling
- Core
Algorithms & Data Structure
- Algorithms *
- Data Structures *
- 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)
- Text Processing
- VIM / Emacs ( Either of them)
- Shell Script(bash)
- Shell commands (bash) (http://linuxcommand.org/index.php)
- 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
- Logging
- Software Engineering
- Project Organization
- Maven
- Gradle
- Ant + Ivy (Optional)
- Versioning
- git
- svn
- UML
- Project Organization
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)
- HTML
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
- Spring
- 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
- Hadoop
- Cloud
- Scalable Architecture
- VM
- OpenStack
- Container
- Docker
- VM
- Hands-on
- Amazon AWS
- EC2
- S3
- DynamoDB
- Amazon AWS
- Scalable Architecture
- 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