Now the epidemic has improved a lot, I believe that many friends have returned to work, but there are many people are facing unemployment or want to change jobs, regardless of that situation gold Three has passed, silver Four has been more than half, how will you prepare to meet this job hunting season?

If you were to change jobs now, how would a Java engineer quickly prepare for an upcoming job interview in a month’s time?

From the interviewer’s perspective:

Give you an in-depth analysis of how the Internet companies on weekdays multi-faceted investigation of a candidate. To summarize, the interviewer investigates candidates from the perspective of technical breadth, technical depth, basic skills, system design, and project experience.

In this article, we will focus on the many points of the survey for each chunk of content. More importantly, how to quickly prepare for those points of investigation.

First, the breadth of technology

Technical breadth, to put it bluntly, you as a pass the engineers in designing a system, make certain the actual technical task, must be adopted to many of the technologies, and for those techniques must also master some common, all kinds of different systems or will be involved in some of the technical architecture/technical proposal.

For example:

A more critical system for an Internet enterprise will undoubtedly adopt a distributed services framework first

Dubbo/Spring Cloud, for example, can split the system into distributed architectures. In other words, the popular term today is microservices architecture, where one person is responsible for a service and is a subsystem.

It is likely that the system will then adopt other technologies to support some unique technical scenarios.

Common examples include Redis caching for high concurrency reads, RocketMQ for system asynchronous calls, Elasticsearch for high performance searches that support large amounts of data, and so on.

So if this Internet company is looking for a Java engineer, what are his requirements?

Will it be necessary to require candidates to have specific production project experience in at least a few technical areas such as Dubbo, Redis, RocketMQ, Elasticsearch, etc

Besides, I also have a good understanding of these technical features and common technical architecture/solutions when landing projects, so that the recruitment of this person can get started immediately.

It is stipulated that a candidate has specific project experience in various commonly used technologies and related architectures as well as a sufficient understanding of the technology itself, which is also known as technology breadth. Standing in the perspective of recruitment candidates, we must understand this “technology breadth” survey item.

In fact, the term “technology breadth” is said to be “technology breadth”, so it is obviously more than that.

In fact, a qualified engineer for an Internet company must also be proficient in many other things in terms of technical breadth. Examples include distributed transactions, microservices architecture, distributed locking, performance optimization, Java Virtual Machine optimization, Web Server optimization, database optimization, and so on.

The larger the Internet company, the more likely it is to look at the breadth of technology, the broader and higher the standards.

Second, rapid preparation of technology breadth

So now that we know what this breadth of technology means, how can we quickly practice and plan for this breadth of technology in the short term?

We can divide this question into two specific cases.

If you are also a weekday very diligent and studious very hard, the past two years has always been in the continuous learning of the people, so congratulations, this aspect of things 100 percent difficult to you

Because of your continuous learning over the past two years, you have probably already explored something at every point in the technology spectrum yourself, and it is inevitable that it will be a bit of application experience.

You obviously keep a lot of notes on everything you’ve learned or practiced.

The best way for you to prepare is to quickly summarize your notes and quickly recall the core content, basic principles and project practices of all kinds of common technologies in accordance with the notes and reviews, forming a knowledge network in your brain.

What if an engineer who doesn’t work so hard, or a inexperienced young man who has only worked for a year or two, still has so much accumulated experience?

That’s not impossible, remember the old saying: cram at the last minute, no hurry, no light. You may not have much experience, but you have an interview, so you have to cold Turkey.

The following is also to teach you the way:

Make your own list of the various areas of skill breadth that you will cover, and then do an online search for common interview questions for each area, or some of the core principles that underlie each area.

Through baidu each technology point, and then from a variety of technology blogs to quickly understand a technology, in a short time can quickly build up some basic knowledge of the breadth of technology involved in each point, the core principle, so that in the interview to avoid asking three questions.

Of course, we also know that technology is not quick, you use the second method to attack, and you have years of accumulation in the first case, finally landed in the interview, performance is completely different, and will directly determine the different people will enter different levels of the company.

The second kind of students may interview when asked a question, can only say one or two minutes, but the first kind of students, kung fu at ordinary times, as long as the review in place, when asked a question in the interview can often be extrapolated, all of a sudden to you say more than ten minutes.

That’s the difference.

But even if you only talk for a minute or two, it’s better than giving the interviewer the benefit of the doubt, right?

Finally, I want to emphasize to you that there is no shortcut to success. As an excellent technical engineer, the most important thing is to keep learning and accumulating every day, 365 days a year, for many years.

Eat bitter, bitter, the people, the author in the early years of technical accumulation, is also so come over. I studied until one or two in the morning every night and all day on Saturday and Sunday for many years.

Only with a few years of accumulation can you make a big, gradual change.

Third, technical depth

What does technical depth mean? To put it simply, if you have the breadth of skills mentioned in the first paragraph above, it does not mean that you are good, only that you have met the most basic requirements of the interview, and you can start to work immediately after being hired, without too much training cost.

It’s the depth of your skills that determines how high you can go, and whether you can be the backbone of the team.

Technical depth, as the name suggests, is the depth of your mastery of a technology, to take the simplest example.

If you have a system in your company that uses Kafka, then the problem is that in an online production environment, whenever there is a rush, kafka will throw an exception for some reason, or the data written to Kafka will be counted less every day for some reason.

When the online production environment encounters this kind of bizarre problem, it is often the time when the technical genius of the team comes out.

A technical genius must be someone who has a certain depth of research on various technologies. When encountering technical problems, he can directly analyze and locate the problems from the essence and bottom, and finally lead the team to solve the problems.

