Tablet PC – A Student's Perspective

One Note, Note Taking and Powertoys

Archive for April, 2008

Interviewing with Microsoft : Part 2 – The Butterflies Period

Posted by anirudhsaraf on April 13, 2008

After I got the interview call, I felt butterflies in my stomach. Literally my stomach was churning. I was excited, true, but I had no idea what to expect. Google search revealed lots of question, which ranged from easy to outright impossible. I had not programmed in C++ for over 2 years, C# was a relatively new language and I was yet to take a formal Algorithms course. To top it I was interviewing for a position in Test – and I had no idea about the formal way to test. I had just learnt that something called Unit Tests existed. Most of my knowledge was on a need to know basis. It’s actually a simple concept I follow to learn.

Step 1: Decide on a project. No matter how absurd it seems, you need to have a fundamental belief that you can make it work.

Step 2: Get excited about it for 2-3 days. Think in very abstract terms (plain English) how it can be achieved. If at the end of the 3 day period I still have the same excitement, then I know that I can make the project happen. It is vital to wait for 2-3 days so as not to have too many abandoned projects. Of 10-12 ideas I generate, at the end of the wait period only 1-2 seem to be manageable and implemental. So for example, for the DoubleHyperlink project I broke it down as

1) I create a new page – Simple I knew how do that.

2) Create Hyperlink to that New Page – Again relatively simple using the API.

3) Insert Hyperlink at the Current Cursor Position – I didn’t know how to do this when I started.

4) Browse to new page – Again relatively simple.

As a rule of thumb, if there are more than 5 abstract concepts I need to figure out – I drop the project. Note : Most of my projects are 2-3 weeks timeframe projects with a full course load of classes. So I don’t want anything too big on my plate.

Step 3: Now I have the basic idea of how to achieve my goal. I just need to gather the knowledge. So I need to figure out how to insert at the Current Cursor Location. This is basically the bottleneck in my project. So my goal is narrowed to one single thing – learn how to insert text at the current location in OneNote. At this stage I break it to more fundamental steps. How can I achieve this, since there is no API to do this. After some though I decided that copy-paste would be the simplest thing. So what I need to do is put the hyperlink on the Clipboard and then Paste it into OneNote. So the whole project was broken down into learning how to handle the clipboard. I googled Windows Clipboard management and spent some time learning the syntax and basics behind how the Clipboard works. Equipped with this knowledge I was ready to embark on my major project.

So back to the main point. My entire knowledge is haphazard, with no structure and I felt totally unprepared to take a technical interview without google at my disposal. I had a week before my Interview date. I was panicking. At this point, of the various people I talked to, the best advice was from John (yes he was the one who “noticed” me) which I will quote below

“The only tip I have is relax. Think of writing and testing your code, and then just do it.No pressure.” – Thanks John 🙂

Although it seems too simple and obvious – I’ll advice everyone interviewing to repeat this mantra 10 times a day. You’ve gotten this far; You know your stuff – and you can’t really do much in a week’s time in terms of increasing your knowledge. I did review some C++ – pointers , linked lists and trees – which seemed to be popular according to Google. And yes I did freak out a little when I read questions which seemed totally beyond my grasp. The only thing I recommend practicing is the WhiteBoard question. Don’t do it alone. Get a professor ( if you can) or a friend to give you a mock interview. Practice thinking out aloud. Trust me, you don’t want your first experience to be in front of an interviewer. The first time I did it ( with my prof.) I was totally tounge-tied – specially after I stumbled. Don’t stress over knowing deep issues like the difference between a class and struct. They aren’t looking at what you know. They are looking for how fast can they teach you. This was of course only clear to me after the interview. As for the actual interview – well you’ll have to wait a few more days for that one !!

Posted in general | Tagged: , | Leave a Comment »

Interviewing with Microsoft : Part 1 – Getting Noticed

Posted by anirudhsaraf on April 6, 2008

I remember saying in one of my earlier posts that I wish Microsoft would hire me without a degree :). Guess what, they did just that. They gave me an offer for an internship on the OneNote team this summer. Woot !!

So, how do you get that coveted intern spot at Microsoft? The first thing you need to do is get an interview. You are lucky if you are in one of the many colleges Microsoft recruits at, but if not what do you do? You try and get noticed !! If you love programming, I am sure there are many projects you work on, many “geeky” activities you undertake. While your friends are getting drunk on Friday nights, you are perhaps cloistered in your room debugging that program which is so close to working. Its 4 am in the morning and your program finally worked. Do you just give yourself the smug smile and move on? Wait, there is another important thing you need to do – tell others about it !! Don’t forget this absolutely essential part. You may be the best programmer, but if nobody knows it, you ain’t getting any job offers.

A simple way to share your achievements is through a blog. Note, I am not talking about starting a blog which shows pictures of you in a drunken state, but a blog which shows your knowledge. Here you can show your knowledge, talk about your projects and get feedback from the community. More importantly, your blog will help you network and get noticed by potential employers.

Other ways to get noticed are by leaving “intelligent” comments on other people’s blogs. A lot of Microsoft people have their own blogs and leaving insightful comments can also help you get noticed.

So go ahead, start your blog ( there are many free blogging services), talk about your projects and about your insights into programming, and sooner or later (if you are worthy 😉 ) you’ll get that interview call. But just remember, don’t do it for the interview call, do it for your passion of programming.

Posted in general | 3 Comments »