An interview is a rather interesting process, regardless of which side you are from: conduct it yourself or interview you.
I want to share with you my observations and experience. It will be about technical interview (TI - technical interview) and the subsequent stages of hiring a candidate. We will analyze this action from two positions: the interviewer and the applicant, respectively. We will try to understand both sides together, understand the subtleties of the process and, as a result, give general recommendations for both sides of the interview process. I will do this in an abstract form without reference to a specific programming language. So let's start, perhaps.
')
Party: Interviewer
Interviews are of two types: a blitz survey and a full TI.
The quiz is a short poll of 15-20 minutes, in which questions imply the simplest answers. This is done to save time. According to the results, conclusions can be drawn, it is worthwhile to invite a person further for a long TI or not.
With a lengthy interview, everything is more or less clear.

Most often, such a conversation has a structure.
Basically it consists of 4 parts:
1. Experience.
2. Theory.
3. Knowledge of programming language and assistive skills.
4. Logical tasks.
ExperienceQuestions are asked about previous (including this) projects and technologies used. How was the code covered with tests? What tests were: modular, mock, integration, etc. Also discusses the most interesting, in your opinion, the project. The questions at this stage are mostly simple, even though they are tricky. Such as: “What difficulties did you encounter?”, “How did you solve these problems?”. All this is necessary in order to check how you deal with difficult situations.
TheoryMost interviewers do not ask the theory. In my opinion, knowledge of the theory shows how well a person masters a new material, and also knowledge of the theory determines the general cultural level of a technical specialist. This part may include knowledge of data structures, algorithms and notation of estimates of the complexity of algorithms.
Knowledge of programming language and assistive skillsIt's all clear. As much as possible questions about language constructs, frameworks and life situations (with an assessment of the complexity of implementation, of course). Also may be interested in auxiliary skills, knowledge of other languages ​​(SQL, PL / SQL, bash), ability to work with specific software.
Logical tasksLogic and logic again. Abstract tasks for finding a solution or getting a result. For many employers, this is a rather controversial issue; some need just good performers. However, logic, together with analytics, allow us to find better and more correct solutions for various tasks.
General recommendationsLet's highlight general recommendations that can help beginning interviewers. What could it be?
• Decide what you expect from the person you are looking for in a team.
• Prepare questions to be asked in advance. In this case, it is advisable to answer them yourself if necessary If you do not want to look untenable and undignified in the eyes of the candidate, be sure to ensure that you yourself know the answers to the questions asked.
• Stick to the structure. This is important for a technical interview. The structure helps the candidate to focus, rather than remain in an abstract state, so you get answers that show exactly the candidate's knowledge.
Party: Applicant
The process of finding a job, and accordingly, the interview on the part of the applicant is more difficult, in my opinion. It is important to make a good impression and be able to sell yourself. After all, often the interview process is a sale, where the goods are you, therefore it is very important to properly market yourself. What can you do?! The way it is. Try not to be nervous. What else is important? Let's try to find out.
The first thing HR and interviewers see is your resume.
The summary should be short but informative. Here is an approximate form of what a resume should include:
A. Last Name, First Name, Patronymic.
B. Desired position.
C. Contact information.
D. Education.
E. Knowledge of languages. In my experience, mostly English is needed.
F. Experience. Job descriptions should be in reverse chronological order (from current to first). For each place of work, make a brief description of the project on which the work was done, explain which part of it you worked on, and which technologies were used. It is also important to note their achievements in this position.
G. Recommendations, if possible.
H. Courses and certificates.
I. Personal achievements. Here you can include your projects that have been implemented by you. Links to github.
J. Personal qualities.
Preparing for the interviewPreparation includes primarily the study of the material. Look for frequently asked questions for the desired job, you will find a lot of things on the Internet. There are articles and even books that allow you to identify such questions (I'll leave a couple of links at the end). Be prepared to be asked to write code or even read and explain someone else's code. Sometimes they may ask a few questions in English.
Questions you ask the interviewerAsked questions show interest on your part. It is very important. The absence of questions is a small bell for the interviewer. You can ask many different questions: about the company, projects, the qualities of the candidate, the team, etc. Try to find out all the points of interest to you in advance.
Interview resultsTake a notebook or notebook with you for an interview. It will be possible to record questions in it, the answers to which you do not know. In the future, it can be very useful to you.
Subsequent stagesNo less important are the subsequent stages of employment. This can be an interview with PM (PMI - Project Manager Interview) or a meeting with a customer. At such meetings, very different qualities of the candidate can be assessed, they are often called Soft Skills.
These include:
• teamwork skills
• readiness / ability to learn new things in the shortest possible time
• a responsibility
• organization and discipline
• speech structure
• ability to work with the Client and with the Business
• non-conflict
• focus on results
• communication skills and ability to show oneself, “get together” at an important meeting
• ability to make informed decisions
• sincerity and moral side in relation to the previous employer.
Try to keep yourself open here and answer questions clearly, without florid deviations. “Liquid” answers do not give an idea of ​​your interviewer about you, so he will ask you additional questions from different angles in order to assemble a mosaic.
General recommendations• Make a correct resume.
• Always get ready for a meeting.
• Be punctual, never be late for an interview.
• Prepare your questions in advance. Imagine different conversation scenarios and be prepared for possible questions so that nothing comes as a surprise to you.
• Do not worry. This is just a conversation. New acquaintance.
CONCLUSION
As promised, he described everything in the abstract, without reference to specific programming languages.
The questions asked for the interview will not write, it will be dishonest. You will be helped by helpful links ...
USEFUL LINKS
I.
www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/ref=dp_ob_title_bkIi.
javahungry.blogspot.com/2013/06/top-25-most-frequently-asked-core-java.htmlIii.
www.javatpoint.com/corejava-interview-questionsIv.
www.cs.cmu.edu/~adamchik/15-121/lectures/Algorithmic%20Complexity/complexity.htmlV.
spb.hse.ru/career/resumeMaterial author:
Evgeny Davydov, developer
krazzz