Job interviews | How to pass technical interview
Job interviews are an important and essential process for starting any new business in any company, but in the field of programming and technology, these interviews come with more details. Given the intense competition in this field and its continuous development, companies often ask applicants to take a test that proves their abilities and knowledge. These interviews are called Technical Interviews.
Since you are reading this article now, you definitely already know what technical interviews are, and you may soon apply for one of the jobs you want to prepare well for, don’t worry, you have come to the right place to learn how to pass these interviews!
What do technical interviews include?
Since the purpose of technical interviews is to prove your skills, they often include software problems that require a solution from the applicant in a correct manner so that the appropriate algorithm is chosen for the solution, but this does not mean that they contain complex puzzles or questions whose solution is almost impossible, but rather these interviews provide practical questions and problems You may encounter it while working as a programmer.
In most cases, there are a few stages in the interview process, which are divided into:
- A live remote interview, where the software team manager will often talk to you, who will become your boss if you are hired, or in the case of large companies, an employee from the human resources (HR) department will contact you.
- A home test, in which a software problem or a simple application is presented and requested within a certain period of time.
- A direct technical interview, which usually takes place in the company’s building, in which a few software problems are presented and the applicant is asked about solutions that can be implemented.
Technical interview stages
Remote interview stage
If you have reached this stage, it means that your CV and experience have been impressive, congratulations! The most important thing at this stage is to make a good impression on the other party, so be honest and friendly as much as you can. occupation and field in general.
remote testing stage
At this stage, you are tested by presenting a problem that requires an optimal solution from you, so you must constantly sharpen your programming skills and knowledge of algorithms through continuous training and learning. This stage often has a deadline for handing in your solution, so investing your time at this stage is very important.
Direct interview stage
congratulations! You’ve come a long way and now it’s time for a face-to-face interview. At this stage, you will be evaluated based on three aspects: the technical aspect, the behavioral aspect, and the logical aspect. It is very important to be fully prepared in all these aspects.
Perhaps it is the most prominent aspect of the interview. After all, it is called a “technical interview.” The person interviewing you at some point in the meeting will present a software problem/exercise and ask you how to solve it, or will ask you to explain to him how an algorithm works or what is the principle of a data structure Certain, so of course, you should be prepared for all possible questions, and practice some important and frequently used algorithms, the most important of which are the following:
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Longest Common Subsequence
- Longest Increasing Subsequence
- Backpack Problem 1/0 Knapsack Problem
Sorting & Searching Algorithms
- Binary Search
- Quick Sort
- Merge Sort
- Knuth-Morris-Pratt Algorithm
- Fenwick tree/ Binary Tree
- Statistical tree
- Hash Table
- Stacks & Queues
Of course, there is more and more, but I have mentioned the most important ones.
Besides technical skills, your behavior as an employee is very important to the company you will join, so there will be attention to your appearance and body language as well as a few questions for you to answer, such as:
- Talk about a time you failed and how did you deal with your failure?
- How do you keep your tasks organized?
- What would you do if you disagreed with your boss?
- Who has had the greatest influence in your career/who has been your role model?
Be good-looking and professional, as the person who interviews you will often judge you within the first ten seconds of the interview, so it is important to be your best when interviewing and don’t forget to smile!
Similar to the technical aspect, a problem is presented and the applicant is asked to solve it, but this time the focus is on the mental abilities and intelligence of the applicant, as their ability to solve problems and think outside the box is examined.
Now that you’ve gone through all the stages of the technical interview, you’ll be asked to wait while they tell you the outcome, at this time try to be patient, send an email thanking the interviewer, and let them know that you are grateful for their time and the company for showing interest in your skills and in your person.
And keep in mind that this is not the last job in your career, so even if you get rejected, accept it and be proud of yourself; Because you’ve come this long, consider it an exercise in your later interviews.
For better chances, here are some tips
- Take some time to obtain more information about the company, whether from the Internet or from acquaintances who work or have previously worked in the company. Knowing the company and making the person who interviews you will add to your final result.
- Don’t be like a robot, many people act more assertively and seriously in job interviews than necessary, let the other party see that you are human and let them see some of your personality.
- Prepare your previous projects that you have completed, as the interviewer always wants to know what you are capable of doing and what you have accomplished.
- If the interviewer asks you at the end of the interview any questions you have in mind, this is your chance, ask him about the work environment and the company in general and show a clear interest.
- Do not panic if there is a question or a problem unless you know how to solve it, discuss the stages of your thinking about the solution with the interviewer (think out loud) and rule out the impossible solutions. And of course, make sure you fully and completely understand the question before trying to answer it and ask about the question as much as you can.
- Don’t use a negative tone when talking about your past experience in the workplace or with certain people, just say that things didn’t go well.
- Practice, practice, and then practice. Programming is a skill like any skill. If you continue to train and practice, you will become good at it, but it takes a lot of time and effort, so be patient and serious in the training process.
Resources to help you practice for a technical interview
- Coding Interviews University is a GitHub repository that contains the most prominent resources in a coordinated and organized manner, from training courses on data structures as well as specialized things to some general advice and how to obtain and prepare for the interview.
- System Design Primer, if you are in an advanced stage (i.e. you will join a job with a very specific and specific job title), the interview will most likely include some questions about systems design, this repository explains the process and its principles from start to finish and with the appropriate sources.
- Hiring Without Whiteboards This repository contains a list of companies whose interview and selection process is appropriate and not exaggerated.
- Pramp, short for Practice Makes Perfect, is a free interactive site that allows you to practice the usual technical interview questions with your friends.
- InterviewCake, a site that sends a software challenge almost every week with its solution to your email and provides training courses to explain the principle of the solution and more, but it is not free.
- InterviewBit, a site based on the principle of gamification to train the user on a set of questions and exercises similar to SoloLearn.
Thus, we have handed you all the golden keys to success in any technical interview, and perhaps the most important key that we did not talk about is self-confidence and your abilities as a programmer and trying not to stress or show any kind of distraction or distrust, we hope that you will be accepted in this job!