Skip to main content

About Interview

I went for three interviews these two days. Tuesday morning with Microsoft, midnight with Google for the first round, and Wednesday midnight with Google for the second round. Though the intention for applying those internships is not to get the offers but simply to gain some experience for technical interviews, I still prepare hard for the interviews, hoping to learn as much as possible.

The first round Microsoft interview was conducted in NUS where one HR and one technician flew over to Singapore to give the interview. I had 30 mins with both the HR and the technician. The questions with the HR is the standard interview questions like project experiences+ some brain teasers. The questions are not really that challenging. In case you are interested, I attached the questions in appendix1.

For the technical interview, the technician monitored you to write codes on the spot. The technician this year is a tester from Austin-Taxes working 10 years in MS. I did three questions during this interview, first one with pointers, second one with arrays and third one with bit-manipulations. The first question is to reverse a string in a way that translate"abc def ghi" ->" bca fed ihg". He expected the candidates to be familiar with pointers. One of my friends who also got a string reverse question even though he said that his primary language was Python. That was wired. I forgot quite a number of C++ syntax and also didn't do well in this question. Thankfully I mentioned the test cases to him and that made things slightly better.The second question is to find the number of pairs of integers in a given array that their sum is a given number.arr[]={1,3,4,5,6,7} sum=9->num=2 I wrote the O(n^2) algorithm out and told him how to improve the algorithm and make it faster( sort first, using hashmap,etc). The third question is to count the number of 1s in a binary integer using the bit manipulation & operator. That was easy and I wrote it out in a very short time.

After the interview, I realize that I'll need to review C++ more. C++ is very important. If someone is damn good at C++, he/she should be able to cope with interviews of any big software companies. The result for this interview will be released in 3 weeks and I'll be writing a whole day's codes in Microsoft Singapore office if successfully get passed for the first round. That's gonna be challenging and also a very good way to further improve the programming skills.

After the interview, I reviewed the Cracking the Code ebook again. This book is very useful for preparing big company tech interviews. Thanks to it, my C++ skills get improved within one week.

At the mid-night, I did the interview with Google. I thought it was going to be extremely challenging. However, it doesn't turn out to be that difficult. The interview was conducted in Google docs and we communicated on phones. The first question is to compute the longest length of consecutive elements in an array.  {1,1,1, 3,3,3,3,2,2,4,1,1}=>4. That was easy. I got one issue with the overflow of the last element and then fixed immediately. The second question is to print out the indexes of chars in a string S1 which appears in S1 but not in its sub-sequence string S2. For instance, S1={abcedf}S2={bcd} print out "0 3 5". Firstly, I wrote the codes considering that S2 is a sub string of S1, but later the interviewer pointed out that it's sub-sequence not necessary sub-string. Then I changed the codes into a O(n) complexity algorithm. That was OK. I felt quite confident after taking that interview as it was not really as hard as what I expected.

However, on Wednesday mid-night, I toke another interview from Google and the interviewer changed to be a hardware engineer. I didn't expect the questions to be hardware related. But The first question turned to be "what's the difference between process and thread". I tried to recall the Operating System course but I can only list some points which may not be correct.That made me very uncomfortable.
http://www.differencebetween.net/miscellaneous/difference-between-thread-and-process/.The second question is to design a function to output the best option for text input using a UP-Down-Left-Right-Enter controller. For instance, a screen keyboard contains 26 chars('a','b'...'z'), and the chars will be separated into rows given the width of each row(column size). The user can only navigate using the control bar to go Up/Down/Left/Right, if he/she finds the char, he/she press enter, then continue. e.g., the input text is"xy" and the width of the screen is 5, then the 26 chars will be arranged in this way:
a b c d e
f g h i j
k l m n o
p q r s t
u v w x y
z
The it takes the users to go DDDDRRR and then Enter to input the x and then R+enter to input the y. I implemented it using pointers, but it is different from the interviewer's expectation. There are some bugs in my codes as well.
The third question is unexpectedly to be " You video and audio play nicely in a DVD, but when you play it in a tape, the video and the sound cannot synchronize by all means. What caused the problem? how can you fix that?" I'm totally lost on that. I thought it was the problem with processing the input analog data.Cannot get through further. I found this post now, but it doesn't seem to explain it correctly,either. http://forum.videohelp.com/threads/297810-Video-and-audio-gradually-go-out-of-sync

Never mind, a good experience. Work harder.

Appendix1:
When are you graduating? Are you applying for an internship or full time job?
What's your favorite Microsoft product?
What's your favorite programming language?
What's good coding?(This is a good question)
What's your favorite course?
Which project are you most proud of?
9 balls with one of which light weighted, think about ways to find out that ball using one balance.
Design an alarm for the blind people.(I mistakenly designed for the deaf people,need to hear it more carefully)
Any more questions?
...

Comments

Post a Comment

Popular posts from this blog

InnovFest 2015

I attended the innovFest 2015 event. It was quite eye opening. Besides the booth, some topics in the forums also interested me. The first topic I joined was the Kopi Chat with Yossi Vardi, a famous Israeli entrepreneur and investor. He is straightforward and humorous. When talking about the most important reason why people wake up with a great idea but ended up sleeping without executing anything, he collected answers from the audiences. One answer pretty much fitted his appetite-- "People fear about losing faces". He shared his opinion with the quotes from Theodore Roosevelt, “It is not the critic who counts; not the man who points out how the strong man stumbles, or where the doer of deeds could have done them better. The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood; who strives valiantly; who errs, who comes short again and again, because there is no effort without error and shortcoming; but who does actually st

Thoughts

I've been working as a project manager on an interesting project named " Dadafish " for quite some time. The intention is to create a sharing economy platform for lifestyle teaching/learning. Put in a more straightforward way, an Airbnb for classes. There is one assumption:  People are willing to pay to learn skills from amateur or semi-pros at a lower price. Quite some ongoing arts classes in meetups are taught in cafe shops at 15-50SGD/session. It's an indirect validation of our assumption. There are also many free language classes in meetups and facebook groups. We did an experiment to validate the assumption by introducing a Japanese friend who's organizing a free meetup to teach Japanese. She doesn't have a certificate and she's currently teaching Japanese in meetups for free. The experiment class was charged at 15 SGD/h per person for a 3-4 pax group class. We posted the class and teacher info in a NUS student/alumni SNS group and three peopl

Consistency Matters

I didn't post anything last week, which means consistency has been broken. There's a need to reflect the task management skills, otherwise I'm very likely to driving the wrong road Priority changes. A good exercise would be to list the priorities down everyday and assign reasonable time to the tasks. Then never second-doubt. 100% focusing on the task when doing it. Priority changes from time to time.  Human minds are single-threaded, thus, we'll need to keep focused when doing one particular task. Be Grateful. I received the confirmation from NOC Israel that I got admitted by the programme and I'm heading to Israel next Jan:-) Thanks a lot for Prof.Ben and Karl's help. Ultimately, it might be a plan from God. Thanks every one. The additional interview from Google went well, however, I didn't get the winter intern opportunity this time. Though it's a bit too greedy to ask for too much, I still feel a bit sad after informed that I didn't get th