preface

Those of you who follow me know that I updated a lot of interview experiences which were submitted by fans

Today sorted out a Java programmer interview big factory technical standards

Technical standards for BATJava programmers

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, 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

BATJ 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, ioc, AOP, ORM implemented by it, 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.

welfare

For technology that, in addition to myself an architecture for the map, also find friends some video recording, and collected some video, interpretation is a line of Daniel, it includes some Java distributed, micro service architecture, source code analysis, performance optimization, concurrent programming, such as video technology, this paragraph of time the interview from friends is more, There is also a collection of BATJ interview questions, which have been put together

Part of interview materials

Part of video materials

Follow, forward, comment continue to share Java knowledge get the end of the article material