Entering BAT is easy? After 2 or 3 years of work, I won the offer of a big factory!

Author | hsm_computer

Editor-in-Chief | Wu Xingling

Produced | CSDN Blog

In a large BAT factory, as long as you are willing to endure hardships, the speed of technology and wage progress will exceed your imagination. I am in Shanghai. At the current price, I usually work in the big factory for three or four years. This house is not too remote and too small.

Entering a big factory does require some strength, but if the technology alone is good and there are no other skills, it is estimated that it is indeed difficult. But speaking of it, even if you are a second-born student, even if you are average in technology, as long as you are willing to take the right approach, it should not be difficult to enter a big factory three years after work. In this article, we will give specific instructions for entering the big factory for students with a general starting point and general skills.

It's all about entering a big factory

There are junior developers with only 2 or 3 years of development experience in the big factory. Some of the classmates may have a second school. Perhaps they have similar qualifications and skills before entering the big factory. It can even be said that as long as you find a channel to interview, plus appropriate preparation skills, entering a big factory is actually easier than entering some small companies with more demanding interviews.

The first is the resume. As long as you have appropriate experience with distributed components, you can at least get an interview opportunity. Of course, if you only add, delete, modify, and check the interview, of course, but the questions and the way of asking questions in the interview are more online. This article will also cover, the key is to look at the distributed technology properly, and the second is to combine the project, which is not difficult for primary development. Even when some projects are short of people, the interview standard will be lowered.

Let me quantify the effort and time it takes to enter the big factory: the first is to spend about 1 hour per day to read the data and run the code to prepare the speech. It takes about 10 hours a week to accumulate. After 2 months, you should actually see it. It's almost the same, and then use the interviews of several small companies for 2 months, then you can go to the big factory to submit your resume. If everything goes well, it is easy to say, in case of failure, change the project team, or face a few big factories, face 3 or 4 times, should be able to do. It should not be a problem to work hard with time. The direction of the effort may not be known to everyone, and the specific text will be detailed later.

Improve your disadvantages as much as possible

First of all, let your resume be screened, otherwise there is no opportunity for interview. What does a resume that can be screened look like?

1. Master's degree, a university, 1-2 years of experience, and recent projects include distributed components equivalent value technology.

2. If the university is average, undergraduate degree, it is estimated to have luck. Looking at different project groups may require another year of project experience. If the project team is in urgent need, or the company has high recruitment needs, it does not actually look at the school.

3. This is very important. Don't change jobs too frequently. It is best not to have changed jobs in the past year, and have been in the job recently, not for a long time.

You can mine the project experience on your resume, but if there are adverse factors, try to dilute it as much as possible.

1. In general schools, find a project with a high concurrency background, reflected in the resume, up to two years is enough.

2. Recently, job-hopping has been too frequent. Find a company for a year or so. It is best if you haven't changed jobs in the last year and a half. If you have more than one month's leaving status, you can also dilute by working continuously for 1, 2 years.

3. I just got out of the training class and went to a small company for a year and a half, but I have to accumulate experience in distributed projects.

This part has been emphasizing the technology of distributed components, specifically high concurrency technologies such as Netty, Redis, Mycat, and Kakfa. The working life is one aspect. In addition, in recent projects of your resume, the practical skills of these distributed components must be To show that, if you let the interviewer of the big factory feel that you have insufficient first-year technical skills, and the second will only add, delete, and modify, then I ’m sorry, you have no chance to interview. Also, if your actual ability is strong, but you can't see it on your resume, the interviewer directly thinks you can't.

In terms of data structure, it is best to lead to the prepared technical highlights

The data structure is a must-have point for interviews. There are too many questions on the Internet, and the answers can be prepared. However, if you want to enter a big factory, it is best to bypass.

Let ’s use the red-black tree as an example. In addition to being able to talk about the basic data structure and inserting and deleting nodes, you can introduce it to the underlying data structure of ConcurrentHashmap. Use the underlying code of the object to explain. It's okay to prepare in advance, but if you answer the red and black tree questions by the way, you can even lead to the underlying code, and you can even lead to concurrency issues from ConcurrentHash, so that the interviewer will not think you are just theory.

Let's talk about the more commonly used linked list arrays, etc. These first can be talked with objects such as ArrayList in Java, and the second can lead to low-level code such as rapid failure and traversal, which can also make the interviewer feel that you have a solid foundation.

