Highlights Interview Process

Last week, I interviewed candidates for intensive Several Java back-end work experience in 3-5 years. My standard is not really complicated: the first can work, the second Java foundation is better, and the third to be familiar with some of the distributed framework, I believe that when other companies recruit junior developers, this standard should be shining surface.

 

I also know that many candidates the ability to actually not bad, but not ready or do not say during the interview, such a person may indeed reach expectations after the team into the work, but it might not pass the interview, but the interviewer always only be judged based on an interview situation.

 

But the reality is, most people probably did not prepare before the interview, or prepare method shall not be treated. You know, we usually work more on the business, can not come into contact with a large number of algorithms, data structures, the underlying code such interview will ask the question point, in other words, interview preparation match point and usually the main points is very small.

 

As the interviewer, I can only be decided according to the results of the interview the candidates to answer. However, with people to facilitate their own convenience, so in this article I will introduce to prepare interview skills through a number of common problems. We will definitely look after sigh: the right approach is not difficult to prepare for the interview first, the second time with not too much.

 

1, the framework is the key, but you just do not let people feel the cottage someone else's code

 

Before the interview, I will read the resume to see the candidates in the framework of project experience, the introduction of part of the project candidates, I will focus on the recent framework for candidate experience, more popular is the SSM.

 

However, candidates usually work in five years, most of them are only able to "cottage" someone else's code, that can be the basis of the existing framework, according to others to write process, expansion of new functional modules. For example, to write a pending stock of functional modules, will mimic the existing order process, then front to back and then to the database, follow suit write again, up to the point to get rid of the code related functions.

 

In fact, each of us are so over, but in the interview, if you only show such ability, and most people will less the same level, and at this point would not be able reflect your advantage.

 

We know that if you want a SSM framework, most projects there will be pain points. For example, database performance is poor, or the service module is more complex, higher concurrency than using Spring MVC in the Controller can not meet the needs of the jump. So I usually will take the initiative to ask: Do you write business code except in accordance with the existing framework, but also to do what changes?

 

I have heard the answer: increase the Redis cache to avoid frequently called some of the same data. Alternatively, MyBitas the xml in, select statements where conditions isnull, namely the value has increased a condition where, this, where would any increase in a query without isnull avoid the statement when an incoming parameters is null, do a full table scan. Or, simply said, a large amount of data returned from the backend asynchronous, long time, I will turn up in the project the maximum time asynchronous return or return information to do the compression process, increased throughput and network performance.

 

For that matter, I do not care to hear what answer, I only care about the characters does not match the logical answer. As long as the general answer, I will give "has its own experience in the framework level, there is a certain understanding", otherwise, I will only give "can only write framework code under the leadership of the project manager, to know much about the framework itself . "

 

In fact, in preparation for the interview, he summarized the main points framework is not difficult, I do not believe in doing all of that accumulated project did not, as long as you say it, it can be said, in this regard you are rolling up nearly 7 percent of the competition By. 

 

 

2, do not simply look at the stand-alone version of the framework, a proper understanding of some distributed

 

Also, in describing the project in the framework of technology, the best you again with some distributed technology. Below I have listed some of distributed technologies we can to prepare.

 

 

  1. Reverse proxy, the basic configuration nginx, such as how to set the rules by lua language, how to set the session sticky. If so, look at some of the underlying nginx, such as protocol, the cluster set, failover and the like.

  2. Remote call dubbo aspects, can look dubbo zookeeper and integration of knowledge, and then deep step to understand the transport protocols and serialization under dubbo the bottom.

  3. Message queue aspect, use kafka look or any assembly point may look simple configuration, workgroup settings, and then further point, the cluster can look Kafka, persistent manner, and transmitting message is long connection or short interception.

 

These are just three components by way of example, we can also look Redis cache, the log frame, myCat sub-library sub-table and the like. Way to prepare for the two categories, the first is to say how to use, this is relatively simple, through the configuration file can be built into a functional module, and the second is some underlying code can be properly read, understand under this agreement, cluster advanced knowledge and failover and the like. 

 

If you get in the rhythm of the underlying distributed components in the interview, the assessment will get better, and such "in-depth understanding of the underlying framework" or "framework seasoned", so that even if the line is also interviewing architects and more not to mention the advanced development.

 

 

3, databases, do not know CRUD, you have to understand the performance optimization

 

