The Different Types Of Interview I Encountered
If you prepare and perform well enough in the preliminary phone screens, youll be given the opportunity to come on site and conduct full days worth of interviews. These interviews will typically last four to six hours depending on the company for which youre interviewing with.
During my trip to Silicon Valley, I managed to line up seven on-site interviews in total. This gave me a unique perspective of the current landscape for interviewing.
Typically, an on-site will cover three main subjects: algorithm, architecture design, and behavioral, which is what I had studied and prepared for. However, there are some companies which seem to be bucking this trend and expanding their interviews to cover more practical skills.
Ill briefly go over each of the topics I encountered.
The most common type of interview you will encounter. The interviewer will ask you to solve a problem on a whiteboard which will assess your knowledge of data structures, sorting algorithms, recursion, time/space complexity analysis as well as pattern and edge-case recognition. In this interview, you will most typically come up with a brute-force solution, and then try to improve upon that solution and discuss the tradeoffs, if there are any, with the different solutions you propose.
Architecture Design Interviews
Finding and Patching Bugs
Testing Domain Knowledge
Understanding Operating Systems
Interviewing Is A Skill
During my preparation, I always knew that interviewing would be challenging. But I honestly had no idea how hard it would be until I was knee-deep into my first interview.
In the lead-up to the interviews, I had used both paid and free services, which simulated coding and whiteboarding interviews over the phone with people who had industry experience interviewing candidates. Those practice interviews were essential for priming me for the pressure involved. But as I later realized, they only amounted to a fraction of what a real interview consists of.
Id advise against interviewing at your dream job without having a few mock or real interviews under your belt. The nervousness can be incredibly overwhelming, and it can only be dulled through practice.
As with many other things in life, practice will improve your confidence.
How You Should Prepare
As I wrote earlier, interviewing is a skill of its own. Even if youre already a great programmer in your day job or getting great grades in your studies, those skills wont exactly transfer 1:1 when youre in a tiny interview room. Persistence, repetition, and consistency with interview preparation and practice will be the key determining factors of your outcome.
If anyone were to ask me what I felt would be areas to focus on, Id suggest the following:
- Learn to write code by hand on paper and a whiteboard first and then throw it into an IDE for syntax highlighting, this should become second nature to you.
- Develop deep knowledge of data structures, their strengths, and weaknesses in comparison to each other. I discovered that implementing data structures and their behaviours from scratch taught me so much more than what I knew from their abstract concepts.
- Completely understand Big O notation for both time and space complexities, this will pair perfectly with your algorithm and sorting questions.
- Grasp all major sorting algorithmsbecause the difference in time/space complexities have the potential to derail your optimum solution for an algorithm youre trying to solve.
When to start
If this article was helpful, tweet it.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
freeCodeCamp is a donor-supported tax-exempt 501 nonprofit organization
You May Like: Prepare For System Design Interview