As for HashMap, this aspect has been asked badly. There are too many analytical articles on the Internet, but after answering the theoretical questions and the underlying code, you can also further display the topic of locks and concurrency.

In short, the question of data structure is a must. At this stage, many junior development candidates ca n’t even answer the questions at the low-level code level, and you can not only show your understanding of the low-level code by analogy, but also Being able to take the opportunity to show technical points such as locks and concurrency can first make a good impression on the interviewer. As for the written test algorithm, there are more such online questions, and they can be prepared in advance.

Big manufacturers test more about their ability in concurrency.

Give some questions first, such as netty, first ask important components and workflow, then ask serialization, service exposure and other prior details, and then read and write index semi-package sticky package and other questions. In fact, for primary development, ask Here is almost the same, if you want to find an advanced developer, you may ask in combination with the underlying code. There are many distributed components, and other components, such as mycat, also ask the usage first, such as how to set the sub-library rules, and then ask the underlying details, such as how the underlying code locates SQL to a specific library. Another example is redis, you can first ask some data structures and basic usage, and then ask some details such as clusters.

Even if you go to the advanced development of a big factory, preparing for distributed concurrency is actually not a problem, because many people have basically no relevant project experience before, but they are actually reciting questions. As long as you are interviewing, the interviewer feels slightly Just have more project experience than others. Here are some preparation methods.

1. First look at a few sets of interview questions. These interview questions are actually the same. They all involve the underlying source code and practical points deeply. First, learn the theoretical questions. Although there are many of these points, they are all physical work. Endorsement should be easy. What materials should I carry? The hanging interviewer series I saw earlier is not bad. In fact, when you read a few sets of questions, you will find that there are so many valuable technologies of distributed components.

2. Many candidates just stay at this point. If you do the next step, it is better than most people. After getting acquainted, I will give some technology to find some project background. These technologies are not necessarily deep, but they must be combined with the business of the project. For example, let's talk about the most basic Redis. You said that your previous project was a certain data processing module (the project can be said according to the actual situation). The concurrency is about 1k per second. If all the requests are pressed to the database, the database cannot bear it, so use Redis Cluster, and then prepare some rough configuration of the cluster. When using it, combined with the business, the String and other data structures are used. When it is used, a timeout period will be set to prevent the cache from being in memory all the time. In order to prevent penetration, it will also cache the null. Do it at the same time, let alone Redis affairs.

Please note that when combining technology with business, there is no need to involve too much details, such as not involving Redis ' threading model, but first of all, you must talk about some configuration values ​​(such as cluster configuration values ​​and timeout configuration methods) to make the interviewer feel You have indeed used it in a project. Secondly, you should talk about some of the experiences used in the project. For example, Redis should use a cluster to prevent single point of failure. It is best to set a timeout period followed by a random second to prevent large quantities at a time. The cache is invalid, and the database is taken at once, which causes excessive pressure.

Only Redis is given here. In addition, Mycat, Kafka, Netty, Zookeeper, Dubbo, etc., are also handled according to this, so that even if you don't use it usually, it can also make the interviewer feel that you have actual project experience in this regard.

3. It's true that the distributed component is not easy. In order to make the interviewer feel that you have experience in this area, or as a remedy when you don't say a good problem, you'd better sort out some problems that have actually been solved.  

When preparing the problem, first talk about how the problem was discovered. For example, OOM exceptions are frequently reported in the log, or the system simply cannot log on, and what you check is nothing more than looking at the log through the Linux command, or using Dump to view the memory mirror, and then the problem. Reasons, such as Dubbo's timeout is too long and the request is stuck, or Redis does not set a timeout to cause the memory OOM, these online search is also a lot.

And when you analyze the cause of the problem, you can take the opportunity to let the interviewer feel that you are familiar with the underlying source code of the distributed component. For example, if you prepare some source code for the netty underlying read-write index (or zero copy), when you say you have solved the cause during the interview Netty half-package and other problems caused by reasons, you can take the opportunity to throw.

4. Prepare some more finishing touches. When you combine distributed projects and the problems you have solved to say distributed component technology, then say these points, which will immediately let the interviewer look at you. These points can be based on Kafka's defense. Other mechanisms can also be zk integration dubbo source code, this valuable technology and source code is too much. Since finding these points is manual work, I am too lazy to list them here.