In the actual project, most programmers use may only be CRUD, when we use Mybatis, this situation is more common. But if you have this interview performance, your ability to estimate and competitors almost the same.

 

In this regard, you can prepare the following skills.

 

  1. SQL advanced aspects, such as group by, having, left connections, sub-query (with in), line transfer columns and other advanced usage.

  2. Under terms of built form, you can consider your project is to use three or anti-paradigm paradigm, what are the reasons?

  3. In particular optimization, you can go ahead and how to view the SQL statement to improve the implementation of the plan point by the way, or other ways to improve SQL performance (such as indexing, etc.).

  4. If you feel have the ability, you can also prepare some MySQL Cluster, MyCAT sub-library sub-table skills. For example, to achieve load balancing MySQL through LVS + Keepalived, MyCAT configured. Also, if possible, also see some of the associated underlying code.

 

Even if you forward a three-point performance in general, then at least to nearly beyond general candidates, especially when you did very well in SQL optimization, then you are in the interview advanced development, database level must be substandard, even if you first Four Points is also very good answer, then congratulations, your ability to databases and even reached the level of primary architecture.

 

 

4, Java core aspects, data about the structure and performance optimization ready to face questions

 

Java core piece, face questions online a lot, but beyond this, we should also focus on the collection (ie, data structures) and multithreading these two, on this basis, we can prepare some design patterns and virtual machines rhetoric.

 

Below some part of the question I usually ask columns:

 

  1. String a = "123"; String b = "123"; a == b What is the result? This includes a lot of memory, knowledge, String storage methods.

  2. HashMap in the method and equal hashcode methods do I need to rewrite? If you do not rewrite what will happen? In this regard we can learn more about HashMap (even ConcurrentHashMap) of the underlying implementation.

  3. ArrayList and LinkedList underlying implementation of what is the difference? What are their respective occasion apply to? We can also understand this under the relevant underlying code.

  4. What is the role of the volatile keyword? Thus giving, we can understand the difference under the thread of memory and heap memory.

  5. CompletableFuture, this is where JDK1.8 new features, how to achieve multi-threaded concurrency control by it?

  6. The JVM, new objects are out in which area? Further in-depth look, ask how to view and optimize JVM virtual machine memory.

  7. Static and dynamic Java proxy proxy What is the difference? For the best combination of the underlying code.

 

 

Through the above problems, in fact, I not only stay in the "use" level, for example, I will not ask how to put the elements in the ArrayList. As you can see, the above-mentioned problems includes "multi-threaded", "JVM optimization", "Data Structure object underlying code" and other details, you can also learn by analogy, by looking at some high-level knowledge, to prepare some other similar interview questions.

 

We know that the current Java Web development framework is based, so why ask Java core knowledge of it? I have personal experience of this.

 

Before my team, I have seen two people, one will work, specific performance is the core will use the Java basic API, and there's no in-depth understanding of the wishes (estimates do not know how to understand), another usually will specifically look at some advanced knowledge of concurrent Java virtual machine or the like. Over half a year after the latter's ability to quickly upgrade to the advanced development, due to the JAVA core knowledge to understand very thorough, so look at some of the underlying distributed components to achieve no big problem. The former, has been duplication of effort, ability only stuck in the "will work" level.

 

In reality the interview, if you are not familiar with the Java core knowledge, advanced development rose estimate is immune, let alone a job interview architect level. 

 

5, Linux terms, at least learn how to look at the log to troubleshoot problems

 

If a candidate can prove that he has "troubleshooting" and ability to "solve the problem", which is definitely a plus point, but how to prove?

 

Most Internet projects are deployed on Linux, that is to say, the log is in Linux, summarized below some actual Linux OS.

 

  1. Through the less command to open files through Shift + G to reach the bottom of the file, and then through? + Key way to search for information on key.

  2. Grep way through keyword search, specific usage is, grep keyword file name, if you want to look at the results in two words, use grep filename keyword 1 | keyword 2 --color. Finally --color is highlighted keywords.

  3. By vi to edit the file.

  4. By chmod to set file permissions.

 

Of course, there are more practical Linux commands, but in the actual interview process, many candidates do not know even a linux command. Or is this sentence, even if you know some very basic, but also stronger than the average person. 

 

6, the underlying code read section, as bonus items

 

