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

Imagine I will read it in 5 years(part II)

It is a war and those who fight and survive might become heroes of tomorrow. Top inspirations I learned from this crisis are as follows: 1. As a company or a government, risk management is super important. Those who manage the risks well and planned ahead could possibly overcome hard times and survive strong. One of the key principles for risk management is to distribute the risks over multiple buckets. To a B2B business or country, the key competitiveness would lie in supply chain management, getting the right suppliers and deliver to the end buyers. In the past, the key decision will be primarily influenced by the cost factor. In a low-risk environment, it would be fine. However, in a high-risk environment, this may break, and cost could be much less a factor than the following two factors: The reliability of the supplier The alternative choices in case of the supply chain breakdown. This reminds me of the fruits suppliers in SG's supermarkets. Even for oranges, it c...

IPAD/FB Seminar- Thoughts on Pulse News

Monday's presentation was full of interesting sparks. Of all the eleven teams, only one chose to present FB app, which is Sims Social. The others all chose to present ipad apps. That's not so surprising as Ipad(Tablets) is the most recent platform and there are a lot of blank spaces for us to fill in. The ten ipad apps shared in the seminar covers various fields like e-payment, news-media, education. What surprised me most is that many of us find education a very promising area for mobile app development...As ipads are being utilized as an educational tools in various educational levels, education is really going to be a great pie. Wait, I need to finish comments for my assigned app first. Pulse News, a news media app with good social features. News media are getting more social and mobile and probably "cloudy" in the recently years. Organizing news media contents can be a promising area since there are always interesting things happening around and people just have...

Pause and Retrospect

I recently enjoyed a swift lunch with an old friend, who was once my roommate during our school years. We had an in-depth conversation about life and career. To my mind, his thought process is far more mature than mine, and his decisions seem more future-oriented. Although our conversation was private, I believe certain insights should be shared with a broader audience. 1. The Role of Luck in Life.  His life experiences have significantly highlighted the impact of luck. While I'm not ready to accept this fully, similar sentiments have been echoed by other successful and wise individuals I've interacted with. I also recently watched an informative video that lucidly explains the 80/20 rule and the principle of luck. The video demonstrates through "agent-based modelling" how the wealthiest person isn't necessarily the most talented but is usually someone of average talent who encounters multiple lucky events in life.  I agreed that luck indeed plays a vital role and...