Long-winded, when preparing for distributed technology rhetoric, be sure to combine the project, even if you usually use very little, but you can find online information, but after you find it, you must integrate it into the project. Here is an example. A junior development candidate is also very attentive and has a lot of distributed questions. Basically, if you can ask, you will be able to return. However, when the interviewer asked the technology used in combination with the previous project experience, he could n’t speak. In fact, the underlying details of the distributed are not well understood, but it can be combined with the project to talk about the implementation details of redis timeout and anti-penetration. In fact, these technologies are not deep, but the requirements for primary development are not high, precisely because the latter has distribution The project experience of the type component, so although both are employed, the salary of the latter is higher than the former.

Fully demonstrate the ability to debug and deploy projects

The ability to debug and deploy projects is definitely a bright spot for elementary and advanced development, and even if it is a candidate for a big factory, not everyone will. If you say this, the interviewer will not necessarily ask in detail, as long as you listen to what you said is not a big problem, and this is not because of the depth of the technology, but because you know the practical points of this aspect.

In my previous blog post, how do I prepare for a Java interview? How to guide the interviewer's questions to the range he has prepared? , Gives the practical points of preparing for the stress test, so that everyone can see that the interviewer does not care about the problems you have solved in the stress test, nor the technology involved, only concerned about your experience in analyzing and solving problems in this area.

You can also prepare some analysis and problem-solving steps before the interview. This has already been mentioned before. Here is another example. For example, cat and other monitoring systems frequently report high memory usage. At this time, you can see the log or Dump and find the problem. The root cause of the problem is too much. In addition to the Redis cache that was just mentioned, the memory outside the netty heap has not been processed. it is good. Ok, these technologies involved are too deep, so give it simple, such as because HashMap is used well or clear, or the database object is not closed, or use the unlimited queue cache task when the thread pool is created, and then you search for the reason, then go to find For other reasons, what you encounter in your project can be used as your highlight.

Besides the deployment method, the configuration file deployed by zk plus Dubbo, you can also look at the deployment configuration of various Redis clusters. If you feel spare, look at the configuration of the gray-scale release traffic. In fact, it will be a sentence or two. The problem of code, but if you say it in combination with the big topic of deployment, the concept is different, because senior development (and architects) must not only write code, but also deploy components.

Give questions and answers if the factory interview process

Interviewer: Tell me about your experience and project experience?