For example, those problems said above, it is necessary to solve, first of all, a technical bull kafka source code has a certain depth of research, then is in the time of the problem according to the fault site and some logs, combined with the source code of the operation process, step by step to analyze and locate the problem

In the end, some tweaking of Kafka’s parameters could solve these thorny production problems.

The above described scenarios and capabilities, is the embodiment of technical depth, such as a technology you have a complete, all-round, in-depth source code research, this is already ordinary people can not reach the technical depth.

Because a lot of people say that they have read the source code, but in fact, they are shallow read a little bit, understanding is not too deep.

At the same time, if there is some experience with a technology online production environment encountered some thorny problems, through source code analysis to solve the problem, then it is better technical depth.

Technical depth is highlighted, not necessarily said to read the source code, this is just one of the forms of expression, others also have, for example, for a very difficult technical scene, such as enterprise double 11 millions of QPS concurrent requests per second, you are responsible for the payment system, successfully deal with the high concurrency.

In this process, the design of the system architecture, the extensive concurrency optimization, performance optimization of the system, can become a reflection of your current technical depth in a particular technical area.

4. Short time preparation for technical depth

How to quickly prepare for the upcoming interview in technical depth?

In fact, it’s very simple, divided into two cases.

If you in the past few years, their in-depth reading of a large number of open source technology source, in the process of reading the source code, they also put the source code architecture diagram, flow chart, hand drawn a large number of diagrams.

At this point you can turn over the source code research notes of the past few years, go through them quickly, and practice how to draw the source code architecture diagrams and flow charts of various technologies by hand on the whiteboard in the interview site.

Or in the past few years, you in a technical field, in view of the high technical difficulties do any complex system, down a deep research in the technology field, so at this time you can also note quick review for the past, at the scene of the interview must draw the complex systems, and technical difficulties have you had all clear.

But what if you haven’t accumulated any of the above in the past few years?

Or that sentence: at the last minute, not fast also light.

The average interviewer is looking for technical depth and will probably ask you: Which technology are you familiar with?

When confronted with this problem, I hope we have a clear head, do not heat the brain casually say, because you have to be prepared for a psychological, once you say a certain technology out, for example, you say you usually use dubbo more, then the interviewer may open in-depth source level of 10 combo mode.

For example, the interviewer will immediately start asking you about a technology you are familiar with, various underlying mechanisms and principles, giving you an understanding of the source code, giving you advice on how the technology responds to various technical challenges, and so on.

I have seen too many inexperienced students casually mention familiar techniques, but in fact they just know how to use them. However, when I asked in-depth questions, I basically entered into a situation where I didn’t know anything.

If the above situation happens, it will make the interviewer’s impression and attitude to you extremely bad, we must bear in mind!

If so, if you really don’t have the deep accumulation of what technology, here also teach you a way out of the need, you can choose from your resume out somewhere you with relatively more familiar with a little bit of technology, and then directly with universal baidu search “XX technology source code analysis”, “XX technology underlying principle”.

Try to gain a relatively low-level understanding of a technology through a few days of rapid “rote memorization”.

In this way, at least in the interview when asked about some technical depth, can give some better analysis than the average engineer’s answer, at least in the interview, let you get a good offer probability will be relatively greater.

As always, doing is better than never.

You can prepare for the ground floor and have some understanding, which is always better than some superficial engineer who only knows how to use API!

The same author here to say, return to the essence of technology, for the accumulation of technical depth, it is not any shortcut at all, not a few months can complete the assault. (Unless someone is giving you directions)

Because to really have technical depth, you probably need to spend at least two years working on basic technologies from the ground up.

Once you’ve got through your underlying technologies, do some deep source research on common open source technologies such as Dubbo, ZooKeeper, Spring Cloud, Redis, RocketMQ, ElasticSearch, etc.

After several years of accumulation, when you finally interview, the technical depth is actually accumulated.

Basic skills

In fact, there is no more to say, we estimate that now slowly feel, social recruitment of experienced engineers to interview large Internet factories, but a lot of time to examine the data structure and algorithm.

Quick preparation of basic skills

How do you prepare this one quickly?

My advice is, if there is really a month to go to the interview, then you at least use a few days of time, the Internet search 30 to 50 of the most common, the most typical algorithm questions, repeated practice, be sure to master.

To what degree?

It takes practice and practice until you’re able to write bug-free code on a blank sheet of paper.

Which questions are the most common and typical? For example, classical sorting algorithm and its space-time complexity analysis, classical search algorithm, stack, queue, linked list, binary tree and other common data structure algorithm questions, these related basic topics are to master.

Of course, the best way to accumulate basic algorithms is in normal times. For example, if you spend half an hour on Leetcode or Lintcode every day, for a year, you will have at least 300 algorithm problems. If you do that for two years, you will have accumulated 700 or 800 algorithm problems.

At this time there is enough accumulation, at least the interview is not worried about any basic handwriting algorithm and other problems, kung fu is in fact at ordinary times.

As for the difficulty selection of the algorithm problem, just need LeetCode or Lintcode easy difficulty and medium difficulty. Social recruitment of algorithm and data structure requirements are lower than school recruitment, school recruitment because students do not have too much project experience, can only test your data structure algorithm, to see whether you are smart. There used to be a saying on the Internet: ** If you can write all the easy and Medium topics by hand and pass it within 3 times, you can handle the technical interviews of most companies in Silicon Valley, including Google, Facebook and other top companies, and this situation is similar in China.


I don’t know whether it will fail, if it fails, click (723770387) or scan the following TWO-DIMENSIONAL code to get the group, the link does not fill, I hope you can understand, but also can learn more with you

Link: Web disk

Extraction code: Pexe