How hard is it to get a byte-beating offer?
It was a non-subject class in the second college. It took me a whole year from being rejected to getting the headline interview.
The introductory push was rejected, as my title said, the resume was rejected. In March last year, I saw a big headline on Zhihu saying that he could push the spring internship, so he wrote a private message and sent his resume to him. After reading my resume, I said that the headline competition is fierce and my background is not enough. . (excuse me)
Prepare for interview
In fact, it took only one month to prepare for the interview from the delivery of the resume in March to the acceptance of the offer in April, but this is all based on my accumulation in the past year, countless overnight study rooms, and exclusive chairs in the library. Stuck in by me sitting. To avoid misleading everyone, I will not be the title party this time. I have written and prepared for a year, and work steadily.
The following is the study plan I set for myself last year:
Getting started with big data
I have been refreshing the introductory video and "Hadoop Authoritative Guide" throughout January, and it is approaching the end of the term. I get up at 5:30 every day, watch two hours of video, and then go to class or review the final exam.
Sword refers to the offer, data structure, JavaSE, JVM, multithreading
①Sword refers to the offer and skips it if you don't understand it, and waits for the second time next month;
②The data structure focuses on some characteristics of various trees, binary trees, red-black trees and the characteristics of linked lists;
③JavaSE is mainly the difference between the class object interface, whether it can be inherited, the characteristics of Static, the principle source code of various Hashmap, ArrayList and other collection frameworks;
④JVM is based on the high-frequency interview questions integrated on the Internet. After reading the interview questions, I went to see Zhou Zhihua's "In-depth understanding of the Java virtual machine"
⑤Multi-threading is also used for online interview questions and blogs
Sword refers to offer two brushes, database, operating system, network, preparation for interview
① Sword refers to the second pass of the offer, the focus is on those who understand the code when the first pass is brushed.
②The database brushed more than 100 questions on Niuke.com's SQL actual combat. The others are indexing principles, pessimistic optimistic locking and other theories.
③ The operating system brushes high-frequency interview questions. The conditions and solutions for deadlocks, resource scheduling algorithms, concurrency and parallelism, etc.
④ The Internet is also a brush interview questions. Three-way handshake and four waved hands and why you want to do this, TCP and UDP, web page request process, DNS resolution process, network model, meaning of response code, etc.
⑤Every time I brush an algorithm or understand an interview question, I will sort it out, so just look at the sorted documents and blog before the interview, which is very easy. This month, I will continue to submit resumes for interviews. Starting in March, I have been preparing while investing. There is no such thing as a ready to vote.
In March, we received offers from second-tier manufacturers such as Meituan and Guazi second-hand car.
Big data project, handwritten sword finger offer, continue interview
① In March, I was stunned by the three-faced interviewer of the Alibaba rookie department, saying that there is no big data project in the resume, and there is no use in theory. So I planned to make up the project in April.
②While making up the project, don't forget the algorithm and practice writing code on the whiteboard.
In April, I received some offers from Tencent and Qunar. Both Tencent and Qunar had to be on-site, so I flew to Beijing one day and Shenzhen one day. When I got the Tencent offer, I discussed with HR whether I could go to the base in Shanghai or Beijing. HR said no, so I didn't go. There is a hard standard for choosing a city for work and life: stay away from home! Those students who studied in the north have been running home after graduation, but I have been jumping outside, perhaps because I have been in Xiamen for four years, and my hometown is also a "siege."
Internship, look at the source code of the framework, interview, organize interviews
Finally I chose to go to Kyligence for an internship. I just took this opportunity to learn the Kylin source code and read part of the source code of Hadoop and Spark. The next interview was also to force myself to learn, to find deficiencies in the interview, and to sort out some interview materials by the way.
to sum up:
Be sure to make your own study plan, and learn to adjust the plan according to your study situation. The project is the stepping stone to the interview, and it is also the big head of the interview. I went out for an internship since my sophomore year, so I can spend less time on the project instead of starting from scratch. The underlying theory must be understood, otherwise the big factory will be hopeless. The algorithm must be rigid. There are only a few types of questions in total. I was very resistant at the beginning. I thought it was too difficult, and that was how it faced the difficulties later.
The above is my preparation for the past year, and I will talk about my preparation for the month from the delivery of the resume to the receipt of the offer.
1. Review the algorithm . I sorted out the algorithm questions that I had brushed before. Because I had sorted it out before, it didn't take much time to review. I also deliberately understood the long KMP algorithm and the LRU algorithm.
2. Review the theoretical basis . In addition to reviewing the collated faces and materials, I also deliberately learned about Golang, because the headline uses the Go language.
3. Specially prepared a few technical difficulties of the project , which can show off during the interview.
4. Data preparation
The experience of major factories
These can also be shared with the editor, and forward this article so that more programmers who are seeking jobs can see it!
- How is the back end of the school project built
- Answer: tomcat, springboot, mybatis
- Remarks: I
didn’t answer well here. It should be expanded, saying that the junior level was limited and there was no high-availability. If you do it now, you will use VIP+dual-ng+dual-services for simple and high-availability.
- "Small programs do not support caching binary, so small pictures are BASE64 encoded and cached locally", is there any other optimization solution?
- Answer: The optimization plan is CDN, which explains the general principle of CDN
You can also answer the picture compression
- Talk about the encryption and decryption scheme in combination with the project
- Answer: I talked about asymmetric encryption (two application scenarios), digital digest, digital signature, symmetric encryption, and SSL. I talked about it for a long time.
- How to write the report interface and how to support flexible modification without deployment
- Answer: All kinds of CASE WHEN, IFNULL, save sql in the database, take out sql from db and then execute, there is a management background to change at any time
- How does es aggregate calculations
- Answer: No
- How to do range query in es
- Answer: I talked about es fragmentation, routing, and brute-force range schemes
- es participle principle
- Answer: Answered the word segmentation process, inverted index, etc.
- new life cycle of an object
- Answer: I talked about jmm, and it took a long time to answer
- In addition to not having enough space in the old age, when will fgc be triggered?
- Answer: System.gc() will also be triggered. The production environment is generally called DisableExplicitGC to disable System.gc()
- When the target age of the new generation reaches 15, they will be promoted to the old generation. Why is it 15?
- Answer: It should be an empirical value. If it is set too small, the object may easily die after reaching the old generation. If it is too large, the object may be replicated in the young generation, increasing the cost.
- Remarks The
correct answer should be because the markword part of the object header, the binary length of the age field storing the generational age is 4, so the maximum value is 15
- Why does mysql have the principle of the leftmost prefix
- Answer: It is the structure of the B+ tree that determines the leftmost prefix. Answered the page structure of mysql (free area, user record area, page directory..), index structure, clustered index, secondary index. I answered it for a long time.
- Algorithm question
- Find the substring in the parent string, that is, indexOf. Answer: KMP is not written, but violence is written.
- During the interview, there were questions about "what will be returned when the substring does not exist", "whether the first one is returned when the substring appears multiple times", and there is a special case that is not considered: what is returned when the substring is an empty character
- There is also a string matching algorithm that is faster than KMP: After the BM (Boyer-Moore) algorithm violent code runs through, let me recall KMP, but I didn’t recall it, only said that there was a next array...
- Combined project
- How does F5 realize session retention in the project
- Answer: add cookie
- Ask about the ISO seven-layer model, which layer is the F5 plus cookie, and which layer is the ip hash?
Cookie is only available in the http protocol, so at the application layer ip hash may be in the application layer or the network layer. If it is client->lb lb->server, it is the application layer, because it needs to be re-initiated HTTP request, if it is achieved by modifying the target address through the DNAT protocol, it is the network layer
- F5 is different from Ha. Why is F5 better than Ha? With the same hardware configuration, is F5 better than Ha?
"Why F5 is better than Ha" did not answer at the time. The correct answer should be generally, F5 is four-layer load balancing, and Ha is seven-layer. However, F5 can also be used for seven-layer load balancing. At this time, the performance should not be much worse.
- dr mode of lvs
- VIP drift principle of keepalived
No answer, the answer is VRRP agreement
- Talk about the skills you are good at
- Talked about the innodb page structure and index principle
- sql tuning experience
- How big is the largest table in the entire database of the project
- Which microservice framework is familiar with
- Which source code have been seen
- Answer the hashmap, ask why the capacity of the hashmap is 2 to the power of n
- What are you studying recently and why
- How to understand high availability
- Interviewer: Do you have anything to ask me
- Q: What aspects need to be reinforced
- Interviewer: The project is more traditional, others are fine
- Introduce project difficulties
- Zero copy
- How to troubleshoot a few cases of FGC
- What are the reasons why the video suddenly gets stuck when using the vibrato on the phone
- Why leave
- No algorithm, it's almost half an hour in total
to sum up
Be prepared for some high-frequency problems, including technical and non-technical
- Technology category:
- Which source code have been seen
- Which technology is more familiar
- What are you studying recently and why
- What areas of the project need to be improved
- What are the difficulties of the project
- How to deal with sudden traffic
- How do you usually learn, how to learn new knowledge
- What are your advantages and disadvantages
- How do colleagues evaluate themselves
- Why leave
- What else to ask
Introduce project skills
- You must be cautious when speaking about the project. If you speak too deep, the interviewer may ask questions in depth for any term, causing you to fail to answer; if you speak too shallowly, the interviewer will feel that the project is not difficult enough and is not interested in listening;
- When talking about the project, finish talking about the pain points, and then talk about the solutions one, two, three, and their respective advantages and disadvantages, what plan was selected in the final production, and whether the logic is clear during the interview is also a very important indicator of inspection;
- Highlight a deep understanding of the business;
- Use specific numbers to explain the situation, such as qps, db data volume, etc.;
- Intersperse the eight-part essay into the project
Algorithm question skills
- Pay attention to the code specifications, such as comment first (write the comment first and then write the code), write a comment on the return value of special circumstances (such as what to return when the input parameter is empty)
- Be good at asking questions to the interviewer and reflect your own logical ability. Take "Finding the substring from the parent string as an example (that is, implementing the indexOf method)". Questions that can be asked are: If the substring does not appear in the parent string, what substring is returned? Empty, return what substring appears multiple times, whether to return only the first position
- If the time is enough, follow the above. If the time is not enough, don’t consider too many boundary conditions. Just pass one case.
- Don't speak too fast, otherwise the interviewer can't understand;
- At least one function must be powerful enough to blow for a long, long time. Ask the difficulty of the project and wait until it is time to blow;
- At least one technology must be in-depth study, redis, mysql, jvm... all work, if you blow it, you will get a lot of points;
- When answering questions, first talk about the conclusion and then the process. Under the premise of knowing the conclusion, listen to you and understand the process;
- Don't invest in a bunch of companies at the beginning, you may find that your resume needs to be revised after one or two interviews;
- Don't lie to Dachang HR face, hr is very professional and easy to see;
- The interview is actually three aspects of eight-legged essay, project, and algorithm. If there are no problems in all three aspects, then it will be stable. Eight-legged essays can be memorized and projects can be packaged, but the algorithm can only rely on accumulation. If you want to enter a big factory, you should first go through the questions and start in six months.
Examples of common problems
A small suggestion on how to enter a large factory
I have always advocated the " curve to save the country " approach, and have been spreading this approach to others. It doesn't matter if your ability background is insufficient. As long as you plan your own learning route and climb up step by step, you can always achieve your goals. Because I came from a second undergraduate, but I realized it early, so I started internship in my sophomore year. I used projects and internship experience to make up for my lack of background, and then step by step to "freedom of offer". In many cases, it is not only giants who can succeed. You only need to be an ordinary person in action, and you can surpass many giants in thought and dwarf in action.
1. To learn technology without being influenced by classmates, to communicate more with friends and strangers, and to learn to be a human being.
2. Find the latest learning videos on the Internet and do more projects. Don’t always stare at the one-half acre land taught by the school. The school is more about laying the foundation. You only learn the other things in the school. It is very important to review, categorize, and master the details of the learned knowledge.
3. Ordinary college students who want to enter a large factory, please find a large company for internship. Even if it is an outsourcing internship, it is easier for a large company to endorse it, and it is a matter of minutes to enter an ordinary company.
4. From the beginning of the internship, go to the interview if there is nothing to do, and look at the example of the online interview if there is nothing to do. Otherwise, there are so many rounds of interviews directly at a big factory, and it may even be said to be abnormal.
5. There must be a project. If you can't do it by yourself, you can directly explain your participation in the company's larger project during the internship. Experienced people at work are better than inexperienced people.
6. Find more relationships, find more relationships, find more relationships, find more relationships (the internship period is also the period of finding relationships)
Finally, you need a small series of Java basic-intermediate-advanced interview collections and learning materials sharing, then remember to one-click three links (Like+Favorite+Follow)