First Technical Interview (The Pre-Interview)

For this post, I wanted to go over my recent interview with Western Digital.  I think this will be helpful for those looking to go into their first technical interview, just as this was for me.

The Pre-Interview


This portion of the interview consisted of two parts: an online assessment and phone interview.

Online Assessment


This portion of the interview process was completed on the website: www.InterviewStreet.com.
Some of you may be familiar with the format, because it is connected with HackerRank, a popular platform used in many coding competitions.  This assessment consisted of around 14 problems, with the last two problems being coding problems.  The rest of the problems consisted of logic problems, some (confusing) hardware table problems, and some understanding programming concept problems.  The two problems given were written into their provided compiler.  The good thing compared to previous assessments that I had to take was that it allowed you to compile your code and test it against input.  Here is what it looks like:


I won't go over the specific questions - but they were simple problems that dealt with arrays and recursion, two core topics that will follow you through any programming interview you do.

My tips for doing the best in this portion of the interview, would be to skim through and do as many of the non-programming questions that you understand.  Then proceed to do the programming portion.  And finally after your sure your coding questions are completed, go back and do the problems that you did not completely understand.  Doing it in this way, you are garaunteed to at least get some points in the non-programming section, while giving you plenty of time to get to the most important part of the assessment, the coding portion.  

Tips for answering the coding questions.  First off start the test with a blank sheet of paper next to you.  You may use this to plan out how you will write out your answer to their problem.
  1. The first thing you need to do while reading the prompt is to write down what you are given and what you should output.
  2. After brainstorming your approach to the problem, you will need to look at what data structures you are given, and what you may need to use.  Brush up on your O-notation for data structures, such that you are able to choose the optimal data structure to handle your operations.  Here is a helpful website to refresh yourself of them: http://bigocheatsheet.com/.  I advise those that choose to use this table to not just remember O-notation, but also understand why each operation has that specific O-notation.  By remember how each operation works, it will allow you to craft an efficient algorithm for the problem.
  3. Compile and Debug your code (in interview street, also don't forget to run on the extra provided cases).
  4. Check the range of your variables.  There has been many times when I was practicing on HackerRank, that my solutions were wrong because there was overflow with int values, that should have been long.
  5. Check your O-notation.  Evaluate how large its O-notation, and always look for a solution at least one order of magnitude less O(n^2) -> O(nlogn), because many of the problems that they ask you will most likely be simple enough for you to complete with an efficient algorithm.
  6. Check for space complexity, and try to utilize as least space as possible, keeping in mind that in some situations you can use in-place methods that would not impact O-notation.  

Phone Interview


There's not much to it.  Just prepare for basic behavioral questions.

Here is a short list of questions you should be prepared for:
1. Questions about your classes: favorite, least favorite
2. Questions about your project: What did you do, what was your part in the project, how was it working with your team.  What were some obstacles you came across?
3. School activities.

Going to wrap of with a last statement.  Be confident in yourself.  Go out and apply!

Comments

Popular posts from this blog

Uncle Bob's Clean Architecture

C4 Model: Describing Software Architecture

Running RabbitMQ with Docker