Java advanced path-from junior programmers to architects, from small to expert

Source: Internet
Author: User
Tags connection pooling memcached

How to learn to grow from a Java Junior programmer to a qualified architect, or what kind of technical knowledge a qualified architect should have, is not only a novice programmer who has just entered the workplace, but also a problem often asked by old programmers who have been confused after 35 years of work. I hope this article will be the most comprehensive and authoritative answer you have ever seen.

One: Programming Basics

Whether it's C or C + +, whether Java or PHP, want to be a qualified programmer, basic data structure and algorithm Foundation is still to have. The following articles from ideas to implementation, for you to comb out the commonly used data structures and classical algorithms.

1-1 Common data structures

Array, linked list, heap, stack, queue, hash table, binary tree, etc.

1-2 Algorithmic Thinking

Analysis and calculation of algorithm time complexity and space complexity

Algorithmic thinking: Recursive, recursive, exhaustive, greedy, divided, dynamic programming, iterative, branching boundaries

1-3 Classical Algorithms

Classic sort: Insert sort, bubble sort, quick row (split swap sort), direct select sort, heap sort, merge sort

Classic Find: Order lookup, binary lookup, binary sort tree Lookup

1-4 Advanced Data Structures

b+/b-number, red-black tree, figure, etc.

1-5 Advanced Algorithms

Depth-first search of graphs, breadth-first search of graphs, topological ordering, Dijkstra algorithm (single source shortest path), Huffman coding, Euclidean method, minimum spanning tree, etc.

Second: the Java Language Foundation

The more than 20-year-old Java language, with its cross-platform, object-oriented, distributed computing features, is widely used in Web sites, mobile devices, desktop applications, and has been in the forefront of Tobie programming languages for many years, and has recently topped the throne. It's important to know what's good and what's different in Java first.

2-1 Basic Syntax

Java syntax formats, constants and variables, scope of variables, overloads of methods and methods, operators, program flow control, various basic data types and wrapper classes

2-2 Important: Collection classes

Collection and the implementation of various list, Set, Queue, map, and integration relationships, the principle of implementation

Collections and Arrays

2-3 other Javaapi

String and Stringbuffer,system and runtime classes, date and Datefomat classes

Java.lang Bag

Java.util Package (Collection class system, regular expressions, zip, and time, random number, attributes, resources, timer, etc.)

Java.math Bag

Java. NET Package

Java.text package (various formatting classes, etc.)

Java.security Bag

2-4 object-oriented, interface-oriented

Three main features of an object: encapsulation, inheritance, and polymorphism, pros and cons

How to design the class, the design principle of the class

This keyword, final keyword, static keyword

Instantiation process of an object

Method overrides and overloads; method and method parameter passing procedure

constructor function

Inner class, abstract class, interface

Object polymorphism (conversions between subclasses and parent classes, references to parent paper box classes), abstract classes and interfaces in polymorphic applications

2-5 JVM memory model, garbage collection

2-6 about exceptions

Throwable/error/exception,checked Exception vs. unchecked Exception, exception catching and throwing, exception catching principles, finally using

2-7 Multi-Threading

Concepts of threads and processes

How to create multi-threading, thread-safe issues, communication between threads in a program

Synchronization of Threads

Analysis of the deadlock problem

Thread pool

2-8 IO

java.io package, understanding the IO system based on the pipeline model design ideas and commonly used IO class characteristics and applications.

File and related classes, byte stream InputStream and OutputStream, character stream reader and writer, and corresponding buffer stream and pipeline flow, bytes and characters of the conversion stream, wrapper flow, and common wrapper class use

Analyzing IO Performance

2-9xml

Familiarity with the advantages and disadvantages of sax, Dom, and Jdom, and the ability to use one of the parsing and content processing of XML, the principles of these analytic methods

2-10 some advanced features

Reflection, Proxy, generics, enumeration, Java regular expressions

2-11 Network Programming

Principles and application Scenarios of network communication protocols, socket programming, how Web servers work

2-11 JDK1.5, JDK1.6, JDK1.7, JDK1.8 What are the new features that each version adds to the previous version, and what improvements are made

Three: Database-related

In front of the data structure, the database is simply like an electronic filing cabinet, is to organize, store and manage data warehouse according to a certain data structure.

3-1 Theoretical basis

Database design principles and paradigms

Transactions (ACID, working principle, isolation level of transactions, locks, propagation mechanism of transactions)

3-2 various database advantages and disadvantages, usage scenario analysis

Mysql/sqlserver/oracle and various NoSQL (Redis, MongoDB, Memcached, Hbase, COUCHDB, etc.)

3-2 SQL statements

Database creation, permission assignment, creation of tables, additions and deletions, connection, sub-query

Triggers, stored procedures, transaction control

3-3 optimization

Index principle and application, large table query optimization, multi-table Connection query optimization, sub-query optimization, etc.

3-4 Library, sub-table, Backup, migration

Import, export, sub-Library, table, cold standby hot standby, master-slave backup, dual standby, vertical expansion, scale-out

3-5 JDBC

Use of different classes such as JDBC Connection, Statement, PreparedStatement, callablestatement, resultset, etc.

Connection pooling (configuration usage, implementation principle)

Orm,dao

IV: Javaweb core technology (including partial front end)

Html5/css/js native/jquery

Ajax (cross-domain, etc.)

Jsp/javabean/servlet/el/jstl/tablib

Jsf

Json

Ejb

Serialization and deserialization

Rule Engine

Search engine

Template engine

Cache

Identity verification

Test

Cluster

Persistence of

Generate static page technology

Performance

Safety

Transaction JTA

Other needs to know, such as: Managing JMX, Security Jcca/jaas, integrated JCA, Communications JNDI/JMS/JAVAMAIN/JAF, SSI technology

V. Mainstream framework and tools

Struts1/struts2

Spring (IoC, AOP, etc.), SPRINGMVC

Persistence: Hibernate/mybatis

LOG: log4j

Unit Test: JUnit

Message Queuing: ActiveMQ, RABBITMQ, etc.

Load balancing: Nginx/haproxy

Web servers: Tomcat, JBoss, Jetty, Resin, WebLogic, WebSphere, etc.

Communication: WebService (SOAP, restful protocol for CXF)

Cache: Redis, Memcached

Workflow: Activity, JBPM

Search engine: Lucene, SOLR based in Lucene package

Template engine: Velocity, Freemaker

Big Data: Hadoop (HDFs and MapReduce)

Build Tool: Ant/maven

Vi. javaweb system Design and architecture

Java Design Patterns

Java and UML modeling

Service Oriented Architecture: SOA/SCA/ESB/OSGI/EAI, MicroServices

Resource-Oriented Architecture: Roa/rest

Cloud-Oriented Architecture: coa/saas/cloud Computing

Large Web site load balancing, system tuning Excellence

Seven, more

Troubleshooting Capacity:

Should be able to quickly locate the cause and approximate location of the problem based on the exception information

Optimization capabilities

Code specification, code management:

Have their own code specification system, code readability good

Broad knowledge Surface:

Understand a variety of network products and features, understand a variety of middleware, can know where the pit, deep understanding of the advantages and disadvantages of various technical solutions, understand the integration of various resources and achieve the best .... Understand all kinds of technology and application scenarios, have enough work experience to solve all kinds of wonderful problems in integration

Technical Management/Technical Director:

Product management, project management, team building, team promotion

Cto:

Development strategy

Java Learning Exchange QQ Group: 523047986 prohibit small talk, non-happy do not enter!

Java advanced path-from junior programmers to architects, from small to expert

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.