From my experience in technology - Part 3

Megha Aggarwal
codeblooded
Published in
6 min readJun 30, 2018

It’s an important time for 2nd and 3rd years pursuing their B.Tech. because post the vacations they will be facing companies for their internships and placements respectively. This naturally comes with lots of doubts and questions. This blog is dedicated to some of your questions and my advice on them. You are free to follow the things you agree with and ignore others.

Resume

I keep a lot of focus on keeping length of your resume to one page. This is important to understand that resumes are summary and they should be brief. Also in student life, we hardly have much to write on resumes. So, we should keep the length to one page. Also, I would advise to give attention to clear formatting and more readability of resume.

Since, I have been asked this question many a times about internship inclusion in resume. My advice on this is to add whatever add value to your resume be it anything. Common sections of resume are education details, projects, work experience/internships, achievements, skills and extra-curricular. Other than education, everything is optional but recommended. If they don’t exist, it doesn’t matter but if it exist, it must add value to your resume.

But don’t add irrelevant things. No one cares if you have 1st prize in drawing in your school but they do care if you have contributed to success of a website or even if you learnt from it’s failure.

It’s important to understand the company you are applying for, job and expectations and then tailor your resume according to that.

General procedure

So, what procedure most companies follow is there is an online test, then some tech, non-tech and HR interviews and Group discussions (GDs) somewhere in-between. Some companies do follow a different procedure but it’s almost the same. Generally, a company has overall 5–6 rounds some elimination and some not. Off-campus companies may also go for resume shortlisting.

Prep special (coding & basics)

Practice makes a man perfect! And coding needs a lot of practice, dedication and patience. There is no end to it. More and more you practice, the better you become. But there is an important thing to note, that is, you should practice all types of questions and just not focus on one thing.

Arrays, linked list, trees, strings, DPs, Sorting, stacks, queues, recursion, hash maps, etc. are important and should be practised well with lots of question. Other than that you should also learn about graphs, tries, greedy technique etc. which are asked less frequent but you can expect them. And going further you can practise techniques like bit manipulation, number theory, etc. These are not asked frequently but it’s good if you know about them as well. I was asked a question in one of my interviews where practise of bit manipulation helped me a lot.

One thing I would want to mention is to be clear with basics. Often it happens in interviews that they don’t want you to use pre-built classes of say Hash maps. Hence, it’s important you know the basics.

Platforms for practice

This is highly of personal choice but I prefer to go for GeeksForGeeks only for learning new things and not practice. It’s a good platform to prepare for multiple aspects like technical questions, puzzles, company specific questions.

For practice, I prefer Hackerrank and Hackerearth. They have good variety and quality of questions with different difficulty levels. Also, many companies use them for their test, so, it helps in platform familiarity and often saves your time during test as well.

Again, also participate in contests held on these platforms regularly. It has helped me a lot to participate in that competitive environment in terms of timing, ranking, mix of questions, etc. It will help you prepare for a lot of things.

Interview

I am going to focus on paper on code in this one. Everyone prepares for online test to be given on computers but no one prepares for paper on code during interviews which is different and important as well. Writing paper on code, not just tests your technical capability but also how you make it understandable to other. Variable names, function names, built-in functions (not allowed sometimes) etc. are just some important aspects which are important when you code in front of others which are probably we don’t care about when we code on computers.

Do you know that now comments are not recommended in code? It’s because that now, it’s recommended to have your code self-explainable without the use of comments.

Off-campus

Some of the people that I have seen getting hired or offered interns off-campus are via online tests on hackerrank/hackerearth, GHCI & GHC resume databases, start-ups, hackathons, etc.

I, myself, has gotten offer from Visa through an online test on hacker rank. I was also offered internship from LinkedIn after winning one of their hackathons. Also, I have seen people getting offers from company like Microsoft from GHCI.

Microsoft special (I am working for) * my experience

There were 5 total rounds that happened for Microsoft.

First Round (Online Test): It was held on Cocubes for which credentials were given on the same day of test. There were 3 questions of very easy level. The questions were somewhat like this:

Ques 1: An element is represented by feet and inch and its height is equivalent to 12*feet + inches. In array of such elements, find the max height.

Ques 2: A string is such that it consist of binary digits or characters ‘A’, ‘B’ or ‘C’ (represent operations). A represents AND, B represents ‘OR’ and C represents ‘XOR’. What will be the output of the string. Sample input : 1A0B0C1A1

Ques 3: A binary tree is modified such that each node also contains Parent Node in addition to left child and right child. Given a node, you have to find the next node in in-order traversal of the node. (Note: Recursion wasn’t working in this case.)

Second Round (Group Flier): This round happened in the seminar hall. In this they asked the mentioned question and we had to write answer on the paper. There were a bunch of people and we have to explain our answer to one of them. So, the first test of paper on code.

Given two character arrays, check whether one array is rotated version of another or not. Boundary Cases were focussed. You are not allowed to modify the array or use string operations. Complexity was supposed to be O(n²).

Third Round (First Technical Interview): Interviews are general discussions type. They asked me a bit about me, gone through my resume and asked about one of my project. Other than that, I was asked these two questions:

Ques 1. Flatten the tree to doubly linked list such that pointer to left node points to predecessor of node in in-order traversal and right node points to successor of node in in-order traversal.

Ques 2. Find the majority element (appears more than n/2 times) in array. No extra storage space to be used or do it one scan of array.

Fourth Round (Second Technical Interview):

I was asked this question in this interview. There is a class which consist of Name, Contact, Email. If two objects have at least one of the fields common, there are considered same. Print all same contacts. I gave multiple approaches and was asked to code any one of them. My approach was not optimal, so, with a slight variation my code becomes more complex using lot of space. (Hint: It was a graph question, figured it out in the end.)

Fifth Round (HR Interview): In this round I was discussed about one of my projects. I was also asked about the difficulties I faced during the project and how I tackled them. Other than that I was asked a question which was to code base 64 encoding (converting data from chunks of 8 bits to 6 bits). He explained to me what it is and then asked me to code it. The whole interview revolved around how I solved the problem and optimisations. Bit manipulation, I had done before helped me a lot during this interview of mine.

After this, I got to know that I was hired. :P

Questions from you

How to start with the internship preparation?

I have very much covered this. You should practice data structures and algorithms a lot with your basics clear. Also, should know about your subjects. Practice technical questions and puzzles as well.

What all things we need to focus more on?

Practice. Of data structure and algorithms.

The level of coding we should do?

The far you can go but making sure your basics are clear. They are very important.

I am offering advices on resume (in July probably) but expect a delay. You can mail me your resume on meghaaggarwal493@gmail.com with subject tailoring to tell that you want advice on resume. You can find mine a little older resume here.

--

--

Megha Aggarwal
codeblooded

Software Engineer, Googler | Ex-Microsoft | Ex-Director, WWC-Hyderabad