Home headlines Read what the interviewer thinks when interviewing programmers

Read what the interviewer thinks when interviewing programmers

Nov 21, 2017 am 09:23 AM
thinking programmer interview

Every programmer will experience something in the future - interview. Maybe you were very relaxed during the interview, or maybe it was very uncomfortable. I think a good interviewer is very important, so let's talk about how those interviewers conducted interviews.

For the traditional interview recruitment process, it basically looks like this:

Read the applicant's resume and ask the applicant to introduce himself.

Ask some difficult and very detailed technical questions in a question-and-answer format.

Give the interviewer some and several programming problems. (Such as some weird algorithm questions)

I personally think this interview method is ridiculous and terrible, especially the last two points. Generally speaking, this kind of interview will only allow you to interview some "nerds" or some "technical obsessives". Let me analyze the disadvantages of these one by one.

It is difficult to understand a person from his resume or self-introduction. Because these are all written or elaborated by the parties themselves. Therefore, this is not very accurate. Through the resume, you can only know very simple things, which is far from enough to determine whether you can be recruited into the group. At the beginning of the interview, asking the candidate to introduce himself will only make the interviewer face the entire interview in a very formal manner. Once the interview process is very formal and serious, it will make people feel restrained. In fact, this is not what we want. What we want is the true and natural performance of the candidates, so that we can understand the most real things.

Ask a few questions about technical details. For example: What I have personally experienced - "What does the -a parameter of ps mean?", "What is the command to delete newlines in vi?", "What are the C++ keywords explict and mutable used for?" etc. ,etc. As a job applicant in the past, I hated questions like this very much, because you could just check the manual for such questions. Is he looking for a dictionary and manual? Not alone? For this, it is not the knowledge that matters, but the ability to find it.

Give the candidate one or several difficult algorithm questions for more than ten minutes, and then ask the interviewer to write down the pseudocode or code. This approach is quite ridiculous. There is no discussion or information checking. It makes people answer under a state of pressure. This is not the state of actual work at all, and our interview has become a kind of difficulty (my most perverted My experience is that after I handed in the code written on two pages, the interviewer handed it to the programmer next to me to output it on the computer for verification. As a result, the programmer said that there was a compilation error. So, the interviewer said, "Very good." Unfortunately, maybe you haven’t written many programs yet”, which is quite ridiculous). For this point, what is important is not the answer to the problem, but the idea and method of solving the problem.

I have experienced many interviews before. When technicians came to interview with me, I found that for some people, the "technician's thinking" cannot distinguish between interviews and exams. Subconsciously, Here, in many cases they are not interviewing the person, but making things difficult for the person and demonstrating their skills. I personally think I'm a good programmer, but I can tell you I couldn't pass an interview like that because that interview is for themselves, not for the candidate.

So, how did I get the interview?

1. Confirm your resume. First of all, you need to read other people's resumes. From the resume, you need to understand these three things: work experience, project experience, and technical skills. Generally speaking, you can first confirm his work experience, project experience and technical skills by phone. Then, if he matches the conditions of the person you need, you can call the company for a face-to-face interview. Never call others over and say there is a gap between your experience and our work. (I have had an interview experience. I won’t talk about the company. Anyway, it is the company that claims to need good communication. I was interviewed about 9 times, from ordinary programmers, PMs, managers, to general managers, and the last time I was directly interviewed Tell me, there is a big gap between my previous experience and their requirements. I can’t help but ask, what were they doing in the previous interviews? )

2. The opening of the interview. Secondly, when inviting people to the company for interviews, one thing is very important when the candidates come to the company for interviews, that is, you must make the entire interview process casual and relaxed, just like an ordinary chat or an ordinary communication between friends. . Only in this way can the candidates relax and show their real appearance to talk and chat with you, and you can learn more in a short period of time. It is the responsibility of the recruiter to let the candidates put down their psychological burden and behave naturally. Never say that others are too nervous to perform well. Sometimes, recruiters have to think about their own problems.

At the beginning of the interview, never let the applicant introduce himself, because the applicant has already sent you a resume, and you have also called him. In addition, candidates are usually very well prepared for this interview routine. On the other hand, this can make the entire interview process too formal and serious. So, why not ask the applicant how he got here? how are things? You can also talk to the candidates about a general topic, such as what sports, music, movies, social hot topics they like, etc. Don't keep a straight face, just talk and laugh, trying to make everyone relax. In addition, through these small conversations, you can get to know his/her ability to interact with people and some of his personality. Also, keep the table away from you and the candidate and keep the environment casual.