How to prove their knowledge of a very understanding? Than by the underlying code to illustrate. I was in a lot of work experience and programmers within five years of communication, many people find it hard? Indeed, if you want to understand the underlying code by reading the distributed components, and that the difficulty is not small, but if the underlying code as part of, not difficult to understand.

 

 

  1. ArrayList, LinkedList's underlying code, contains an array-based implementation and linked list, if we can clear this expansion, "traversed by an enumerator", etc., can certainly prove himself.

  2. HashMap Hash table correspond directly to the data structure, the underlying code HashMap's, contains the put hashcode, like GET operation, even in the ConcurrentHashMap, the logic also contains a Lock. I believe that if everyone in the interview, take a look at in terms of ConcurrentHashMap, said as he combined painting on paper, it must be able to conquer the interviewer.

  3. Can look static and dynamic proxy agent implementation, further in-depth look, you can look in Spring AOP implementation code.

  4. Perhaps Spirng underlying IOC and MVC implementation code more difficult to understand, but we can say the key classes, according to their implementation under the critical process said. 

 

 

In fact, the underlying code may not be more than ready, but not limited to areas in which, for example, the collection based on red-black tree TreeSet, based on open source framework NIO even Dubbo distributed components, can be prepared. And may not want to back out of all of the underlying (in fact very difficult to do) when ready, as long as you can combine a number of important classes and methods, to make it clear ideas (such as HashMap clear how quickly located by hashCode).

 

So in the interview, how to find a good opportunity to speak above the underlying code you ready? In the interview, always asked about the collection, Spring MVC framework of relevant knowledge, etc., when you answer, by the way, "I understand this underlying implementation," then the interviewer will ask, then you can that out.

 

Do not underestimate the help of the candidates, once you say, as long as the meaning of place, then at least get a "Ken positive professional" evaluation, if the description is clear, then the evaluation will be upgraded to "familiar Java core skills (or Spring MVC), and a firmer foundation. " You know, the interview, very few people can say clearly the underlying code, so you throw this topic, even if the final results did not meet expectations, the interviewer will not thereby lowering your evaluation. So, this is absolutely ready "There is nothing like" make money trading.

 

7, all in all, the above-mentioned skills embedded into your project done in

 

During the interview process, I often hear some of the more regrettable answer, such as a candidate for SQL optimization skills very convincing, but in the end that this is the time to master his usual self, did not use in the actual project.

 

Of course, this is better than not that much better, so I will write "in the usual SQL optimization skills through self-study," but if practiced in the project, then I will write "actual SQL database optimization skills." We can compare the differences at the two, one is the emphasis on theory, one is able to direct the work. In fact, many scenes, I do not believe SQL optimization certainly did not practice skills in actual project.

 

 

In this case, I want to tell you is that before you took a lot of hard work (in fact, a method for obtaining directions, they do not take much effort) to prepare a lot of skills and rhetoric, and finally you should implement the actual project.

 

For example, you have had the experience of query keyword troubleshooting in Linux log in describing you can take one before the project where I was so dry. Again, you look through the underlying code, understand the difference between TreeSet and HashSet and their scope of application, then you can recall under the item before you do, if there is a scenario only applies to TreeSet? If so, then you can properly describe the demand under the project, and then say, by reading underlying code, I understand the difference between the two, but in the actual demand, I will use a TreeSet, but I also made a special contrast test and found to be higher with HashSet TreeSet than xx percent.

 

Please remember, "experience" must be better than "theoretical experience" worth the money, and most of you know of theoretical experience, certainly used in your project. So, if you just make the interviewer feel that you only "theoretical experience", it is too lose.

 

 

Summary: This article more about the methods of preparation of the interview

 

Face questions this paper is not much, but this paper does not intend to give too many interview questions. From this article, we see more of is found in many pain points interviewer candidates.

 

The intention of this article is to let everyone Do not repeat other people's mistakes, it's not, the paper also gives a lot of way to prepare for an interview. Your ability probably superior than others, but if you prepare for the interview and others similar way, or took you dry in the project live for something, but you did not summarize the highlights in the project, then the interviewer really We will look down on you.

 

appendix:

https://mp.weixin.qq.com/s/5_oMk5DQmNwvRy3zKKOjhA

Guess you like

Origin www.cnblogs.com/williamjie/p/11080819.html