I have interviewed nearly ten companies and got several offers. Now the interview comes to an end and I will summarize my interview experience.
I am now the main direction is Java server development, the problems encountered with you to share, also talk about how technical personnel have the direction to improve themselves, to achieve a targeted target.
baidu
Baidu met me twice, namely, Baidu Nuomi and Financial Division. Currently, only the two departments in Baidu have positions that match me. The interview will be held in baidu’s new headquarters in Xierqi, which is still under construction and far from the subway, so we need to take a taxi there.
The interviewer brought his own computer and recorded the whole interview process. First of all, he asked about the architecture and work content of a recent work project in detail. The interview mainly focused on components and middleware technology used in the work to expand, and inspected the degree of mastery.
MySQL InnoDB storage file structure
How is the index tree maintained?
Possible problem with database auto-increment primary key
How to solve Redis concurrency competition problem
Do you understand CAS operations for Redis transactions
Analysis of thread pool implementation principle and thread scheduling process
Several ways of dynamic proxy
Spring AOP and IOC implementation
Why can CGlib be used to implement proxies for interfaces? RMI versus the proxy pattern
The underlying implementation principles and mechanisms of Dubbo
Describes the detailed process of a service from publication to consumption
In the algorithm, we investigate a simple array de-duplication problem, which is implemented by discarding the element at the end of the array.
Baidu financial interview arrangement on Saturday, a good interviewer, serious attitude, some issues were not thinking will give you a hint, good communication and pay 2 face was told that the lack of financial background, but less than two years working as a newcomer, I think is Pass the main reason should be less work experience, education background nor too bright eye.
Interview Questions:
How do distributed systems do service governance
The concept of idempotency of interfaces
How to resolve a version conflict in Maven
JVM garbage collection mechanism, when to trigger MinorGC, etc
New generation and old generation memory reclamation strategies
Eden and Survivor ratio allocation, etc
The difference between Synchronized and Lock
Two interviews, I feel the process of Baidu is more strict, the interviewer is quite good, simple and reliable
alibaba
Ali arranged the interview very quickly, this time only two interviews, the two rounds of interviews were telephone. I heard from my friend that Ali had five rounds of interviews, four rounds of technical interviews and one round of HR. Technical interviews were cross-interviews with several colleagues in the department, so I got to know him.
Side or around the project overall architecture based, the JVM, concurrent programming, Java, database, middleware technology and Dubbo operation service governance framework, etc, may be because it is a cloud security, half the time in the JVM, also questions some compiler optimization knowledge, after the side soon arranged 2 face, relative to one side, The second question is more in-depth, the question is more thorough, pay more attention to the understanding and grasp of some technical details.
For example, in database operations, the interviewer will ask you in detail how the process of inserting and deleting a piece of data is performed at the bottom level. In the project, read/write separation is configured, and the implementation method and the underlying logic will be discussed in depth.
Some issues worth documenting:
JVM memory generation,
Java 8 memory generation improvements
In-depth analysis of Classloader, parent delegation mechanism
Compilation optimization for the JVM
An understanding of the Java memory model and its application to concurrency
Instruction reordering, memory fencing, etc
Concurrency issues with HashMap
Do you know anything about LinkedHashMap
What design patterns have you encountered in your work and how have you applied them
Since the recruitment of Ali Hangzhou is P6 at present, there is a gap between myself and the job requirements, so I communicated with the interviewer on the phone on the second interview and did not attend the subsequent interview.
In the two interviews, Ali left a good impression on me. The interviewers were both great. The next day after the interview, I received an email from Ali rejecting the interview and giving me a thumbs-up.
Ali’s job is mostly in Hangzhou. After the interview, he paid special attention to the living cost there. At present, the average house price in Hangzhou is less than 20,000 yuan, which is more normal than that in some counties and cities in Zhejiang.
If you get the high salary of Several Internet companies such as Ali and netease, buying a house and living is indeed much easier than Beijing, I decided to settle for a period of time, and P7 will fight again two years later.
Youku tudou
Youku interviews are two-to-one, with two interviewers in each round. On the one hand, it is relatively smooth, mainly covering Java foundation, Spring principle, JavaNIO, concurrency and collection framework, etc., which may be due to the fact that Youku studies a lot of knowledge of network principles, such as TCP/IP protocol, long connection and short connection, etc.
On the one hand, he mentioned that he might learn knowledge related to big data and machine learning in the second half of the year. On the other hand, he stumbled on this, asking a lot of questions about massive data.
TCP/IP protocol
Long connection and short connection
Graphs process
The time complexity of multiple merging
Massive URL to re-class problem
Java NIO use
Principle of inverted index
Understanding of word segmentation techniques
In the interview, a specific scenario was given to investigate the understanding of MapReduce process, such as how the Map phase and Reduce phase are carried out, etc. In the Reduce phase, the interviewer wanted to analyze the time complexity of a multi-way merge, and briefly analyzed it with the knowledge of external sorting, but the answer was not good.
After coming back to search the winner tree and loser tree optimization, found that the content here is still quite a lot, deeply realized that some knowledge points if usually master not comprehensive profound, it is difficult to do.
Conclusion:
Since it is a social recruitment, certain work experience is a must, more than three years is best, the above several interviews also reflected. So if you want to go to a big company, I suggest that you get 2-3 years experience in a small company and then start moving.
1. We will not talk about the basic aspects, mainly for the Java language, need to set classes, and package, IO/NIO, JVM, memory model, generics, exceptions, reflection and so on have a more in-depth understanding, it is best to learn part of the source code.
These knowledge points are the same, can also be reflected in the interview, such as the collection class HashMap, from the source point of view, can go deep into the implementation of hash table, zip method hash collision solution, how to balance the internal array to ensure that the performance of the hash table will not decline;
From the perspective of thread safety can be extended to HashTable, ConcurrentHashMap and other data structures, can compare the two different locking methods, the implementation and application of RetreenLock, continue to explore the Java memory model, Volitale primitives, memory fences and so on;
Horizontal expansion can examine ordered Map structures such as TreeMap and LinkedHashMap, and then examine the knowledge of red-black tree, LRU cache, and sorting of HashMap.
In the middle and senior positions in Java, there will be a lot of emphasis on the mastery of virtual machines, such as class loading mechanisms, memory models, etc., which are very important in program optimization and concurrent programming.
Algorithms, basic sorting and search algorithms, to recursion, divide and conquer and other ideas. If the algorithm is not very good, recommend “programming Abas” and so on, each chapter is very classic.
In addition, basic computer knowledge, such as TCP/IP protocol and operating system knowledge is also necessary, which are the basic courses of computer major in university, but also the basic quality of development.
2. The design pattern, make the ability of the wheel, all kinds of cache and the database application, caching, middleware technology, high concurrency and high availability of distributed system design of large Internet companies will face a huge number of requests every day will review the architecture and design of distributed system, how to build high concurrency high availability system, because another user base is bigger, A minor optimization can be a huge benefit, so some of the technical stack requirements are more in-depth.
For example, for MySQL database, it is necessary to know the relevant configuration and optimization, how to divide the database and table after business, and how to configure cache reasonably. An experienced server developer should also be a competent DBA.
It is necessary to have a certain understanding of common development components, such as middleware and RPC framework. Although we may not need to build wheels by ourselves in our work, it is easy to master the principle.
This part of knowledge is mainly accumulated through work. I recommend Technical Architecture of Large Websites and Java Middleware Practice, and System Architecture and Practice of Large Websites by Zeng Xianjie, in which the evolution of large websites, service governance and the use of middleware are described in detail.
As a business developer, it is important to understand stress test related metrics such as QPS, average user wait time, etc., to better understand your system.
3. Soft indicators, including fast learning, good communication skills, and knowledge of the relevant industry
Companies will pay more attention to a person’s learning ability, whether it is worth cultivating, many companies recruit graduates will pay upside down for many years of work, the same is true.
Such as communication habits, logical analysis ability, these are soft skills, which are difficult to improve in a short time and need long-term cultivation and continuous investment.
Many companies will also pay attention to the industry, although it is business, but the understanding of products and industry is also very important. For example, for positions in Internet financial companies, experience in system development related to payment and banking will definitely be a plus, which is related to everyone’s long-term planning.
Have the direction, next is how to improve, say some of their own feelings.
A lot of the time, unless your job is to deal with high concurrency, high volume of users, etc., it’s hard to improve through overtime or repetitive work.
The most direct way for technical personnel to improve themselves is to jump out and look at themselves outside of work. For example, they should read technical books extensively, go to forums to communicate with various talents, understand the technology stack of mainstream Internet companies, and study and understand them in a targeted way.
At the same time can also be appropriate to understand some product or design knowledge, to point with surface, compound talent is certainly more popular, treat the interview, like and girl dating, show your ordinary side is ok.
Code to change the world, to become the leader of tomorrow, programmers shoulder a heavy burden ah, encourage.
Java programmers from Ali, Baidu interview back, these interview questions you can? (With interview answers)