Tsinghua Telecom has summarized the experience of autumn recruiting for the giants of Tsinghua Communications, and it is too strong to harvest the back-end SP/SSP offer of major Internet companies!


Author | Programmer Feng Ge

Source | Programmer Feng Ge

The Tsinghua Xueba in the learning group only had Java basics at this time last year. Later, he helped him develop a learning route to start learning and participated in the spring internship. .

Personal situation

TOP 2-985 Master. Bachelor's degree in electronics, master's degree in communication. Basically, what the laboratory does is communication. In terms of computer basics, I learned a little bit of C++ in my freshman year, more accurately C with classes, and a little bit of machine learning in the graduate level.

In the autumn recruitment of 2021, I got offers from Tencent WXG, Ant Financial, ByteDance, Meituan, Kuaishou, Shopee Singapore Development Post, and they are basically SP/SSP.

Job selection

When I was in the first year of research, I planned to go to an Internet company to do technical work, and I have been entangled in the development/algorithm. After all, it was when the AI ​​industry was taking off rapidly. I have also seen many related posts on Zhihu. Later, considering that the algorithm is getting more and more volume, many non-subject majors can be transferred to the algorithm post, and the competition pressure is high. In addition, the laboratory tutors did not let internships, and it was difficult for non-disciplinary classes to produce algorithm top-level articles, and finally chose the development position.

In fact, in this year's autumn recruitment, the sentence "choice is greater than effort" was once again confirmed . The classmates who choose to develop by my side basically have offers from big factories such as BAT. However, due to the small number of hc, high competition and extremely serious internal roll-out for algorithmic positions, it is more difficult to get offers from major manufacturers than development. For example, one of my roommates faced Tencent's algorithm job on three sides before being told that there was no hc in the department.

In addition, the AI ​​industry has become calmer year by year, and many AI companies must let their businesses land in order to achieve corporate profits. Secondly, the salary of AI jobs is not as crazy as in previous years. Many big factory algorithm jobs are basically the same as development jobs. Therefore, if you are not fully competitive, it is still recommended that you choose a relatively easy development position, except of course the big guys.

In addition, in the choice of C++/Java, I chose Java, which is in greater demand. In fact, in school recruitment interviews, the interviewer does not care about your language. Just choose a language and master it well. What language is needed in the formal work can be learned after entering the job.

Learning route

After I decided to take a development position, I referred to the learning experience of many people who came over, starting with Java basics, then Java concurrency, JVM, MySQL, Redis, and finally the frameworks commonly used in the Java back-end ecosystem, such as Spring, Zookeeper, SpringBoot and many more.

In addition, computer networks, operating systems, and data structures and algorithms are also required knowledge points in interviews, which require effort to learn. Especially in terms of algorithms, during the interview, there will be an assessment of writing code questions on the online web page, and it will take up more than half of the interview time, which requires intensive preparation.

In terms of algorithm learning, after simply flipping through the "Algorithm (Fourth Edition)", you can scan "Sword Finger Offer" several times. At this time, you can basically deal with the interview questions of the small factory. In addition, it is recommended to finish the "Programmer Code Interview Guide: The Best Solution of IT Famous Companies Algorithm and Data Structure Questions (Second Edition)" by Zuo Chengyun. At this time, Dachang’s interview algorithm questions are basically no pressure, and the written test is also Basically it can pass. If you have free time, you can take a look at the Leetcode classification exercises summarized by the predecessors on GitHub. I refer to https://github.com/dingjikerbo/Leetcode-Java. This repo is very comprehensive, and the evaluation of the algorithm will no longer be a difficulty in the interview after brushing.

Interview preparation

During the interview, in addition to the hard work of algorithmic questions, more than 80% of the knowledge points are frequently tested, which is what everyone calls "eight-legged essay". Before the interview, you can go to Niuke.com to check the company's interviews, or the pdf version of the interviews compiled by others. After reading https://github.com/jianghui-galaxy/Interview-Notebook and the Java tutorial given by Feng Ge several times, I am thoroughly familiar with the common "eight-legged essays", and the basic knowledge questions and answers are basically stable.

In addition, if there are items on the resume, it will also be a bonus item. The interviewer will inquire about the items written on the resume in detail, so don’t write every sentence on the resume, especially if you don’t know anything about it, don’t write it on the resume.

However, it should be noted that the main highlights of the project should be pointed out in a refined resume. If it is a project done during the internship, it can also indicate the project benefits (such as reduced service delay, increased ROI, increased concurrency, etc.), etc. Wait.

If you don’t have an internship experience, you can also refer to many project tutorials/videos on the Internet and make one yourself. After you figure out the main difficulties in the project, write it on your resume. I would like to thank Brother Feng for checking my project!

