Recently, I have been working on a project, which is a large multi-node deployment project. Several versions have been made, and many technologies and frameworks have been used.
Management tools and agile practices are also used. I am not here to talk about the project, because I recently read some recruitment information, combined with some knowledge used in the project and
Management measures, as a programmer, need to evaluate their current ability to keep up with the pace of The Times, so, summarized below as an advanced Java developer or architect, exactly what skills need to master, when you master these skills you are BATJ or on the way to BATJ.
1. Have certain mastery and application experience in Java basic technology system (including JVM, class loading mechanism, multi-threaded concurrency, IO and network).
JVM memory allocation, JVM garbage collection;
Class loading mechanism;
Performance optimization:
Reflection mechanism;
Multithreading;
Network programming;
Common data structures and related algorithms:
2, have a clear understanding of object-oriented software development ideas, familiar with common design patterns;
Design pattern: singleton pattern; Factory model; Proxy mode; Template method pattern; Responsibility chain model, etc
3. Familiar with the current popular open source framework (Spring/SpringMVC/IBATIS), and have a certain understanding of its core ideas and implementation principles;
Open source framework: Spring;
Open source framework: Hibernate;
4. Familiar with the development and design of Oracle, MySQL and other databases, as well as the design and development of REDIS or Memcached system;
Relational database: Oracle
Relational database: PostgreSQL
Cache system: Redis (Nosql)
Cache system: Memcached
5. Familiar with underlying middleware, distributed technology (including cache, messaging system, hot deployment, JMX, etc.)
Underlying middleware:
Application server: Jetty(Tomcat)
Message middleware: ActiveMQ, RabbitMQ
Transaction processing middleware:
Data access middleware: ODBC
Workflow Middleware :JBPM
Distributed technology:
Cache system:
Message system:
Restful:
Hot deployment:
JMX:
At least one Java application server, such as Tomcat
Jetty:
7. Proficient in shell programming, familiar with awK, sed, grep, strace, TCUDump, GDB and other common commands;
8. Experience in design and development of large distributed, high concurrency, high load (large amount of data) and high availability systems
Distributed :(multi-node deployment)
High concurrency:
High load (large amount of data) :
High stability:
High availability:
9. Have an understanding of configuration management and agile development models
Configuration management tools:
SVN:
Making:
10. Business Capability:
System upgrade, two-node cluster, deployment, disaster recovery, backup and recovery, DFX
Bonus Points technology:
Script language: Python
Remote call:
Proficient in Internet basic protocols (such as TCP/IP, HTTP, etc.) and related applications
Security awareness and understanding of common security problem solutions
Familiar with common solutions and their principles: single sign-on, distributed caching, SOA, full text retrieval, message middleware, load balancing, connection pooling,
Nosql, stream computing, etc.
Open source framework source topic
Read the source code
Programmers work with code every day. After years of basic education and professional training, most programmers can “write” code, or at least copy and modify code. However, can read the code is not in the majority, can read the code and really understand the source code of some big projects, very few. This also leads to a lot of errors in the way source code is viewed.
Introduce the classical design ideas used in the source code in detail, see how Daniu is to write code, enhance the technical aesthetic, improve the core competitiveness.
To help you find the analysis of source code entry point, in the thought of a huge sublimation. Know what it is and why. Make your knowledge your own
High Performance Architecture Topics
How does the system architecture meet the challenge of high concurrent traffic in the Internet era? As a technology developer, how to deal with the skill crisis brought by technological change. Based on the evolution of traditional architecture to distributed architecture brought about by the technical changes.
In the depth and breadth of technology has been leaps and bounds. To become the T-type talents needed by the Internet industry
Topics on Microservices Architecture
SOA has become a standard solution for Internet companies to cope with complex business requirements changes and user expansion, and the framework related to microservices was born for this purpose.
Performance optimization
Simple performance optimization
Understanding performance optimization
Performance benchmark
What exactly is performance tuning
Measure the dimensions
Double eleven e-commerce project actual combat
Large-scale e-commerce distributed system application practice, using cloud server to build a real development and deployment environment, thousands of people participated in online development.
From shallow to deep, it takes you from zero to project launch, operation and maintenance, so that you can experience the real enterprise project development process and master Daniu’s coding thinking, experience and skills.