How to interview front-end engineers!

Source: Internet
Author: User

It is very interesting for me to interview front-end engineers because the interview process is also a process of self-improvement. Whether a large company or a small company, the same problem occurs when recruiting really competent front-end engineers, because those in charge of recruitment do not know what the company needs, as a result, you cannot ask the question. After several years of exploration in the industry, I have come up with a set of effective methods for interviewing front-end projects.

Some applicants say that I am not good at it, but it is not my wish to leave it to them. I think they say that I am not good at it, mainly because I asked them too carefully. I used to write something specifically to tell the applicant how to pass my interview) what kind of quality should a good front engineer have ?), My interview can be said to be based entirely on the two articlesArticle. I will not ask some especially eccentric questions, nor think that a few logic questions can be used to test people's real level. My only idea is to determine whether you are qualified for the position we want to recruit. For this reason, I Need To briefly examine the following aspects.

Basic knowledge

We live in the Internet age, and everything you want to know can be found within 15 minutes. However, finding the information does not mean that you will use it. In my opinion, all front-end engineers should have at least some basic knowledge to effectively complete their work. If a problem occurs, stop working and search for a solution on the Internet. How can this problem be solved on schedule? Listen, who else said, "I don't know, but I can find it online ." Ask these students to raise their hands and let everyone know (immediately raises a flag for me .). I will list some basic knowledge points below, which I think a front-end engineer (regardless of the length of work years) should know without any external help.

    • Dom Structure-- What are the possible relationships between the two nodes and how to move them freely.
    • Dom operations-- How to add, remove, move, copy, create, and search nodes.
    • Event-- How to Use Events and what are the main differences between the IE and DOM event models.
    • XMLHttpRequest-- What is this, how to fully execute a GET request, and how to detect errors.
    • Strict mode and hybrid mode-- How to trigger these two modes to differentiate their significance.
    • Box Model-- The relationship between the outer margin, the inner margin, and the border. What is the difference between the Box Model in browsers earlier than IE 8.
    • Block-level and intra-row Elements-- How to Use CSS to control them, how they affect the surrounding elements, and how you think they should be defined.
    • Floating Element-- How to use them, what problems they have, and how to solve them.
    • HTML and XHTML-- What is the difference between the two? Which one do you think should be used and why.
    • JSON-- What it is, why it should be used, how it should be used, and implementation details.

I would like to reiterate that the above knowledge points should be something you don't need to think about. All the questions I asked at the beginning were to find out how much knowledge you have mastered in all these fields. Although the knowledge points listed above are not comprehensive, I think you should at least master these knowledge before you can sit in an office with me.

A few questions

I strongly agree that the fewer questions the interviewer asks, the better. It is neither fair nor boring to repeatedly ask questions from candidates. In any interview, I usually only ask three big questions, but each question involves multiple aspects that I can think. Generally, several steps are required to answer each major question, so that I can solve some small questions in each step. For example:

Now there is a positive Yahoo! The stock price page. There is a button on the page, you can click it to refresh the price, but does not reload the page. Please describe the process of implementing this function. Assume that the server is responsible for preparing the correct stock price data.

This issue involves a set of basic knowledge points I want to examine: Dom structure, Dom operations, event processing, xhr, and JSON. If I want you to change the stock price or show other information on the page, you can include more knowledge points. For experienced applicants, I can also freely expand the scope of knowledge to be examined, the simplest is the difference between josn and XML, security issues, capacity issues, and so on.

I also hope that the library will not be used in any solution provided by the applicant. I want to see the originalCodeThe page does not contain any databases. You say how much you know about the database, but I cannot judge the database because the database changes over time. What I need is a real understanding of the mechanisms behind the database, especially those who can write their own libraries by hand.

Solve the problem

As a front-end engineer, there are many different ways to solve the same problem. What you need to do is to find the most appropriate method. When I ask a question, I often ask the applicant if they have another method after explaining it. At this point, I will tell them that, if your method is rejected for various reasons, can you provide another method. This can achieve two goals.

