Free architecture map at the end of this articleCopy the code

Ali Baba

Solid computer knowledge, including algorithms and data structures, operating systems, computer networks, computer architecture, databases, etc

Have a solid foundation of Java programming, understand IO, multithreading and other basic framework

Familiar with common commands and shell of Linux system

Proficient in multi-threaded programming, familiar with distributed, cache, message queue and other mechanisms; Familiar with JVM, including memory model, class loading mechanism, and performance optimization

Proficient in Spring MVC, ORM framework (IBatis or Hibernate), template engine (Velocity), relational database design and SQL

Good experience in object-oriented programming, in-depth understanding of OO, AOP ideas, strong analysis and design ability, familiar with common design patterns

Experience in large distributed, high concurrency, high load, high availability system design and stability

Familiar with object-oriented design and development, familiar with various common design patterns, and have experience in specific application scenarios

Familiar with Spring, iBatis and other open source frameworks and common middleware such as message and storage. Have read open source framework source code

Familiar with design and development based on Oracle or Mysql, Linux operating system

Familiar with SOA, experience in platform implementation, experience in building large data volume, high concurrency systems and large websites

Experience in distributed system application architecture design and development, proficient in Java EE, SOA, OSGI and other related technologies

Deep understanding of various open source frameworks such as Spring, Hibernate, etc., development or refactoring of the framework itself is preferred

Experience in system architecture design of large e-commerce websites, O2O industry and C-end products


Baidu article

Familiar with common design patterns, master Java popular open source framework SpringMVC/Spring Boot/Spring Cloud

Familiar with common design patterns, familiar with Java popular open source framework SpringMVC/Spring Boot/Spring Cloud, familiar with at least one ORM framework

Familiar with basic data structures and algorithms, practical experience in system analysis and design

Familiar with Rest, HTTP, Socket, WebService, HTTP protocol, concurrent, multi-threaded programming experience

Have research or project experience in Mysql, Redis, MongoDB and other databases

Experience in large Internet service design and development

Familiar with JVM, have some understanding of JVM, and be able to tune JVM performance with related tools

Familiar with common open source distributed middleware, cache, message queue, etc., familiar with nginx, MySQL, Redis, mongodb and other common open source software

Familiar with MySQL database design and optimization, experience with NoSQL database

Experience in big data storage or high performance computing platform architecture, design and development

Experience in large Internet service design and development


Tencent’s article

Proficient in at least one Web backend development language (PHP, Java,.net, C++), with architectural ability and good code specification

Familiar with Linux/Unix system and development environment

Familiar with TCP/IP protocol, socket programming

Familiar with mysql and SQL language

High performance and large capacity service system design and development experience

Proficient in object-oriented design, proficient in J2EE development, Java Web development

Comprehensive and solid software knowledge structure (operating systems, software engineering, design patterns, data structures, database systems, network security);

Good analytical and problem solving skills, able to undertake tasks independently and have systematic progress control ability

Proficient in MySQL or Mongo DB, familiar with cache technology memcached, Redis

Experience in design, development and tuning of large distributed, high concurrency, high load, high availability systems

B/S structure system analysis and design experience, building scalable, scalable, high availability system experience

Good development habits, familiar with Maven, Jenkins, JUnit, etc

Proficient in MVC/REST architecture, template engine, middleware principle and application

Familiar with MySQL database, understand MySQL index optimization, query optimization, and storage optimization

BAT technical experts, what are their technical capabilities?

Usually are Baidu, Alibaba, Tencent, that BAT technical experts are equivalent to Tencent T4 technical experts, Ali P8 senior technical expert level, is a first-line Team leader or second-level domain architect, need to be very familiar with the business of a field and can radiate influence to other cooperation teams.

Generally speaking, some problems such as business architecture, application architecture, product function decision-making, technology selection, and division of collaboration should be terminated at the level of technical experts. Technical experts are the leader of the front line operations, providing decisions downward and effective information upward.

BAT is a major domestic technology manufacturer, so we can refer to BAT standards, and what are the requirements for technical experts? The following four summaries can be used as a reference.

1. Code ability

Code ability is the basic skills. Java language itself, including all aspects of the language, including the understanding of concurrency, the understanding of memory use, the understanding of Java operation and maintenance, etc. Besides the language itself, whether common frameworks in the community can be clearly understood, including Spring, including its implementation of IOC, AOP, ORM, Have a clear understanding of the web mechanism, have rich experience, etc.

2. Understanding of common middleware

After all, are various kinds of middleware common in a large system? Cache middleware and message middleware, such as Redis, memcache and RMQ, need to understand the application scenarios of common middleware, use posture (such as redis common commands), and even some of its operation and maintenance. Once there is a problem, in addition to specialized operation and maintenance personnel, You also need to be involved in troubleshooting problems, because sometimes these middleware problems are caused by improper use of posture.

3. Ability of architecture and business implementation

Mentioned the language itself, all sorts of middleware, if you have a good business abstract thinking ability and the framework, you can put a good design and implementation of the internal products, this difficult, must have had to take over an existing project experience, sometimes really couldn’t bring out before the designer criticism, as a designer, Can you make it so that the next person who takes it on will say, this system is well designed, stable, scalable and easy to understand.

4. Communication and collaboration

Is impossible, after all, one department internal product done by one person, so I need communication and collaboration, the design scheme, and 2-3 friend together, including the identity of the same backend staff, front end staff, product characters, such as the level of people may participate in with 2-3 people, such as fresh graduate, so your own mastery of knowledge, to share the spirit, Leadership is a good plus.

5, the welfare

In terms of technology, I have not only organized an architecture atlas, which includes some technical videos of Java distributed, microservice architecture, source code analysis, performance optimization, concurrent programming, etc. Many friends have been affected by the epidemic these days, but also a set of BATJ interview questions, which have been organized



Add wechat BGM7756 for free