Original link: Java Software engineer Skills Atlas
Recently considering "what skills can you count as a qualified Java software engineer?" "This question. It happened that a great open source project-the programmer's skill map-was found on GitHub. The Java software Engineer Skill map written by @Zhang Wei really answers the questions in my mind. Good things should be to more people, I will English version according to their own understanding written in Chinese version, and supplemented the corresponding learning materials (books are downloadable, Chinese books may exist copyright issues, recommended books are more classical English textbooks). I hope this arrangement can help more people to answer the doubts in their hearts.
Core Java
- Java the complete Reference ninth edition.pdf
- Core
- Basics
- Data type
- syntax
- control flow
- Object-oriented
class
- Object
- method
- interface
- inherit
- Miscellaneous? (
miscellaneous
should be a category that cannot be accurately categorized)
- generics
- Auto-boxing
- Enumeration
- annotations
/ul>
- Parallel
- multithreaded programming
- Functional Programming
- LAMBDA expression
- Stream API
- Common libraries
- String processing
- Java.lang.String
- StringBuffer and StringBuilder
- Regular expressions
- Java.lang.* (contains the Java language base class)
- Java.util.*
- Collections Frame
- Concurrency framework (contains many thread-safe, well-tested, high-performance concurrent building blocks)
- i18n or g11n (internationalization)
- Currency
- Data & Time
- Language Locale
- Other tool classes (
Miscellaneous Utilities
such as base64,doublesummarystatistics, etc.)
- Java.io.* (contains I/O related classes)
- Java.nio.* (contains asynchronous I/O related classes)
- JAVA.NET.* (Network programming)
- Java.rmi.* (RMI programming, RMI, or Java remote Method invocation is a Java programming language, an application programming interface for implementing remote procedure calls. )
- Java.sql.* (something before jdbc2.0)
- Javax.sql.* (includes features of the jdbc3.0)
Algorithms & Data Structures
- Algorithm
- Recommended books, Robert Sedgewick,kevin Wayne wrote the algorithm (fourth edition)
- Data structure
- Object-Oriented Programming *
- Head First design mode (head first Patterns)
- Effective Java 2nd Edition
- Computer architecture
- Recommended books, Computer architecture-a quantitative approach (fifth Edition)
- Memory hierarchy, reference computer systems:a Programmer ' s perspective, 3/e cs:app3e memory Chapter
- Parallel
- Multi-processor Systems
- Operating system
- Recommended books, Abraham silberschatz/peter Baer galvin/greg gagne "Operating System Concepts 9th"
- Memory management, Cornell University CS 412/413 Introduction to Compilers Spring 2008 Memory Management
- Memory Process Management
- Memory File System *
- Network
- Recommended books by ANDREW S. Tanenbaum/david J. Wetherall "Computer Network fifth Edition"
- OSI model
- TCP/IP protocol
- HTTP/HTTPS protocol
- HTTP1. X/HTTP2 protocol
Points
- Linux/unix
- Shell command (bash)
- Text Processing
- File operations
- Cd/ls/find/(Pipeline and I/O redirection)
- Vim/emacs (one of them)
- Shell script (bash)
- Java Common third-party libraries
- Log
- Unit Test
- Code Coverage (unit test coverage)
- Jacoco
- Clover
- EMMA
- Sonarqube
- Apache Commons
- Commons-io
- Commons-lang
- Commons-math
- Commons-codec
- Commons-collections
- Commons-beanutils
- Commons-logging
- ...
- Apache httpcomponents (focus on HTTP and its associated protocols)
- The Google Guava,guava project contains several core libraries that are widely relied on by Google's Java projects.
- Software
- Project organization
- Maven
- Gradle
- Ant + Ivy (Optional)
- Version Management
- UML, reference book, applying UML and Patterns
Front End (WEB)
- Web Development http://www.w3schools.com
- Html
- Css
- Data representation
- Javascript
+ ECMAScript 6
- Basics
- Ajax
- AngularJS (plus)
- JQuery (plus)
- TypeScript
- Responsive Web Page development (plus)
Backend development (server side)
- Java EE
- Detailed reference: http://www.oracle.com/technetwork/java/javaee/tech/index.html
- JSP *
- Jstl
- Java Servlet *
- JavaServer Faces (a Java Specification for building component-based user interfaces for Web applications) *
- JPA (Java Persistence layer API) *
- JTA (Java Transaction 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 Java EE
- Batch Processing Framework
- Java container
- Tomcat/tomee (Tomee=tomcat+java EE)
- GlassFish
- Jetty
- Java Middleware
- Spring
- Spring-framework (Dependency Injection & aspect-oriented programming)
- Spring-web
- Spring-data
- Spring-security
- Spring-boot (Micro Service architecture)
- Struts (MVC)
- Springmvc
- HIBERNATE/JPA (data persistence), Spring data JPA (optional)
- MyBatis
- Java Performance Tuning
- Java Performance The Definitive guide
- Database
- Mysql
- Sql server
- Oracle
- Nosql
- Memcache, distributed Memory Object cache system
- Redis, based on
K-V
- MongoDB, an open source database system based on distributed file storage
- neo4j, Graphics database
- Serialization of
- Google Protobuf,google's internal mixed-language data standard for RPC systems and continuous data storage systems
- Apache Avro,avro is a remote procedure call and data serialization framework that was developed within the Apache Hadoop project.
- Java Remote Call (RPC)
- Apache Thrift, a remote service invocation framework developed by Facebook
- Motan
- Message Queuing
- Amqp-rabbitmq
- Apache ActiveMQ
- Apache Kafka
- News
- XMPP (extensible Messaging and Presence Protocol)
- Mqtt
- Web Sockets
- Search and Index
- Apache Lucene
- Apache SOLR
- Elasticsearch, full-text search engine, the underlying is lucene, but cannot be used directly
- A set of open source NLP (Natural language Processing) systems developed by Corenlp,stanford
- Big Data (optional, interested can delve into)
- Hadoop
- Yarn (MapReduce)
- Hdfs
- HBase
- Hive
- Mahout
- Spark
- Spark-core
- Spark-sql
- Spark-machine Learning
- Spark Streaming
- Apache Storm
- Cloud
- Extensible architecture
- Virtual machines
- OpenStack, a free software and open source project that was developed and initiated by NASA and Rackspace in collaboration with Apache licensing
- Container
- Practice in person
- JVM-based programming language
- Scala
- Groovy
- Clojure
- Kotlin
Ide
- IntelliJ idea, highly recommend this
- NetBeans
- Eclipse
Desktop development
- Awt
- Applet
- Swing
- Netbeans Platform
- Javafx
- Swt
Mobile development
Resources
@Zhang Wei Java software Engineer Skill Map
Java Software engineer Skills Atlas