Explain Concepts Out Loud
Coding concepts are challenging to explain, especially when speaking to someone unfamiliar with the field. When a hiring manager wants to learn about your thought process, they might ask you to explain concepts. Before your interview, explain complex coding topics out loud to a friend. This type of practice makes it easier to recognize how well you understand a topic and what areas you should review. Explaining concepts ahead of time also helps improve your confidence, as you are identifying gaps in your knowledge and correcting them.
Walk Through Your Problem Solving Process
Reinforcing problem-solving patterns goes a longer way than practicing new problems in the hours leading up to your interview. Notice how our coding interview tips article gives you a handy process for solving algorithmic problems:
This high-level, What’s my problem solving process is great to keep thinking about the morning of your interview. And speaking of that morning
Practice With Mock Interviews
The steps mentioned above can be rehearsed over and over again until you have fully internalized them and they become second nature to you. A good way to practice is by partnering with a friend and taking turns to interview each other.
A great resource for preparing for coding interviews is interviewing.io. This platform provides free and anonymous practice interviews with Google and Facebook engineers, which can lead to real jobs and internships.
Doing well in mock interviews will unlock the jobs page for candidates, and allow them to book interviews with top companies like Uber, Lyft, Quora, Asana, and more. For those who are new to coding interviews, a demo interview can be viewed on this site. Note that this site requires users to sign in.
I have used interviewing.io, both as an interviewer and an interviewee. The experience was great. Aline Lerner, the CEO and co-founder of interviewing.io, and her team are passionate about revolutionizing the process for coding interviews and helping candidates improve their interview skills.
She has also published a number of coding interview-related articles on the interviewing.io blog. I recommend signing up as early as possible with interviewing.io, even though it’s in beta, to increase the likelihood of receiving an invite.
Week 11 Os And Concurrency Concepts:
Today, even budget laptops and mobile phone have multiple cores. Understanding concepts like Threads, Locks, Synchronization, etc. are beneficial whether you are building a mobile app or a web-scale service.
Just like System Design interview questions Multi-Threading and Concurrency Interview questions are useful in gauging your level. A junior engineer will struggle with these questions . A relatively senior engineer is supposed to do better in such questions as they would be responsible for writing a lot of code that takes advantage of multiple cores/threads.
C.H. Afzals Multithreading and Concurrency for Senior Engineering Interviews series is an important one to check out, and available in multiple programming languages.
The Technical Interview Process At Faang And Tier
Coding interviews at the biggest companies typically comprise three rounds:
i) The Initial Screen
ii) The Technical Phone Screen
iii) The Onsite Interview
The Initial Phone Screen:
This round involves speaking with a recruiter from Human Resources. After your profile is initially considered, the recruiter gets in touch to understand details about your past experience and technical skills to see if youâre the right fit for the role in question. Expect questions around your stints with past organizations, important projects you were part of, and your professional qualifications.
The Technical Screen – Coding Assignment
The technical phone screen is conducted by a technical recruiter, and involves solving one or two coding problems around data structures and algorithms. The fundamental purpose of this round is to see if your problem solving skills are at par. Recruiters in this round mostly want to understand your approach, how you applied concepts, and how best you arrived at the solution.
The Onsite Interview
The outcome of your technical interview is determined in the onsite. Youâre usually required to go through two or three rounds of interview, one of which is the behavioral round.
The important thing is to prepare for each of these rounds in earnest. Thatâs plainly because your performance in every one of these rounds has to be exemplary if you aspire to land coveted offers at the biggest tech companies.
Recommended Reading: What Will I Be Asked In An Interview
How To Prepare For A Coding Interview
BestColleges.com is an advertising-supported site. Featured or trusted partner programs and all school search, finder, or match results are for schools that compensate us. This compensation does not influence our school rankings, resource guides, or other editorially-independent information published on this site.
Dont Overcomplicate Matters Or Hide Mistakes
Live coding challenges are naturally limited by time and scope. Dont try to cram in a complicated solution and instead stick to a practical one that works even if its sub-optimal.
The most important thing is to show your thinking and explain why you made the decisions you did. At the end of the exercise, you can even briefly explain a more optimal solution.
Dont forget to debug your code, too! If there are any mistakes, theres no need to hide them. Simply explain what went wrong and how you discovered the problem.
Don’t Miss: How To Master Behavioral Interview Questions
Be Helpful But Dont Give Too Much Away
Candidates will ask you clarifying questions during the interview, and this is a good thing. But it can also create a balancing act for you you want to be helpful, but you dont want to reveal the solution or make the problem too easy.
A good rule of thumb is to put the question back to the candidate. If they ask you if their function should be throwing an error for a certain edge case, respond by asking them what they think should happen. Put them at ease by explaining that its up to them: you want to figure out how they would approach this design decision, and theres not necessarily a right or wrong answer.
Its also important to try to be aware of when your human bias might be causing you to interact differently with this candidate or offer them more help. Feeling a sense of rapport with someone is a good thing and a natural human tendency but its not a good thing if that influences the kind of guidance you provide in the interview.
Practice Responses To Behavioral Questions
Behavioral questions feature extensively in programming interviews. Even though this isn’t a coding interview tip, practicing responses to commonly-asked behavioral questions is crucial. Make sure you use the STAR method while practicing answers to behavioral questions.
You can also check some more prep tips on how to prepare for behavioral rounds at FAANG+ tech interviews.
Don’t Miss: How To Dress For A Virtual Interview
Factors To Consider Before Deciding How Long To Spend On Studying For Coding Interviews:
Your knowledge of data structures and algorithms
Extensively covering concepts in core data structures and algorithms is decisive in influencing interview success. Before you start off, take a day or two to sift through topics you have to cover.
Below is the list of topics that feature in technical interviews:
- Arrays, Linked Lists
- Basics of programming and computer science
Sample questionsVideo lecturesIdeal solutions
Draw From Your Experience
Its really easy to take inspiration from a question bank online, but then you end up with a question thats the same as what everyone else is asking. Or, your team could end up with five interviews where everyone asks a similar algorithmic graph question!
If you create a question thats relevant to the work you do, its much more likely to be both unique and interesting. Simply start by thinking about what you do. Is there a toy version of a problem that youve seen in your real work that you can extract and turn into something fun and interesting?
And keep in mind that although its great to make your question unique, it neednt be obscure and unheard-of. If someone has worked on a similar problem before and they recognize it, thats OK. Youll be prepared with your progressively more complex follow-up questions, so you can see where the candidate is able to get from there.
Recommended Reading: How To Conduct A User Interview
What’s The Best Way To Prepare For A Coding Interview
Data structures and algorithms will likely be an integral component of the coding challenges, so it’s important to spend time on those topics when preparing for your interview. Try to mimic the actual interview conditions in your prep: Practice on a whiteboard and set a timer to emulate the time pressure during coding challenges. As you write your code, practice explaining your thought processes out loud.
It’s also key to do your research on the company â this will give you a better idea of what languages, frameworks, and other tech it uses. You can also research the company’s current strategies and goals to best identify and articulate how you will contribute to the company.
As the interview processes for many well-known companies are widely discussed, this research could lead you to specific information about your upcoming coding interview. At Google, for instance, applicants must pass a pre-screen and an onsite interview, which includes meeting with 4-6 Google employees for nearly an hour each.
Remember that while much of the interview will focus on technical skills, there will also be behavioral and soft skill components involved. It’s a good idea to connect to the company’s recruiter to get the full picture of the process.
Lastly, run through a couple of mock interviews. Have a friend play the role of the interviewer or use free mock interview sites like Pramp to practice.
Ask Clarifying Questions First
Hiring managers want to know: are you the kind of person who dives in without all the necessary information? Will you spend hours on a project only to find out your solution didnt solve the actual problem? Technical questions, especially live coding questions, are usually purposefully ambiguous. They want to see if you gather more information so you can account for constraints and potential pitfalls before spending valuable time coding a solution.
You May Like: How To Have An Interview
The Best Live Coding Platforms
Now you know how to conduct a live coding interview. But what are the best live coding platforms? Thats what well look at now.
The features youll want to keep track of include which languages/frameworks a coding platform supports, whether or not candidates can use their own environment, whether the platform also supports pair programming, and customer support.
Making A Plan For Interview Preparation
Now that we have a precise plan, we can start your preparations and we will be more confident and calm right now, since we know exactly what we should repeat or prepare.
Also Check: How To Interview A Person
Live Coding Interview Questions
What are the best live coding interview questions? Depending on the live coding interview platform, you can typically use your own tasks or choose from a task library.
Either way, your interview questions should not be overly difficult. Keep the testing time to around 45 minutes.
The task should be a real-world task something your candidates would work on as part of their job.
For instance, heres a take-home task from our CodeSubmit task library:
As you can see, this task isnt theoretical but asks candidates to develop a real feature. In the same way, you can create a live coding task that asks them to solve a problem or create a feature that they can complete in under an hour.
A few example live interview questions are:
Find the size of a Set in Python.
A Set is an unordered collection data type. The size indicates the amount of memory occupied by a set object.
How do you print multiple arguments in Python?
An argument is a value thats passed within a function when its called. During the time of call, each argument is assigned to the parameter in the function definition.
Find duplicate characters in a string in Java.
To find duplicate characters, candidates count the occurrence of each character in the string. If the count is greater than 1, the character has a duplicate entry in the string.
Remove duplicate elements from ArrayList in Java.
Generate Permutations And Combinations With Itertools
Interviewers love to give real life scenarios to make coding interviews seem less intimidating, so heres a contrived example: you go to an amusement park and decide to figure out every possible pair of friends that could sit together on a roller coaster.
Unless generating these pairs is the primary purpose of the interview question, its likely that generating all the possible pairs is just a tedious step on the way towards a working algorithm. You could calculate them yourself with nested for-loops, or you could use the powerful itertools library.
itertools has multiple tools for generating iterable sequences of input data, but right now well just focus on two common functions: itertools.permutations and itertools.combinations.
itertools.permutations builds a list of all permutations, meaning its a list of every possible grouping of input values with a length matching the count parameter. The r keyword argument lets us specify how many values go in each grouping:
> > > importitertools> > > friends=> > > list)
With permutations, the order of the elements matters, so represents a different pairing than , meaning that they would both be included in the list.
itertools.combinations builds combinations. These are also the possible groupings of the input values, but now the order of the values doesnt matter. Because and represent the same pair, only one of them would be included in the output list:
> > > list)
Recommended Reading: How To Reschedule An Interview
During The Technical Interviews/live Coding Part:
- After receiving a task, do not start right away with coding. First, make sure that you understood what is expected of you. Dont be afraid to ask questions, seek clarification!Ive seen many candidates who failed live coding because they either didnt understand the task or didnt ask enough questions and just made some assumptions never do that.
- Be communicative while writing a code. As youre probably being interviewed by your future colleague, he/she needs to understand your ways of thinking while solving a problem, what kind of approach you take, would you be a good fit for the team, etc. And staying silent does not help in that.
- Listen to what the interviewer is saying. Theyll probably try to help you when youll be stuck or your solution wont be going in the right direction.
- Think about edge cases.
- Test your code.
Review Common Interview Questions
In addition to specific technical questions, hiring managers ask common interview questions to ensure you’re the right candidate for the job. Many of these questions focus on your strengths, weaknesses and overall qualifications. Other questions focus on your job application, resume and cover letter. Common interview questions are not necessarily related to coding but rather evaluate your overall competency and professional attitude.
You can practice your responses to basic interview questions ahead of time and modify them during the interview based on context, such as how the interviewer phrases the question. For example, instead of asking about your weaknesses directly, an interviewer may ask, What are your biggest areas in need of growth? If you have planned an answer to address your weaknesses, you can modify this to address the actual interview question.
You May Like: How To Send A Rejection Email For A Job Interview
Revise The Basic Data Structures
Most problems asked in coding interviews are based on core data structures. Knowing how to implement the basic data structures, including arrays, linked lists, trees, graphs, and hash tables, is enough. While going about revising core data structure concepts, make sure you brush up on how to implement Big-O complexities for problems.
Look at the top to better prep.
I Just Found Out I Have A Coding Interview
So youve applied and gone through the initial interview stages. Now, youre slated to complete a technical interview.
Before you begin additional research and study, ask the interviewer or the hiring manager a few clarifying questions:
- Is there anything about the format I should expect?
- Is there anything about my local coding environment I should have prepared?
- What have successful candidates prepared for in the past?
Get as much information as you can ahead of time so you can focus on the parts of the interview that are in your control.
Next, conduct any research you can about the company itself. More established companies like Netflix, Google, and Spotify have dedicated tech blogs written by their engineering team. Within them, they talk about updates to their products and projects the company is working on. Youll likely manage to find out what tech stack they use internally through these blog posts.
Quora and Reddit are great resources, too, as are Facebook or LinkedIn groups. You will likely find people who have interviewed at the same company or similar. Lean on their experience to know what types of technical questions the company asked and what the interviewee wishes would have gone differently about their own attempt. If not, create your own post in related forums and take in as much first-hand information as you can.
Recommended Reading: How To Ask Behavioral Interview Questions