3. Let the applicant talk about his or her experience. Next, if you want to feel that this candidate is a person who can solve problems and get things done, you don’t need to ask him/her what he/she will do, but directly ask him/her what he/she has done? What have you done? For a good programmer, it is difficult to imagine that there is no relevant practice. Even if you are in college, you should have done something. If you have the ability to solve problems, then obviously you should have solved a lot of problems and accomplished a lot of things today. Listen to the applicant talk about those things. (Don’t use a question-and-answer approach. Let the applicant speak more, listen more, and think more)

When he talks about his project, generally speaking, you should pay attention to the following points:

Communication and expression skills. Can the applicant explain something clearly? If this person is smart, he can explain a complex matter clearly in the simplest language. Moreover, this is the most basic ability of a good programmer. Moreover, you can have some good back-and-forth conversations with the applicant while the applicant is describing his experience, so that you can know his communication skills and communication methods, and thus understand his personality.

Roles and locations. Maybe he was involved in a big project, but just made a very simple module. Therefore, it is very necessary to understand their role and position in the project. When applicants use words like "we" or "everyone", they must be detailed and clear.

What contributions have been made and what problems have been solved. This is very important. By understanding this, you can know whether the interviewer is smart, has the ability to solve problems, and has a good technical foundation.

Demo. If possible, you can ask the candidate to show some code he has written, designs he has made, or directly show you a demonstration of the program he wrote. (You can learn a lot about design, code style, reusability, and maintainability)

Basic knowledge. Understand some basic knowledge of the technologies used by candidates in the project. For example, through the entire process, you can ask about some basic knowledge of networks, languages, objects, and systems. Basic knowledge is very important, which is directly related to his ability.

Processes and Tools. Understand the project processes that the candidate is familiar with (silver bullet, waterfall, agile,...), as well as some artifacts in the process (such as requirements documents, design documents, test documentation, etc.), as well as the tools used in the development process Tools (memory testing, code inspection, BUG reporting, version maintenance, development and debugging...) (For the basic skills of programmers, you can refer to - "Basic Skills Programmers Need to Have")

Someone will It is said that the applicant's experience can be made up by himself, and he can say that he did some things that he did not do. Yes, it is indeed possible. However, don’t forget that behind a lie you need to use more lies to cover up the lie, so you don’t have to worry about this problem. As long as you gradually refine and refine the questions during the applicant’s description, you will know whether the applicant is I'm making up a story.

Be sure to remember the following points:

The conversation style should be casual and natural, not formal.

Don’t get too involved when learning about what the candidate has done before. Because the recruiters are also technical people, sometimes the recruiters themselves are attracted by the fascinating technology in the projects the candidates are working on.

Pay attention to guiding applicants. Believe me, eight out of ten programmers who apply for the job can't tell what they did before. Because they directly skip the project background and what kind of problems they want to solve, and go directly to the specific implementation.

Don’t just ask and answer questions, but let the applicant talk more, so that you can get to know a person more comprehensively.

Understanding a person’s past and what a person has done is more important than what they will do.

Understanding a person's personality, thoughts, thinking and behavior is more important than understanding his technical skills.

Communication skills, expression skills, language organization skills, understanding skills, etc. are related to whether you can work with others.

Basic knowledge is much more important than bits and pieces of knowledge. You may not know the keywords of C++, but you should know the inheritance and polymorphism of C++.

Technical skills are certainly important, but more important than that is the person's ability to acquire knowledge. Learning ability is necessary in a rapidly changing industry like computers.

Whether it can be cultivated is more important than the skills mastered.

4. Actual participation? ? This step may be difficult to implement. Because this requires some applicants to devote a certain amount of time. If they are graduates, there is no problem. Let them intern for a period of time first. But it’s not good if someone else has a job. Maybe you will say, this is the purpose of the probation period. However, I personally think that you have to respect the applicant. If they quit their job there and come to work for you, during the three-month probation period, if there are no problems in principle, you, as a recruiter, will regret it. , this is very bad. If such a thing is discovered, it can only be the recruiter's own fault.

During the interview process, some recruiters will ask the candidates to play a game together, or hold a debate competition, or form a team on site to do a simple thing, and some even ask the candidates to invite Take a day off to work with your team in your own company, and have to complete something (even set a deadline for it), and use this to measure the applicant's actual participation ability.

Yes, if you have never worked together and some actual things have happened, it is difficult to understand someone through a few hours of interviews. It is understandable for the recruiter to set up these interview links and learn everything about the candidates in the shortest possible time. And sometimes you can get good results. Here, I will only mention one point. Sometimes such a cycle is very long and requires the candidates to pay a lot, which in turn makes the candidates feel disgusted and bored. In a sense, this is really harmful to the candidates. of disrespect.

