Recruitment of front-end, for non-training candidates, will indeed be more inclined to self-study rather than training. The reason is that the ability to strengthen the front end is not taught in most training classes.

In my opinion, the important capabilities for the front end are as follows:

First, programming basics and Bugfix capabilities.

This is the same as any other field, you have to be a programmer, at least skilled in writing code and troubleshooting?

Programming ability, on the one hand, comes from learning the basics. Given an optional set of strings, and a mistyped string, how do you filter out the strings that the user might want to type? If you want to solve this kind of problem, you have to learn about the minimum edit distance, which is inevitable.

On the other hand, the accumulation of programming experience is also very important, this need you usually accumulate more. Let you write a login box, how to complete the validation of various rules (some synchronous, some asynchronous), how to make your login box externally configurable various validation rules? If you have more programming experience with this kind of problem, you will have an idea in your mind.

The power of Bugfix comes from three aspects:

First, you need to have programming experience, debug experience, for the common problems experienced programmers guess is probably close to ten.

Second, you need to understand how the program works. It’s no use memorizing the text. If you open the Vue source code in the Console, where do you interrupt to see the value of what variable will help you determine the cause of the problem? You have to understand Vue’s mechanics to do that.

Third, you have to have logical thinking, junior high school physics of the control variable method to learn? Someone who can’t even think of a basic “comment out half of the code” in the face of a steadily recurring bug is a flawed logical thinker.

The training courses generally did not pay much attention to the above. During the training, the amount of code was too small and the exercise items were too single, resulting in the lack of programming foundation and Bugfix ability of graduates.

Second, tool selection and tool use ability.

There is a treasure trove of NPM, but most of the underlying functionality is not developed by ourselves, there are plenty of tools out there. But you have to know what your goal is, find the right tool, understand how it works, and then introduce the project and run it through.

Some people don’t know what their goal is in the first place. Faced with a functional requirement, do not know how to do technical decomposition, do not know how to define the problem. NPM and github search first not to say, baidu search you have to be able to use it, the question of keywords you have to come up with a few right?

There are also some people whose English is so bad that they can’t even read the readme of the NPM package. If you tell them to use this package, they don’t know how to use it. If you ask him to look at “issue”, he doesn’t even know what the word “issue” means.

Then there are those who, like the ones who never changed their registry when you asked them to change it with Windows. A package introduced into a project will work if someone else fiddles with it, but it won’t work no matter how much he fiddles with it, and it won’t work even if the build fails. I don’t know what the specific reason is, may be not very good at using a computer.

These, training courses generally do not teach, at least not the key. Such as English needs to accumulate the ability, training class will not be involved.

Third, the ability to write a program “from beginning to end.”

Here I have to talk about the benefits of self-study. In general, in order to learn programming, people always write projects as exercises. The advantage of self-learning is that a reliable self-learner often writes a project out of his or her own brainpower. This helps develop a core skill — that before you write a program, you have to figure out what you’re going to write. This is called “starting from scratch.”

Most of the time when a leader gives us a demand, he does not simply say that he gives you a demand list, and you will realize all the demand points in it. Instead, he says that he has a vague idea, and you should investigate it, work out a plan, write a prototype and make a POC. Or he sees a problem, like a website loading slowly, and asks you to fix it. In this scenario, you have to start from the beginning, define the problem, set the goal, and break it down into several dimensions. Each dimension provides a solution, and then implement it one by one.

That’s not the end of it. Has the leader’s idea come true? Is the problem solved? How do you prove that? How do you quantify it? Is your program ready for release? Is the single test coverage acceptable? Has the documentation been written? Can someone else use it? … These are called “to the end.”

In a nutshell, this is “product thinking” — first understand what to do, why to do it, then think about how to do it, and finally get it done, with evaluation plans and results.

These, of course, training courses will not teach, the result is that graduates may perform well in the interview, but when it comes to the post, “a little bit”, lead this kind of new people especially tired. On the contrary, self-taught people, at least some of them, because they think about the project themselves, know how to refer to open source products, and finally can use their own project, this ability will be greatly improved.

Other peripheral skills such as communication skills, aesthetic skills, writing skills, etc., are not to be discussed. They are not taught in training courses anyway.

In general, it is not surprising that employers prefer self-educated people with the same educational background and experience level.

If you have any questions about learning the WEB front end, how to learn the WEB front end learning methods, learning skills, how to quickly reach the level of employment, you can ask me at any time, this is the WEB front end learning exchange QQ group I established for 5 years: 484 757 760.


I also understand Java and Python. If you have any questions in the learning process, you can ask me in this learning group, and you can also get the learning materials of each stage of Web front end.