How to learn from a junior Java programmer grow into a qualified architect or a qualified architect should have a kind of technical knowledge, which is just entering the workplace is not only a junior programmers also work in three five years after the start of the confused old programmers often asked questions. Hopefully this article will be you have seen the most comprehensive and authoritative answer.
A: Programming Fundamentals
Either the C or C ++, Java or whether it is PHP, wanted to be a qualified programmer, basic data structures and algorithms still have the basis. The following articles from idea to realization, as you tease out common data structures and algorithms classic.
Common data structure 1-1
Array, linked list, heap, stack, queue, Hash tables, binary trees, etc.
1-2 ALGORITHM
Analysis of the computational complexity of the algorithm time complexity and space
Algorithm thinking: recursion, recursive, exhaustive, greedy, divide and conquer, dynamic programming, iteration, branching boundaries
1-3 classical algorithm
Classic Sort: insertion sort, bubble sort, quick drain (partition exchange sort), direct selection sort, heap sort, merge sort
Classic look: sequential search, binary search, binary sort tree to find
1-4 advanced data structures
B + / B- number, red-black trees, like FIG.
1-5 advanced algorithms
FIG depth-first search and breadth first search graph, topological sorting, the Dijkstra algorithm (single-source shortest path), Huffman coding, Euclidean algorithm, minimum spanning tree, etc.
Two: Java language foundation
Born more than twenty years of Java language, with its cross-platform, object-oriented, distributed computing suited to the characteristics of widely used Web sites, mobile devices, desktop applications, and has been for many years the forefront of top TOBIE list of programming languages more recently triumphed. What Java outstanding and distinctive place first of all must be clear.
2-1 basic grammar
Overload Java syntax, constants and variables, variable scope, and a method of the operator, the program flow control, all the basic data types and packaging
2-2 Important: collections
Collection and a variety of List, Set, Queue, Map implementation and integration relations and realize the principles
Collections和Arrays
2-3 Other JavaAPI
String and StringBuffer, System and Runtime classes, Date and DateFomat class
java.lang package
java.util package (collections system, regular expressions, zip, and time, random numbers, attributes, resources and the like Timer)
java.math package
java.net package
java.text package (various formatting, etc.)
java.security package
2-4 object-oriented interface for
Three characteristics of the object: encapsulation, inheritance and polymorphism, advantages and disadvantages
Design principles of how to design classes, class
this keyword, final keyword, static keyword
Examples of process objects
The method of rewriting and overloading; parameter transfer process and a method
Constructor
Inner class, an abstract class, an interface
Polymorphism object (conversion between sub-classes and superclasses, reference carton parent subclass), application of abstract classes and interfaces in the polymorphic
2-5 JVM memory model, garbage collection
About 2-6 abnormalities
Throwable / Error / Exception, Checked Exception vs. Unchecked Exception, unusual catch and throw, catch an exception principle, finally use
2-7 Multithreading
The concept of threads and processes
How to create multiple threads in the program, thread-safety issues, communication between threads
Thread synchronization
Analysis of deadlock
Thread Pool
2-8 IO
java.io package, understanding IO system based on the characteristics and design ideas tube model and the common usage scenarios IO classes.
File and related classes, and the OutputStream InputStream byte stream, a character stream Reader and Writer, and the conversion of the corresponding flow and the buffer flow pipe flows, and a character byte, packet stream, and the common use of packaging
IO performance analysis
2-9XML
Familiar with the SAX, DOM and JDOM advantages and disadvantages and be able to use one of them to complete XML parsing and content processing; principles of these types of analytical methods
2-10 advanced features
Reflection, agents, generics, enumerations, Java regular expressions
2-11 Network Programming
The principle of network communication protocols and principles applicable scenario, Socket Programming, WEB server
2-11 JDK1.5, JDK1.6, JDK1.7, JDK1.8 each version than the earlier version which adds new features, which were lifting
Three: database-related
Speaking in front of the data structures, database simple terms is like an electronic filing cabinet, according to certain data structure to organize, store and manage data warehouses.
3-1 rationale
Database design principles and paradigms
Transaction (ACID, working principle, transaction isolation level, locks, transaction propagation mechanism)
3-2 advantages and disadvantages of various databases, using the scene analysis
MySQL / SQLServer / Oracle and a variety of NoSQL (Redis, MongoDB, Memcached, HBase, CouchDB, etc.)
3-2 SQL statements
Database creation, distribution rights, to create a table, CRUD, connections, sub-query
Triggers, stored procedures, transaction controls
3-3 Optimization
Index principle and application, large table query optimization, multi-table join query optimization, query optimization son
3-4 points library sub-table, backup, migration
Import, export, sub-libraries, sub-table, cold standby hot backup, the backup master, hot standby, the longitudinal extension, lateral extension
3-5 JDBC
Using different types of JDBC Connection, Statement, PreparedStatement, CallableStatement, ResultSet etc.
Connection Pool (configured to use, implement the principle)
ORM, DAO
Four: JavaWeb core technologies (including a front end portion)
Html5 / Css / JS primeval / jQuery
Ajax (cross-domain, etc.)
JSP/JavaBean/Servlet/EL/JSTL/TabLib
JSF
JSON
EJB
Serialization and de-serialization
Rules Engine
search engine
Template engine
Cache
Authentication
test
Clusters
Endurance of
Static page generation technology
high performance
Safety
JTA transaction
Others need to know, such as: management JMX, security JCCA / JAAS, integrated JCA, communication JNDI / JMS / JavaMain / JAF, SSI technology
Fifth, the mainstream framework and tools
Struts1/Struts2
Spring(IoC、AOP等),SpringMVC
Persistence: Hibernate / MyBatis
Log: Log4j
Unit testing: JUnit
Message queue: ActiveMQ, RabbitMQ etc.
Load Balancing: Nginx / HaProxy
Web server: Tomcat, JBoss, Jetty, Resin, WebLogic, WebSphere, etc.
Communication: WebService (cxf of soap, restful protocol)
Cache: Redis, Memcached
Workflow: Activity, JBPM
Search engines: lucene, based package lucene solr
Template engine: Velocity, FreeMaker
Big Data: Hadoop (HDFS and MapReduce)
Build tools: Ant / Maven
Six, JavaWeb system design and architecture
Java design patterns
JAVA and UML Modeling
Service-Oriented Architecture: SOA / SCA / ESB / OSGI / EAI, micro-services
Resource-Oriented Architecture: ROA / REST
COA / Saas / Cloud: Cloud Oriented Architecture
Large sites load balancing, system calls Excellence
Seven, More
Troubleshooting capabilities:
According to information should be the cause of abnormal positioning of the relatively rapid and approximate location
Optimization capabilities
Code specification, code management:
It has its own code norms, good code readability
versatile:
Understand a variety of network products and features, to understand a variety of middleware, to know where the pit, well versed in the advantages and disadvantages of various technical solutions, understand and integrate various resources to achieve optimal .... understand various technologies and application scenarios , there is enough work experience to solve all kinds of wonderful integration problems encountered
Technology Management / Technical Director:
Product management, project management, team building, team upgrade