Candidates, introduce the educational background (it doesn't matter if you have two or three), and have 1 to 2 years of relevant experience (experience of digging out the curriculum design and graduation work and work should be achievable). Slightly introduce the business of the project. For example, I made a payment system at xx company before, using Spring Boot, Netty, Mycat and other technologies (the prepared highlights can be said, distributed components are more beneficial), in the project, I not only write code , Also participated in overvoltage testing and database and JVM tuning (throwing bait, etc.), and also solved the Redis cache penetration reported online, kafka message retransmission caused non-idempotence and Dubbo timeout caused online connection count Full questions (more distributed questions are prepared here, but also wait for the interviewer to ask). Let me introduce some capabilities beyond coding skills. For example, in the project, I have also used Sonar to manage the quality of the project, and participated in the writing of Jenkins release deployment scripts. (This technology is available for every project. You pay attention to it, it is nothing more than writing configuration, but it is different when you say it)

After listening to your introduction to the project, the interviewer will ask questions such as distributed. For example, you will ask, you said that you have solved the problem of Redis cache penetration, how do you solve it?

Candidate: (Be sure to combine the items when answering). In my payment management system, the payment module will request the company's risk control data from the risk control module, but the same request parameters will be sent multiple times, so use redis Cache (roughly introduces the business background), but in actual applications, the requests issued may not all be stored in the risk control library, so it penetrates. The solution later was to cache the null value and cache some frequently requested parameters that do not exist in the risk control table. Note that the interviewer will not pay attention to the specific business and solution. You only need to say that there is no problem. For example, you can use the stand-alone version of redis here. Prepare several more sets of solutions to the same problem, so that when you say it, the interviewer will think you have used it in the actual project.

When you are finished Redis, Mycat, Kafka, Netty and other problems solved, the interviewer will begin to ask some underlying details, such as ask, you say under Netty threading model, Netty literacy index, Dubbo deserialization The agreement and so on, these belong to the theoretical knowledge of the exam, because you have memorized it in advance, so there should not be too many problems. The intention of the interviewer here is to get rid of your prior preparations, so I will randomly ask questions, but you have to find a way to pull the problem back and fight for more time. How can this be done?

(For example, ask Netty's threading model) Candidate: First draw and say, after explaining the model, then immediately bring a sentence, in our project, we use the thread pool to manage the work process (pull back to the business), in When managing processes, I also encountered OOM problems caused by setting the cache queue to an unbounded queue. (Throw the bait again and wait to ask), and then take the opportunity to expand, which will cost the interview time for power consumption. And if you follow the preparation steps given above, you can prepare the problems solved by each component, and then expand one by one.

When asking about distributed components, the interviewer may ask about the database and java foundation, which is simpler.

Interviewer: What is the database of your project?

Candidate: We used Oracle, and used the Mycat sub-library and sub-table in the project (even if I said it before, and throw it if I did n’t), in the project, I also dealt with long SQL problems (which leads to Tuning highlights).

Interviewer: What are you tuning? (Involuntarily guided)

Candidate: The monitoring method we use is cat. When long SQL is found on the monitoring system, we use the execution plan to analyze, and then build the index accordingly, or build the Redis cache, or use the with statement to optimize the SQL . Then find a prepared SQL and talk about it.

Then the interviewer will ask some questions such as indexes. You can memorize some answers in advance and talk about the underlying structure. Say hello to the database, the interviewer will ask the Java core, such as hashmap, thread safety is not safe, or JVM questions. This kind of answer you have memorized is also extended.

Candidate: For the hashmap, in addition to the low-level code I just mentioned, after we use it, we also need to clear it immediately to prevent memory leaks (leading to the memory topic). Or after answering the JVM question, you immediately said that in the actual project, we will monitor the usage of the JVM . When it exceeds 70%, we will use the Dump file to look at the mirror. The JVM problem I encountered in the previous project is, the netty heap The memory management is not good, ThreadLocal is used well without removing, there are too many reasons for OOM, everyone prepares for themselves, I will not start.

In the above way, after you answer a good question, immediately throw the next bait with the business, and then find a way to lead the problem to JVM tuning, database tuning, thread underlying code, (hashmap, etc.) underlying source code, etc. Perhaps your own technology may not be necessary, and your qualifications may not be enough, but the interviewer may give you the evaluation is that the first foundation is solid, the second has experience in tuning, and the third is experience in using distributed components. The above three points are enough. Not to mention the initial development, there may be the following evaluations, such as mastering the improvement of project code quality, familiar with the basic skills of online debugging and release, and familiar with the underlying details of the distribution. If you get these evaluations again, it is estimated that the face architect is enough.

This is not over yet. When the interviewer asks a good question, but you have no chance to throw the highlights you prepared, don't be reconciled and have a chance to throw them.

Interviewer: I have a good question. Do you have anything to ask me?

Candidate: (Let ’s put it first) If I am fortunate to have a successful interview, which project group will I enter? Then no matter how the interviewer answers, it doesn't matter if you answer "it depends on the situation", and then continue to ask, (such as dubbo highlights are not thrown away) how do you make remote calls in your project (trying to be confused) The interviewer will usually say dubbo, and then communicate, and inadvertently say something during the communication process. Our previous project also used dubbo, so I have also seen the dubbo source code and solved the problem of service exposure. Say it.

 Or if you do n’t have a chance to talk about stress testing skills, you can ask, will stress testing be done in your project? How to send a request during pressure test? How to monitor? Then you can talk about your highlights during the communication. Other highlights are prepared accordingly.

Find more small companies for interviews, some small companies have more difficult interviews than large companies

Ideally, the results of your interview have nothing to do with skills or the length of project experience. They are only related to the projects and technical introductions on your resume, and to your preparatory highlights.    

But if you simply do not prepare to practice, any interviewer can find out your details. There is no illusion. On the one hand, you may not have all the points you prepared, and on the second, the rhetoric of the project you prepared may not have been well drafted. There may be loopholes in the middle, then you need to find some small companies to try.

How to do this: Prepare to follow the standards of the big factory interview, and then go everywhere to submit the resume of the small company, remember not to rush to find the big company first, try not to leave a record of the interview in the big company, it is best to interview twice a week Home.

At the beginning of the interview, you will find that your rhetoric is full of loopholes, and you will even be seen through your background, but do n’t be discouraged. The first is to collect the interviewer ’s question, the second is to constantly practice the highlight skills combination project, the third Continuously tap your highlight skills, during this time, the interviewer of the small company will make up for your weaknesses in the interview.

When can you leave the school? The first interviewer can indeed ask about the practical experience of distributed components, rather than simply asking about the theory. In the second type of interview, you pass three, and third, you pass with a big advantage, not up and down.

Channels into big factories

At this time, you will be able to challenge the big factories with confidence, how can you find a channel to enter the big factories at this time?

1. In recruitment channels and other channels, contact more headhunters and tell them that you want to enter a big factory, such as BAT or company name. Not every big factory has a recruitment quota for every time period. Don't worry about waiting, and the waiting time will not be too long, up to 2 months.

2. Find internal referrals. For example, if you see an article that has a successful interview on the Internet, you can contact it.

The recommendation here is to find a head hunter, because the head hunter is easy to find out the results of your interview, and the interview has become more able to help you get the most salary, and if you do not have an interview, you can tell the headhunter that you want to face other project positions in this company . If you submit your own resume, you may not be able to get such a traversal.

When you are fully prepared and the prepared speech has been tested by a small company, the general problem is not big. If you fail again, or find other positions in the company, or find other big factories, you should meet up to 3 times. Finished. 

It ’s not too late to start working at any time,

The distance between the big factory and your current height is at most two years

In fact, when you enter a big factory, you get the opportunity to quickly improve your skills and income through overtime work. Moreover, there are many recruitment places every year. It is not difficult to enter a big factory. On the Internet, I have seen many students who have graduated within 3 years of entering a large factory. Around me, I have seen a master's degree in 1 year of experience, a lot of undergraduates, 2 years of experience in Ali, and 3 to 5 years of experience in large factories , I can't remember it.

In addition to improving skills, entering a big factory also has considerable benefits. For example, after 3 years of work, you can have an income of 20k * 16 months. Find a different industry. These qualifications can have corresponding income, not many. After the factory, you can continue to upgrade to an architect in 3 or 4 years, and achieve a yearly income of 500,000 or 600,000 yuan (this is still an average level). If you retire, you can enter a foreign company like me, salary plus usual books and videos , In Shanghai will not starve to death.

Many students may need to look up at big factories now, but in fact the preparation is the same. Time is enough, watch more video tutorials, and do less unhelpful pastimes. It is estimated that the sky is over. 2 years of hard work is really enough , 1 year to wash the resume, 1 year to prepare, this is still too much. But if you stand still, or dare not to take the interview step despite your hard work, you may really be able to settle in a small company.

Thank you for reading the long article. This article has been written for three and a half hours, and the space is enough. If you feel you can, please like it and write comments if you have any questions.

About the author: A well-known senior architect in a foreign company, interviewed hundreds of Java engineers within 8 years, and 5 years of experience as a Java training instructor, helping many beginners successfully get their favorite Offer. Author of "Java Core Technology and Interview Guide". CSDN blog expert. With Java Interview Offer Express Train :https://edu.csdn.net/course/detail/27126

Original link: https://blog.csdn.net/sxeric/article/details/105508711

Copyright statement: This article is an original article of CSDN blogger "hsm_computer", which follows the CC 4.0 BY-SA copyright agreement. For reprint, please attach the original source link and this statement.

More exciting recommendations

Those god-like programmers

☞Comics : Why is the download movie progress always stuck at 99% and does not move?

Ren Zhengfei stepped down as director of Shanghai Huawei; Baidu "cloud phone" released online today; Inkscape 1.0 & RC version released | Geek Headlines

☞Realize the statistical prediction model of time series data through Python code

Bitcoin as ransom, WannaRen extortion virus struck the second time!

☞Do you know? In fact, Oracle histogram automatic statistical algorithm has these defects! (With verification steps)

Every "watching" you order, I take it seriously

Published 508 original articles · 10,000+ praises · 5.62 million views

Guess you like

Origin blog.csdn.net/csdnsevenn/article/details/105548155