Sheet 1
Java
  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
      Process Management
      File System *
    Computer Network
      OSI Model
      TCP/IP
      HTTP / HTTPS
  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
      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
      Javascript
        Basics (https://developer.mozilla.org/en-US/docs/Web/JavaScript)
        Ajax
        AngularJS (plus)
        JQuery (plus)
      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
      Bean Validation
      JAX-WS
      JavaMail
      JACC
      JASPIC
      Java WebSocket
      Java JSON Processing
      Concurrency Utilities for JavaEE
      Batch processing framework
    Java Containers
      Tomcat / TomEE
      GlassFish
    Java mid-ware
      Spring
        Spring-Framework (Dependency Injection & AOP)
        Spring-Web
        Spring-Data
        Spring-security
        Spring-boot (Micro-service Architecture)
      Struts(MVC)
      Hibernate/JPA (Data Persistency)
    Java Performance Tuning
      java performance the definitive guide.pdf
    Database
      MySQL
      Oracle
      Nosql
        Memcache
        Redis
        MongoDB
        Neo4j
    Serialization
      Google protobuf
      Apache Avro
    Java RPC
      Apache Thrift
      Motan
    MessageQueue
      AMQP - RabbitMQ
      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