First, you can test whether they are retelling the things in books without meaning. You can't help but admit that some people have exclusive talent. When you hear them talk about it, you will think they understand everything. However, as long as you talk to these people about how to find out the cause of the ineffective solution and whether they can come up with a new solution, they will often be dumb. At this time, if I hear a counterquestion like "I don't understand why this solution is not good enough", I will immediately understand that my problem is beyond their capacity, however, they just want to draw conclusions from their own rote memorization.

Secondly, we can test the knowledge of the browser technology they have mastered (or the phrase "don't want to think. If they have a good understanding of the core knowledge of the browser platform, it is not that difficult to come up with different solutions to solve the same problem.

This is definitely the most important capability for a front-end engineer. Front-end engineers have encountered such but not such a problem (say you, IE6) at work. It should be said that it is a very common task. If a solution is ineffective, there is no way to implement it. You cannot be a front-end engineer.

Another reason for assessing the applicant's ability to solve problems is related to my personal preferences. After figuring out what the applicant knows and does not know, I will ask a question beyond their knowledge field. The purpose is to see how they use their existing knowledge to solve new problems. In every step of solving the problem, I have also prepared some tips to prevent people from getting stuck (in front of me for 15 minutes without saying anything, it is not helpful to me to comment on this person ). What I'm really interested in is that they can move forward from the previous step to the next step. I want to see a person learning new knowledge in front of me.

Note: All problems are related to browser technology. I don't believe in several abstract logic questions, so I can test someone's ability to solve web technical problems. In my opinion, this is tantamount to making the sketch master draw a portrait (or let Liu Xiang and bolt compete in the same stage), meaningless, and without any valuable information.

Passionate

To become a good front-end engineer, the most important thing is to be passionate about what you do. Our skills are not from school or from seminars, so front-end engineers must be self-taught. Browser technology is changing with each passing day, so only by constantly improving your skills can you keep pace with the times. Although I can't force anyone to read more blogs and learn more, I am afraid the people who want to apply for front-end engineers still have to do this.

How do you know who is passionate about this job? It is actually very simple. I just asked a simple question: "What Web technology are you most interested in ?" This problem will never expire, and it is almost impossible to make a mistake ...... Unless you cannot answer the question. For the moment, I hope that the technologies you provide for this question include websocket, HTML, webgl, client database, and so on. Only those passionate about web development can persistently learn new knowledge and master new skills. These talents are what I really want. Of course, I will ask them to explain in detail the technology they mentioned to ensure that they are not talking about just a few trendy new words.

Last point

Of course, computer science or web design knowledge is also useful, but it is beyond basic knowledge. As long as the basic knowledge is there, everything will have a foundation and it is not difficult to expand the knowledge. However, if you have to learn basic skills from the ground up after the formal start of work, the difficulty will not be the same. In addition, senior front-end engineers must acquire more skills than general engineers. There will also be a completely different set of interviews with almost no university graduatesProgram. I listed some basic things in this article.

For those who do not have much interview experience, I always like to tell them that after the interview, you only need to ask yourself a question: do you want to work with this person in the future? If the answer is no, it means no.

It is very interesting for me to interview front-end engineers because the interview process is also a process of self-improvement. Whether a large company or a small company, the same problem occurs when recruiting really competent front-end engineers, because those in charge of recruitment do not know what the company needs, as a result, you cannot ask the question. After several years of exploration in the industry, I have come up with a set of effective methods for interviewing front-end projects.

Some applicants say that I am not good at it, but it is not my wish to leave it to them. I think they say that I am not good at it, mainly because I asked them too carefully. I used to write something specifically to tell the applicant how to pass my interview) what kind of quality should a good front engineer have ?), My interview can be said to follow the standards of the two articles. I will not ask some especially eccentric questions, nor think that a few logic questions can be used to test people's real level. My only idea is to determine whether you are qualified for the position we want to recruit. For this reason, I Need To briefly examine the following aspects.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.