takeaway
“It’s hard to hire a good front end, it’s harder to hire a good front end, and it’s even harder to hire a good front end with a team,” seems to be the current norm in the industry. This paper will focus on discussing how to conduct talent selection and recruitment with low cost and high efficiency, hoping to help students who are building a front-end team.
Analysis of the
talent
That’s the supply side. On the one hand, it seems that the front threshold is relatively low, most people who want to turn to the Internet to do technology will choose to start from the front. These people will mainly enter the market through training courses and other skills training channels. Usually, these training institutions also cooperate with outsourcing companies to solve employment problems to a certain extent.
On the other hand, because there is no systematic curriculum of front-end development in colleges and universities at present, graduates who choose front-end internship or employment are basically exposed to front-end development by “chance” in school and have some practice, and then continue to follow the inertia. Their learning method is mainly through self-study.
Although the above two categories cannot represent all the front-end talent sources, they certainly account for the majority and have certain representativeness. In recent years, the development of front-end technology is very rapid, it can be described as changing with each passing day, which also determines that front-end development is almost the most test of self-learning ability. However, self-study is difficult to ensure the integrity and system of knowledge, that is, the quality of talents. If talent quality is plotted along the vertical axis, the front manpower structure will take on a typical inverted bell shape, with a wide base and shrinking faster as you go up (see India’s demographic chart).
For recruitment
That is, the demand side, which is the focus of our discussion in this paper. Recruitment has a cost. From the perspective of the interviewer, the direct cost is the interviewer’s time, which can be simply measured by the interviewer’s hourly salary. It’s worth noting that technical interviews are usually more than three rounds long, and the more senior an interviewer is, the more valuable his or her time is. So the more you weed out unsuitable candidates early in the interview, the more you can save money. Combined with the above front-end talent structure, it is highly likely that most candidates will be screened out at the initial stage. If there is no significant difference in the number of interviews between initial and final interviewers on the team, chances are there is something wrong.
What is the right thing to do? Generally speaking, it is appropriate for people with certain experience to be the interviewer. However, according to the phenomenon observed by the author, senior interviewers are relatively scarce, and even junior interviewers are not enough. A typical front-end team consists of 1 Leader, 2~3 senior engineers, 4~6 junior engineers, plus several mobile interns or outsourcing, which can be considered as a full-scale front-end team. As you can see, even with this team structure, junior interviewers are not enough when faced with a large number of interviews. Therefore, some students with less work and interview experience have to rush to the role of the interviewer. At this time, the most afraid, but also the most prone to two extremes:
- First, the early stage of the interview can not judge whether the candidate’s ability is suitable, all the interview work is moved later, increasing the recruitment cost;
- Second, they misjudged the ability of candidates and eliminated some suitable candidates early, which directly caused losses;
Therefore, we should focus on how to quickly enable the junior interviewers to scientifically and effectively screen candidates, and minimize the occurrence of these extremes to improve the efficiency of the interview. On the other hand, resume screening is actually more front-loading, but this is usually not a problem and is not the focus of this article.
The target
Let’s reorganize and clarify our goals:
- Try to save money by weeding out unsuitable candidates early
- Evaluate candidates’ abilities scientifically and reasonably to avoid accidental injury
- At the beginning of the interview, dig out as much information as possible to improve efficiency
plan
Candidate competency model
There are different priorities for candidates at different levels, which we’ll talk about later. We first refine a candidate competency model to produce a systematic, targeted solution.
- Basic knowledge and skills. Depth is more important than breadth. Asking questions is more effective than asking scattered questions.
- Communication skills. That is, the ability to express and understand, whether the narrative is organized and hierarchical, whether it can quickly understand the guidance of the interviewer, whether it can answer questions according to the thinking of the interviewer;
- Individual combat capability. The focus is on coding ability and projects that candidates at different levels have done. The focus is to observe their real responses to difficulties. Tap into their drive, passion, technical pursuit, and even values;
- Ability to lead a team. Project management, team performance improvement, cross-team communication, resource coordination and other ability inspection, pay attention to be sure to investigate the landing situation, said again hype is empty;
- Special abilities. If the team urgently needs special ability, the right to improve appropriately, and send professionals to focus on inspection;
With the above ability model, we can systematically plan the focus of each round of investigation and the way of examination according to the difficulty of investigation of different abilities.
What is examined in each round
rounds | inspection | instructions |
---|---|---|
One side | 1. Medium and low difficulty algorithms. Ask ideas first, do guidance. Coding habits and proficiency; 2. Front-end basics. Note that there should be a hierarchy, constantly in-depth questioning, digging depth. At the same time, the ability of expression and comprehension were investigated. 3. Technical points that the candidate is good at and is also good at. Don’t look at things you’re good at but the candidate isn’t. Unable to extract effective information, would rather not test do not waste time; |
Try to set routine, standardization, provide standard and effective information output |
Second interview | 1. Medium and low difficulty algorithm (optional); 2. Front-end basics. More partial frame, bottom, application, engineering and other combat classes; 3. In-depth exploration of technical points that candidates are good at, paying attention to the ability of expression and understanding; 4. In-depth exploration of skills in line with the business (key points, if any); |
One is to serve as one side of the investigation supplement, the other is to give more targeted investigation according to the candidate’s situation. This requires the depth and breadth of an interviewer’s skills to deal with multiple types of candidates |
On three sides | 1. Medium and low difficulty algorithm (optional); 2. Team management, efficiency improvement, collaboration, communication and other soft qualities, and the implementation effect; 3. The first two rounds of leak detection and filling, targeted mining of missing information; |
In addition to filling up the gaps in the previous two rounds, it is also necessary to give the candidate’s ability rating and give HR reference information based on the team situation to judge the cost performance |
It can be seen that “the earlier the more routine, the later the more personality”. This design can give full play to the value of each round of interviewers, the overall input and output ratio is the highest. “Personality” is hard to sum up, but “routines” can be accumulated. Therefore, learning the team’s interview question bank is the most effective way to quickly improve the level of the junior interviewer.
How to design question bank
This part mainly gives the idea of designing test questions. The specific accumulation of test questions needs to be implemented by the team according to the situation.
Code problem
Remember, the goal of the interview is never to win by knocking the other person down. You’ll always lose. We divided the code questions into two categories, one is the original questions of leetcode and other brush questions platform, the other is the examination questions written by ourselves.
Platform to the original
Some people for the original topic is very disdain, in fact, through the original topic can also investigate a lot of things.
- First, through the candidate’s proficiency in answering to examine whether the preparation for the interview is sufficient, especially with some experience of the club, did not brush the question is not necessarily not good, but brush the question is generally more practical.
- Second, even if it is to brush questions, it is also necessary to have systematic thinking, mechanically from the first question to the 100 question, usually not effective. So it usually pays to test the ability of some variation on a typical model to draw inferences.
- Third, the code given by the platform is usually not very readable. If the candidate can make specific optimizations, such as variable names, indentation, modules, etc., his code standardization and coding experience will not be poor.
- Fourth, simply and cheaply screen out candidates who are clearly unsuitable. If the simple question (even if not brushed should also be able to) after the prompt can not write up, usually there will be a large reduction in points. Of course, it is not easy to find out the true level of a candidate unless the resistance of the candidate is removed.
The self-made examination questions
- Must avoid pardonable partial, want to have clear investigation point, can’t for examination and examination;
- It can be used as a way to test a candidate’s logical ability, that is, to show some logical problems in the form of code, not necessarily to examine specific technical points;
- Bring in business scenarios, examine best practices under certain conditions, and problem abstraction capabilities;
- Test questions are designed for some libraries, grammars and features, which mainly examine candidates’ technical proficiency and coding habits.
In general, platform questions serve as pathfinding, and self-written questions are examined according to the candidate’s performance and feedback, which is a more effective routine. Of course, the premise of all should be established in the interviewer for the examination questions have a deep understanding, so for the training and inspection of the interviewer, or necessary.
knowledge
Some people are contemptuous of the “front eight-part Essay”. In fact, if you really see the “Eight-part essay written by the Number one Scholar”, I believe your mind will change, and the “eight-part Essay” can also be very deep. There are very few people who can take the exam, and similarly, there are very few people who can study the basic knowledge deeply enough, just to see if we can dig it out. The point here is simply to “keep asking and digging to the limit”.
We should always be clear about one logic, all knowledge points are to solve practical problems and appear, practical problems combined with specific scenarios can be very complex. What we have to do is start from the knowledge point, follow that “often ignored” long line, find it to solve the actual problem, and then extend out other related knowledge points, again and again. In theory, you could go on indefinitely. This is still a myth. Let’s take a few examples:
The data type
- JS data type? Why are they called reference types? How to determine the type of array?
- Is [] === [] equal? Why is that? = =? What happens around ==?
- What should be noted about reference types in practice? What problem does immutable solve? How to solve the problem?
- What’s so special about how Vue and React handle arrays? React one-way data flow and Vue two-way binding
The HTTP status code
- Name a few common status codes and their meanings? What is the difference between 301 and 302?
- Have you ever come across 1xx? What will happen? Does Websocket have anything to do with HTTP? What is HTTPS? What problems are to be solved?
- How does 304 and strong caching work? What problem does it solve? How to solve the strong cache of HTML files?
- How can you leverage caching to optimize performance? How many concurrent browser requests? HTTP2.0?
- Is HTTPS symmetric or asymmetric encryption? Why is that? How are certificates distributed? What is the usual authentication method for accessing third-party services such as wechat?
Cross domain
- What are the cross-domain definitions and common solutions? JSONP, reverse proxy principle?
- CSRF attacks? How to prevent it? What are the functions and usage details of cookies?
- How to solve the cluster service authentication problem? What are the pros and cons? Are there any alternatives? JWT? Token?
- Single sign-on multi-party communication process? How to handle logout?
As you can see, the examples above all start with the most basic front-end knowledge, then continue to ask questions, and finally even extend to areas that have nothing to do with the original question. There are at least two benefits to asking such questions:
First, the rhythm is not broken, so we can completely observe the candidate’s thinking, but also examine the candidate’s communication ability;
Second, the depth of knowledge points can be quantified. Although quantified may be rough, it can be further optimized through team discussion and alignment.
However, in order to achieve the above requirements, the question bank should at least have enough richness to produce network effects. Moreover, the interviewer’s grasp of knowledge points should also reach a certain depth. Of course, if the question bank is already available, the interviewer will learn quickly. After all, interviewers need a certain threshold.
conclusion
To review our goals: weed out inappropriate ones early, evaluate them scientifically to avoid harm, and extract as much information as possible. We do this by building competency models for candidates, planning the focus of each round of interviews, and designing question banks to train interviewers.
In fact, this article can only provide a general idea, as there are too many details to be discussed and adjusted according to the situation of the team. What I’ve observed is that both HR and business departments want to do well in recruiting and interviewing, but they don’t know where to start. Therefore, I hope this paper can play a role in sorting out recruitment and interview optimization has specific grasp can be landed, if it is really effective, it is also a merit.
“What is most expensive in the 21st century? Talent!” A World Without Thieves