The source of this article is the public number: Programmer succeeded
Hello everyone, I am Yang Chenggong, a front-end leader of a small factory.
Speaking of interviews, in fact, I don't have much experience in interviewing myself, and I am not familiar with Baguwen, and the algorithm is even more weak. But fortunately, I have met a lot of people, and I have a little bit of experience in screening candidates.
In my opinion, the only purpose of the interview is to recruit people. It must be because the team lacks people and needs to be replenished, so you will put down the job at hand and spend time screening resumes and interviewing. So as an interviewer, you must tell yourself at this time:
Interviewing is about finding the right person, not about stumbling the candidate.
I have seen a lot of interviews that make things difficult for each other. In fact, this is the most meaningless. Both parties waste their time and fail to achieve their goals. When you're sure your purpose is to find the right candidates, then ask yourself one more question:
What kind of person do I need to find?
If you need someone to do basic page layout and the salary is average, then don't ask them to "master data structures and algorithms". If you need a graphics buddy, don't ask people to "know webpack optimizations". The more the better, of course, but forcing a standard that deviates from the demand, then don't blame it for not being able to recruit people.
Small factories are different from large factories. Without a snowflake-like resume, recruiting people is inherently difficult. You can only lower various rigid and irrelevant standards, focus on the big and let go of the small, and then find powerful people through interviews and chats.
What kind of person is needed in what kind of situation, let me give an example.
Suppose the company's business develops, there are a lot of projects, and the front-end manpower is not enough. At this time, we need to expand our personnel to rapidly promote business development. What the team needs at this point is someone who:
2-3 years of experience, familiar with Vue family bucket, rich project experience, rich practical experience
In a word, it can work.
Selecting candidates, Work experience is a crucial reference standard, why is 2-3 years required here?
If it is less than 2 years, it may be an intern or a novice who has just entered the industry. They generally cannot quickly take over the business and enter the development process. They need to be led by colleagues who understand the project for a period of time. However, our project urgently needs to be promoted. Newcomers will not be able to get started in the short term, and the elderly have to devote their energy to bringing newcomers, which will delay the progress.
If it is more than 3 years, for example, you happen to meet a candidate who is 3-4 years old, and you are satisfied with the interview, I think it is no problem, and you can focus on training in the future. But if it's more than 4 years, one thing you need to consider: costs .
How do you convince your boss to spend more money if your needs can be met by a 2-3 year candidate?
Assuming that the company's business develops, the front end needs to contact some complex fields, such as audio and video, cross-end, automation, etc. On the other hand, our team has never been in contact with us, and we do not have enough ability to do these technical breakthroughs. At this time, we need those big cows with both depth and breadth:
3-5 years of experience, master the mainstream front-end framework, master front-end engineering, have rich experience in Node.js, understand and have practical experience in the principles of audio and video, streaming media, and live broadcast on demand.
The goal of finding this type of person is very clear, which is to help the team quickly open up unfamiliar fields with the help of the other party's existing experience or technical ability, and make the project more efficient.
At this time, we need candidates to have the ability to stand on their own, the team has no experience, and we need you to rush to the front to develop. In this case, interviews or chats should not always be focused on Baguwen, and more practical experience should be exchanged, so that both parties will feel that communication is valuable.
I am independent and have the ability to tackle tough problems. Generally, I will choose people who have been around for 4 years. And whether it is really capable, we can't tell just by looking at experience. We must go through interviews, use practice-based questions to tap capabilities, and make judgments based on the performance of the other party.
If the current project is stable, there is a new business direction in the next year and a half, and manpower is still needed, at this time, we can consider some interns and friends with experience within two years.
Bachelor degree or above, about 1 year of experience, solid front-end foundation.
Such candidates have less experience and can set some thresholds in terms of academic qualifications. Indeed, for students whose experience has no reference value, academic qualifications and majors are almost your evaluation criteria.
Because there is no pressing project in the short term, we have time to train the above-mentioned newcomers and inject fresh blood into the team. In a team, the old man has the advantages of the old man, and the new man also has the advantages of the new man.
Newcomers are generally young, bring energy to the team, and are sometimes more proactive than some older people. At the same time, in the process of "learning" and "bringing" between the new and the elderly, it can promote the team to share and communicate, and it is also essential to run in with each other.
However, it should be noted that this type of inexperienced candidates need to be assessed during the probationary period. Because some newcomers may lack active thinking, and have also encountered such as packaged resumes, it is necessary to timely evaluate the ability of candidates during the probationary period to see if they are suitable for the team.
When recruiting a candidate, is the more powerful the better?
I thought about it this way before, regardless of the cost, of course, the more powerful people you recruit, the better.
But then I discovered that this is not the case.
First of all, a person's experience ability and his degree of cooperation are almost inversely proportional to . Take the above-mentioned situation 1 as an example. You have a technical solution and you need to recruit a wave of people to move in quickly. You want these people to have strong execution.
But a programmer of 4-5 years will definitely have his own thinking. He will do things without taking them, and there will be "optimization thinking" in his mind. For example, when he got the task, he felt that the code was unreasonable and irregular, and he couldn't help but want to optimize it first. He would think why would he do this? Is it possible to change the way of thinking? Is another solution less code?
There is no problem with this kind of thinking, and it is very rare. It's just that in the process of project advancement, the priority of fast execution is obviously higher than that of optimization. At this time, you will find that it is the "soldiers" who unconditionally execute the order, who cooperate more smoothly, and it is easier to lead them to advance the project quickly.
Therefore, recruiting candidates is by no means the more experienced the better, the more powerful the better, suitability is more important than experience and ability. Instead of focusing on a single individual, you look at what capabilities are lacking as a whole in terms of teamwork and composition.
Therefore, before recruiting people, you must understand, what do I want to do when I recruit them? Then go find the right person.
Are undergraduates better than college students?
Among the candidates I have interviewed, undergraduates and college students should score 55 or 50 (promoting college students is temporarily regarded as college students). Overall, I can see that there is a clear difference between the two groups.
Taking the same experience (such as 3 years) as the premise, if you ask some basic things, that is, what we call Baguwen, the undergraduate students answer relatively well, and the college students will not be so comprehensive in this regard.
The reason may be that undergraduates have a computer foundation, or have relatively strong test-taking ability and adequate preparation. In short, my feeling is that undergraduates are indeed more prominent in theoretical concepts and verbal expressions.
However, from the resume, most of the skills list of undergraduates is
Vue/React/performance optimization. Looking at college students, I often see some surprises, such as
nodejs/linux/flutter . Obviously, they have a wider range of contacts and have tried more things. When asked carefully, they have indeed done a lot of practice.
This is also traceable. The most I hear is that because of poor academic qualifications, I can only work hard on the project, get as much contact and practice as possible, and dig deep into the technology. I recommend this kind of college friends. great.
At this stage of about 4 years, I still prefer people with rich project experience, ability to tackle key problems and active exploration ability.
Aside from academic qualifications and algorithms, how to assess the true ability of candidates?
As we all know, the interview screening of large factories first looks at academic qualifications, and then tests algorithms. These are the two thresholds for career advancement.
But for those with education and knowledge of algorithms, engineering ability and coding ability must be strong? Not necessarily. It's just that the big factory leads the way, and the small dishes follow the trend. The blog of the big factory interviewing Baguwen in the community is very popular, but the real test of a candidate's ability is rarely shared.
For example, our company is a small company, and the interview basically does not look at academic qualifications. Because people are not easy to recruit, it will be even more difficult if you set up rules and regulations. Of course, I don’t ask about the algorithm. At most, I ask about the eight-part essay, and then the project experience, what I have done, and what problems have I solved.
Regardless of academic qualifications, algorithms, or eight-legged essays, then project experience has become the top priority of the assessment. How to ask the true level from the candidate's project experience, here I share my personal tips.
When I get a resume, I will first find Even when the other person briefly introduces his project, I will directly ask him: What are you best at?
In my opinion, for an experienced front-end, writing vue pages, layout, and state management, most of them have no problems. But what a person is best at, on the one hand, it can reflect his experience and precipitation, and on the other hand, it can show that he likes, is interested in, and has studied in this field, so he is good at it.
When I know what the other person is best at, then I can go deeper and ask along this line. For example, the other party said that I am good at performance optimization, then I continued to ask three times:
1. Why perform performance optimization?
2. How to optimize performance? Know about other options?
3. What's wrong with the existing solution? Are there any ideas for improvement?
The first question is why, this is very important. When you use a technology, it must be to solve a problem. It's hard to understand the essence of this technology if you don't know what to solve, and I'm doing it because someone else is doing it.
The second question is how to do it, which is an option. There will be many solutions to a problem. When you choose a certain one, you must have found its advantages after research and comparison, so you will choose it. If you can't say this, then when you encounter a problem and need to find a solution, it may be difficult for you to find the optimal solution.
The third question is to improve the thinking, which is the ability to review the test. When you finish a feature, it may not be perfect, or just solve the current problem. People who are good at thinking will review the test. What is the imperfection of my function? What are the dangers in the future? Then dispose of it sometime later.
If you finish the task and throw it aside without thinking more, then in the long run you will have a low quality work done and a low ability to assess risk.
The above three problems, combined, is to explore the other 's ability to problems, or the thinking of doing things. Because you are asking what you are best at, you will not miss a suitable candidate just because you meet the opponent's shortcomings.
One more must-ask question:
4. Talk about the most difficult problems you have encountered, and how did you solve them in the end?
This topic is very good, talking about the most difficult problems, you can almost see the technical depth of the other party. Then the more difficult problem-solving process may be more tricky, you can talk about what solutions you have tried, these can help you judge the other party's thinking ability and practical ability.
And this topic can also reflect what kind of role a person plays in the team. If this person joins your team, then he will probably be in this role.
That's about it. Personal understanding is too much, and it may not be universal. Welcome to the comment area to discuss.
This article participated in the SegmentFault Sifu essay "How to "anti-kill" the interviewer?" , you are welcome to join.