I have always had doubts about this, so I put two question marks after it. To be honest, my personal opinion on actually participating in this link is that enough is enough, because the time is too short, and no matter how you do it, you will not be able to understand it completely. Since you can't get it all, get what you need most, which are the three questions at the beginning of this article, and the "third point" mentioned above (understanding the candidate's past experience).

Through the interview process and summary described above, I hope that in addition to preparing for your own experience, you will also understand the interviewer's mind. But no matter what kind of programmer you are, you need to have good skills and be able to really develop, so that the interviewer can "talk about life" with you.

Related recommendations:

The 10 most error-prone PHP interview questions

Share some examples of front-end interview questions

Common PHP interview questions and answering techniques in 2017

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Let's talk about how to choose the best Node.js Docker image? Let's talk about how to choose the best Node.js Docker image? Dec 13, 2022 pm 08:00 PM

Choosing a Docker image for Node may seem like a trivial matter, but the size and potential vulnerabilities of the image can have a significant impact on your CI/CD process and security. So how do we choose the best Node.js Docker image?

Which AI programmer is the best? Explore the potential of Devin, Tongyi Lingma and SWE-agent Which AI programmer is the best? Explore the potential of Devin, Tongyi Lingma and SWE-agent Apr 07, 2024 am 09:10 AM

On March 3, 2022, less than a month after the birth of the world's first AI programmer Devin, the NLP team of Princeton University developed an open source AI programmer SWE-agent. It leverages the GPT-4 model to automatically resolve issues in GitHub repositories. SWE-agent's performance on the SWE-bench test set is similar to Devin, taking an average of 93 seconds and solving 12.29% of the problems. By interacting with a dedicated terminal, SWE-agent can open and search file contents, use automatic syntax checking, edit specific lines, and write and execute tests. (Note: The above content is a slight adjustment of the original content, but the key information in the original text is retained and does not exceed the specified word limit.) SWE-A

How to solve cross-domain issues? A brief analysis of common solutions How to solve cross-domain issues? A brief analysis of common solutions Apr 25, 2023 pm 07:57 PM

Cross-domain is a scenario often encountered in development, and it is also an issue often discussed in interviews. Mastering common cross-domain solutions and the principles behind them can not only improve our development efficiency, but also perform better in interviews.

Revealing the appeal of C language: Uncovering the potential of programmers Revealing the appeal of C language: Uncovering the potential of programmers Feb 24, 2024 pm 11:21 PM

The Charm of Learning C Language: Unlocking the Potential of Programmers With the continuous development of technology, computer programming has become a field that has attracted much attention. Among many programming languages, C language has always been loved by programmers. Its simplicity, efficiency and wide application make learning C language the first step for many people to enter the field of programming. This article will discuss the charm of learning C language and how to unlock the potential of programmers by learning C language. First of all, the charm of learning C language lies in its simplicity. Compared with other programming languages, C language

520 programmers' exclusive way to express romantic feelings! Can't refuse! 520 programmers' exclusive way to express romantic feelings! Can't refuse! May 19, 2022 pm 03:07 PM

520 is approaching, and he is here again for the annual show of tormenting dogs! Want to see how the most rational code and the most romantic confession can collide? Let’s take you through the most complete and complete advertising code one by one to see if the romance of programmers can capture the hearts of your goddesses?

2023过年,又限制放烟花?程序猿有办法! 2023过年,又限制放烟花?程序猿有办法! Jan 20, 2023 pm 02:57 PM

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

Make money by taking on private jobs! A complete list of order-taking platforms for programmers in 2023! Make money by taking on private jobs! A complete list of order-taking platforms for programmers in 2023! Jan 09, 2023 am 09:50 AM

Last week we did a public welfare live broadcast about "2023PHP Entrepreneurship". Many students asked about specific order-taking platforms. Below, php Chinese website has compiled 22 relatively reliable platforms for reference!

what do programmers do what do programmers do Aug 03, 2019 pm 01:40 PM

Programmer's job responsibilities: 1. Responsible for the detailed design, coding and organization and implementation of internal testing of software projects; 2. Assist project managers and related personnel to communicate with customers and maintain good customer relationships; 3. Participate in demand research and project feasibility performance analysis, technical feasibility analysis and demand analysis; 4. Familiar with and proficient in the relevant software technologies for delivering software projects developed by the software department; 5. Responsible for timely feedback on software development situations to the project manager; 6. Participate in software development and maintenance Solve major technical problems during the process; 7. Responsible for the formulation of relevant technical documents, etc.