Spring recruitment process

The following summarizes the course of my spring recruitment.

Byte beating

  • one side

    • Algorithm question: Binary tree depth (recursive + non-recursive two methods), the best time to buy and sell stocks

    • Project question

  • Two sides

    • Algorithmic questions: circular linked list, handwritten quick sort

    • Project question

    • TCP three-way handshake, memory paging segmentation mechanism, database index, Java memory management

  • Three sides

    • Algorithm question: subset

    • Design question: Short link URL design

Ant Financial

Since Ant Financial took 1.9 A in the written test (a total of two), there were no algorithmic questions on one or two. In addition, Ant was interviewing on the phone. Suddenly a phone call came when he was eating hot pot at home. Later, Pi Dian Pi Dian cleaned up and went to the interview.

  • one side

    • Project question

    • Common eight-legged essay

  • Two sides

    • Laboratory work, article questions

    • Didn’t ask a little about Java-related content, it may be a better answer

  • Three sides (intersection)

    • Algorithm question: right view of binary tree

    • Ali's intersection should be the process that must be followed to rank A, and the interviewer is more familiar. Mainly I asked what the laboratory did. Then came out an algorithm problem, let me dictate my thoughts. After the idea is ok, let me write it after the interview and send it to him 

Tencent

I originally voted for WXG for the internship. Later, WXG called me and asked me if I would like to go to Guangzhou for an internship. It was too far away and refused. Later, the resume was aged by PCG, and the interviewer said that he mainly worked on Tencent Sports. I feel that the department is relatively ordinary. After passing the first and second sides, I refused the follow-up interview and prepared to fight WXG again in the autumn. Tencent’s interview is also very hard-core. Every time the interviewer opens the IDE to write questions, and 90% of the interview time is to write algorithm questions...

  • one side

    • Algorithmic questions: string to integer, rotation matrix, flip binary tree, handwritten quick sort

  • Two sides

    • Algorithmic questions: Edit distance, the longest substring without repeated characters, rand5 implements rand7

  • When I called on three sides to make an appointment, I refused

Meituan

Meituan also did a written test in advance, so it didn’t take algorithmic questions during the interview.

  • one side

    • In-depth questions about Java language related features, including reflection implementation principles, Java @ annotations, etc.

    • Since the project mentioned distributed locks, I discussed distributed locks with the interviewer in depth... It is worth mentioning that I wrote on my resume that distributed locks are used to prevent cache breakdown, and I have seen many related issues before the interview Technical articles. But the interviewer said no. I was stunned at the time. I knew that the interviewer was wrong, but instead of arguing with the interviewer, I said "I will understand it after the interview." I gradually faded out of this topic and moved. To the new discussion point.

  • Two sides

    • The interviewer did not ask about Java-related things all the time, and kept asking about the work in the laboratory. After chatting and chatting, I found that the interviewer was also born in communications. Huawei came to Meituan after a few years of work. Then we talked about stocks for a long time...

Meituan’s technology has only two sides, and hr’s letter of intent dragged on for a long time... After I took the initiative to ask the interviewer, hr called to communicate with me that night.

