It has been a month since I came to Microsoft. I am still in the learning stage. I used vue+js for development, but now I am learning react+js+C#.
Keep thinking I can enter Microsoft is one of the luck, surface is very low, have nothing to say, but later found the somebody else a problem when I communicate with people I can always gushing, and even asked whether have face, only to find that, after all I prepare to enter Microsoft time also not short, in fact there are many regrets, experience and I think isn’t worth mentioning, Is also somebody looks forward to, then had this article.
0, description,
The higher the position and the better the group, the harder it will be; The level of the interviewer is different, of course, the way of preparation should be different. So here is a brief introduction of my situation.
I am a graduate student, I learned the algorithm course in school, basic sorting queries can, complex red black tree is also heard of. Two years after graduation, then three years in front office.
SCCM Group, Base Suzhou, Software Engineer (the most common)
1. How many rounds of interviews are there?
There are usually 5-6 rounds in total. It’s a big number. It’s daunting. I was, too. In fact, it can also be regarded as 2-3 rounds, is this less pressure? Why do you say that?
First of all, the first round is to decide whether you have the opportunity to enter the later stages. The form is usually by phone or online. After the first round, you will be arranged for the following three or four rounds of interviews, which are usually connected. The final round is usually the manager interview.
For example, I waited for the results of the first round of interview, and told them a few days later. Then I arranged the second, third and fourth rounds to be consecuted on the same day, and the next day was the manager interview. To clarify, I have arranged 2-5 rounds of interviews at the same time, so it is equivalent to 1+4 rounds. Some people say that the first round of interview determines whether there will be subsequent interviews, while others say that the first round of interview determines whether there will be middle 3/4 rounds of interview, while the middle 3/4 rounds of interview determines whether there will be manager interviews. I prefer the former because I have a friend who is also 1+4 rounds. Each group may be different.
2. What will the interview cover?
Self-introduction, project, basic computer knowledge, algorithm (questions 1-2)
The format of the previous rounds is similar. Basically, I introduce myself first and then talk about the project. I feel that these are hot fields. Generally, an interview time will be controlled in an hour or so, especially after a few consecutive, it is impossible to overtime. So I don’t have time, and I don’t usually give you algorithms that are too hard to implement, like red-black trees. If you don’t get to the end of the algorithm ask a little bit more computer science or add an algorithm extension.
- Self-introduction: Prepare one in English and one in Chinese;
- Project: Mainly talk about their own contribution;
- Computer basics: operating systems, databases, computer networks, I was asked about the difference between processes and threads;
- Algorithms: generally simple and medium difficulty questions in LeetCode, but some groups like to ask design questions, which may depend on the position. Write your own test cases after the program is finished, pay attention to the boundary cases, such as integer negative numbers, overflow, 0 can not do divisor, do addition and multiplication easily overflow, etc.
3, Online interview format
I had five rounds of online interviews. The first round of interviews are online, and the next several rounds may be online, or onsite, depending on the situation. Online is Microsoft’s software called Teams, which lets you video and share your desktop. When writing algorithms, you can use an editor, such as vscode, or sometimes you need a whiteboard, such as notepad.
4, English requirements
This should see post requirement, some post requirement is high, some do not ask, but can read and write is at least. English is not a mandatory requirement for my post. Every round is basically to introduce myself in English and then transfer to Chinese. Of course, it was also my luck that all the interviewers in the five rounds were Chinese. If the interviewers were foreigners, English would be required for the whole process.
5. The algorithm I met in the interview
Originally wanted to write the specific topic, but because our group is still in the crazy recruit, here is a simple meaning, we experience the difficulty and form ~~~
-
Round 1: Summation problems
-
At the beginning, I did not have the train of thought. I put the common algorithm on top of it and mumbled, which was really not thinking and afraid of a cold silence. But the interviewer said that I communicated well with the interviewer in this way.
-
Later the interviewer simplified the topic, I said the idea of the original topic also have ideas;
-
Finally, you implement the hard problem, and then think of a few use cases to run;
-
The interview lasted more than an hour, but the interviewer was very nice, gentle and passed me through the whole process.
-
Second round: Valid value of string
-
After finishing the code, I had to test it by myself, reminding myself of the boundary condition all the time. The interviewer also asked me to think about it again, but MAYBE I was too nervous and missed the negative condition.
-
Be aware of boundary cases, such as integer negative numbers, overflow, 0 not being divisible, easy overflow when doing addition and multiplication, etc.
-
Third round: This round because the first question is relatively easy, so I asked two questions, the second question is silly, but the interviewer did not say anything, but also asked some basic computer knowledge.
-
Numerical problem
-
Recursion problem
-
Round 4: Chess game
-
Finally, I wrote a general idea and explained my ideas. The interviewer recognized the correctness of my algorithm, but finally said that my algorithm would not be feasible if I extended it.
-
Round 5: Whiteboard
-
This round is a whiteboard, on the original could have written simple, because only requires correctness, not efficiency, but because the third round of four rounds of time is not enough, I directly wrote the optimization algorithm, the result was wrong, write a dead loop, because it is a whiteboard, or check and check to find, felt cool ~~~
-
Interested students can experience whiteboard code writing by themselves, simple search and sort, that feeling, just like going out without a mobile phone, all kinds of adaptation, insecurity, and really easy to make mistakes.
6. How much Leetcode should be brushed?
A lot of people will ask if Leetcode is enough, how much is appropriate?
I think it varies from person to person, some people brush 60+, some people brush 600+, let me tell you what I think the measurement standard.
Actually, I’m not sure whether people usually say brush to see or to write.
There are thousands of problems in Leetcode, and I don’t think it’s practical or cost-effective to write every one of them, and it usually takes a long time to do that, and you often forget what you’ve done before.
I think I brush Leetcode for two purposes: to enhance my programming ability and to explore problems
Our usual work is to write code, plus spare time to achieve a few problems, programming ability will be improved, basically completed 60+ problems, for an algorithm can be achieved in the heart of the clear. At this time in fact, just look at the topic to solve the problem ideas on the line, encounter feel a little round, feel that they are not able to achieve the practice, so that the cycle is shortened.
So I think how many topics is appropriate to brush, improve programming ability is the standard, your programming ability can achieve your algorithm ideas when it is ok, and then as much as possible to see the algorithm, expand their own.
It’s really two dimensions, if you have an idea and you can’t do it, of course not; But you have excellent programming skills, but you just can’t think of your own way to solve the problem
7. What preparations HAVE I made and my recommendations
1. Algorithm Diagram
The advantage of such an entry level book is that it will be a great sense of accomplishment to flip through it quickly. I read this book to get an introduction to dynamic programming.
2, Geek time “The Beauty of Data Structures and Algorithms” — Wang Zheng
I paid for the course after reading all the content by clicking on someone else’s share link, which shows how much I like it. Diagrams of Algorithms are also recommended for this course.
3. “Sword Finger Offer”
Microsoft legend will buy from the above questions, C++ implementation and a little difficult, it looks a little difficult, similar to LeetCode, are used for insight questions, but I still prefer LeetCode, I read about half.
4, LeetCode
I originally wanted to brush the simple difficulty again and then brush the medium, too naive, so many topics, or recommend everyone simple medium brush together, even the medium is the focus.
Before the interview, I only brushed (realized) the simple ones, but only found the medium ones after the first round of interview. In the following week, I focused on the questions of such difficulty, and wrote down the questions that I felt could not be realized. By the end, I had completed a total of 70+ questions. Although the number of questions seemed small, it happened that I was also writing about tree structure in the company project at that time, and my programming ability was constantly improving and practicing, so I think the number of questions is not the most important, but the most important is my programming ability.
8, Q&A
-
Are there any testing positions at Microsoft? There is no pure testing position in Microsoft R&D. Generally, we see that candidates with testing background can be promoted in two directions: 1) Customer service support, they can see testing + Good English + people who are willing to deal with customers and do technical support; 2 is “Services Team”, but not always
-
What language does Microsoft algorithm interview use? Microsoft interview does not distinguish between languages, you can use any language to achieve.
-
Do Microsoft posts differentiate between languages, front and back end? Microsoft does not have any Java posts, Node posts, only development posts, after coming in according to the needs of the project will use different languages. And of course there is no distinction between the front and back ends.
-
Is Microsoft hiring a front end? Of course you do. I’m the front man.
-
Is ** looking for product manager? **PM positions are few, occasionally released, generally require rich work experience, and good English.
9, push
You have any questions can also give me a message, just enrich my Q&A ha ha ~
Finally finally, interested to push people can prepare an English resume to send me ha [email protected],,