quick worker

  • one side

    • Algorithm question: a typical dfs, linked list intersection problem (see Zuo Chengyun's book)

    • Ordinary eight-legged essay

  • Two sides

    • Algorithm problem: Combine K ascending linked lists, ski resorts (dfs)

  • Three sides

    • Ask the work of the laboratory...

Chunzhao only met with the above companies, and then chose to practice in ByteDance.


Autumn Recruitment Course


Byte beating

  • Reply

    I briefly reported on the work done in the internship, and then the rating was better, and I added a round

  • Turn positive

    • Design question: The specific scenario is a bit troublesome. The main problem is to randomly select one or more numbers at a time according to the known probability distribution. The solution is to determine the position of each point in the interval [0, 1) according to the known probability distribution, and randomly select a number in [0, 1) each time to see which two points the number lies between. can.

    • Wrote a simple SQL statement.


Ant Financial

  • Since the spring recruitment passed, the autumn recruitment was finally through train, and there was only one round of interviews. Mainly introduced the previous internship work in ByteDance.


Tencent WXG

There are a total of three rounds of interviews, all of which are very hard-core, and each round is basically two hours.

  • Departmental side

    • Directly posted three Leetcode links. One easy, one medium, one hard.

    • I asked in detail about TCP, paging segmentation, Linux, consistent hashing, cookie/session, MySQL, Redis, and so on. I asked each knowledge point in depth, and I asked until I couldn't. . . I felt that it was the most difficult interview of the autumn recruits, and I still had lingering fears after the interview... After the interview, the interviewer directly informed me that I passed the interview, entered the interview session of the interview committee, and reminded me to prepare for algorithmic questions.

  • Face to face

    • The first question: The fastest way to find a sequence of numbers with a repeating number> 1000 in an ordered array is directly second

    • Question 2: Fill in the blanks for string wildcard matching. It hurts a little bit at first, and finally wrote it after thinking about it for a long time

    • Question 3: Reverse order, direct seconds

    • The fourth question: flip the linked list, direct seconds

    • Question 5: A physics-oriented question. Probably the meaning of the question is that a distance is divided into two sections: a flat road and an elevator. You can run for t seconds. Ask you whether it is cost-effective to run on the elevator or to run on flat roads

    • He immediately threw me a link to a Tencent document and said he would connect it again in an hour. There are a total of 5 questions, and they are all done at the end.

    • After the interviewer passed the test paper, there was no problem, and then asked some simple questions about paging segmentation, database indexing, and Redis.

  • Face to face

    • Also directly open the IDE to write questions

    • Question 1: Design an algorithm with probability distributions of 0.1, 0.2, 0.3, 0.4. Similar to byte plus face-to-face questions, because I have encountered it in the interview before, I will kill it directly. Then the interviewer asked to change it to choose two numbers with replacement each time? Just slightly modify the original code. In order to verify the correctness of the code, I also typed a probability distribution table, which was in line with expectations.

    • The second question: similar to the Dutch flag issue, direct seconds


Meituan/Kaishou

It is basically the same as the content of the internship and will not be detailed.

Shopee Singapore

  • one side

    • 算法题:Implement a data structure to support two functions add()/search() efficiently

      Use the Trie tree directly, the search() function gives a case with a wildcard character'*', so when the search function is written, it is ok to write a dfs

    • Design question: Design a library borrowing system.

      The main question is the design of database tables and Java classes. First, think about what needs are there, and then design the tables according to the needs.

    • Design question: login system design

      It mainly talks about the cookie/token method to identify users, the password is hashed and stored after adding salt, etc.

  • Two sides

    • 算法题:Given a string, find out the length of the longest substring which contains at most two distinct characters

      Sliding window + HashMap directly seconds, and then the interviewer asks what to do without HashMap? Pass after rewriting the original code + debug

    • Algorithm problem: a linked list, first print odd digits in order, and then print even digits in reverse order

      Direct spike. The odd digits are printed in order first. Use the recursive stack to store each even-numbered bit, and then print the position after the recursion returns.

  • Three sides

    After briefly asking about the technology, the interviewer introduced their department, mainly chatting.

Autumn recruit summary

1. Pay attention to algorithms: It can be seen that most of the company's school recruitment interviews emphasize the assessment of algorithmic questions, and the assessments are basically common questions. So on the algorithm, we need to work hard to prepare. In addition, attention needs to be paid to the handling of boundary conditions. I reviewed "Sword Finger Offer" three times before and after, read Zuo Chengyun's book twice, and also did 400+ questions on Leetcode.

2. Basic knowledge: 80% of the interview knowledge points are common "eight-legged essays". Find a corresponding summary material before the interview and understand it thoroughly.

3. Try to find someone to refer to: some companies can waive the written test and directly enter the interview process, and you can directly refer to the head of the department you are interested in. If you don’t know the brothers and sisters, you can inquire about the internal push information on the school bbs, Niuke.com and other platforms.

4. Spring recruits are very important! Spring recruits are very important! Spring recruits are very important! Some companies (such as Alibaba) can get the green through train for the autumn recruitment after you pass the spring recruitment, and the autumn recruitment directly participates in the final interview. Moreover, the interview difficulty of spring recruits is often lower than that of autumn recruits. In addition, Spring Recruitment can prompt you to check the missing and fill vacancies in time to prepare for the Autumn Recruitment. Therefore, regardless of whether the intern is not allowed by the instructor, it is recommended to submit the next spring recruit to participate in the interview.

5. After writing the algorithm questions, be sure to write a few test cases for self-test! If there is an error, it can be found in time, and if there is no error, it can also leave a good impression on the interviewer.

6. The autumn move must be delivered as soon as possible, and do not wait until "completely ready" to deliver. One is because some posts have less hc, the earlier the delivery, the easier it is to occupy the hole. The second is that there will never be a so-called "completely ready" state in an interview. You must have confidence in yourself.

7. During the interview, you must communicate with the interviewer, and don't write code alone. If you have poor communication skills, you will be rejected by the interviewer.


点分享点点赞点在看

Guess you like

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