The front-end programmers I encounter fall into two categories:

The first keeps asking: How do you learn the front end?

The second one always says: the front end is simple, just a little bit.

I’ve never heard anyone ask how to be a good, or even great, WEB front-end engineer.

What is a front-end engineer? Front-end engineer, also known as Web front-end development engineer. It’s an industry that’s been segmented with the development of the Web. Web front-end development technology mainly includes three elements: HTML, CSS and JavaScript! The barrier to entry for front-end development is actually very low, and the learning curve of front-end development is fast and then slow compared to the slow and then fast learning curve of server-side languages.

HTML isn’t even a language, it’s just a simple markup language!

CSS is just a typeless style modification language. A weakly typed language, of course.

The basics of Javascript are relatively easy and quick to get started with.

Because of this, there are a lot of self-taught “pros” in front-end development, but most of them stay at the “beginner” level because the learning curve gets steeper and harder every step.

Web front-end technology has some river and lake atmosphere, knowledge is too trivial, the game of technical values is also hard to distinguish, that is, the global system of knowledge structure is not a system, these factors also objectively affect the “orthodox” front-end technology precipitation! Moreover, all kinds of “strange techniques” are abused, and the inheritance of front-end technical knowledge is too general, making it difficult for newcomers to see clearly the current situation and grasp the priorities. Therefore, in the field of front-end technology, finding a reliable mentor is more important than the project, the team, the company, or even the salary.

On the other hand, as mentioned earlier, front-end development is a very new profession, and research into norms and best practices is in the exploratory stage. There are always new ideas and new techniques, such as CSS Sprite, negative margin layout, grid layout, etc. Various JavaScript frameworks emerge one after another, injecting great vitality into the whole front-end development field. The browser wars are heating up, and cross-browser compatibility schemes are still out there. In order to meet the need for “high maintainability”, it is necessary to have a deeper and more systematic understanding of the front-end knowledge, so that it is possible to create a good front-end architecture and ensure the quality of the code.

The rapid development of handheld devices has led to the rapid development of HTML5 industry standards. There hasn’t been a major update in web technology in about 10 years!

Wu Liang said in the preface of the first page of the Return of JavaScript: “Most programmers think JavaScript is too simple and only suitable for the fancy expressions on some web pages, so they don’t bother to learn it, or think they can master it without learning it.

In fact, whether a language is a scripting language or not is often determined by its design goals, and simplicity and complexity are not the criteria that distinguish a scripting language from a non-scripting language.

In fact, Javascript is one of the most complex scripting languages in the world, and its complexity is even measured in non-scripting languages. Javascript is as complex as Perl and Python!

We live in a universe full of rules. Social order operates according to rules, and computer languages are almost entirely collections of rules. The predecessors of computers defined rules, rules constrained us, and we used rules to control data. Most of the time, proper control of your data comes from mastering the rules.

Learn HTML, CSS should first follow the book carefully, solid learn again. And then you have to do a lot of practice, do all kinds of regular, weird, massive layout exercises to solidify and understand your knowledge.

The first step in learning Javascript is to know what the language can and can’t do, what it’s good at and what it’s not good at!

If you just want to be a normal front-end programmer, you just need to memorize most Javascript functions and do some practice.

If you want to understand Javascript in depth, you need to understand how Javascript works, how it works. You need to know their origins, and you need to have a deep understanding of Javascript’s object-based nature, behavior, and features.

For historical reasons Javascript has not been taken seriously and is a bit adopted! Therefore, it has many disadvantages, such as inconsistent behavior in different host environments, memory overflow problems, low execution efficiency and so on.

Being a good front-end engineer also requires a deep understanding of, and the ability to deal with, these flaws in Javascript.

In the old days, you could create a web page with a little Photoshop and Dreamweaver. Now, that’s no longer enough. Whether it is the difficulty of development, or the way of development, now the Web page production is more close to the traditional website background development, so it is no longer called Web page production, but called Web front-end development.

Web front-end development is becoming more and more important in product development, and it needs professional front-end engineers to do a good job.

Web front-end development is a very special work, covering a very wide range of knowledge, both concrete technology and abstract ideas. Simply put, its main function is to better present the interface of the website to the user.

Second, a good Web front-end developer should have the ability to learn quickly. The Web is evolving so fast that these technologies are changing almost every day! If you don’t have fast learning ability, you can’t keep up with the development of the Web. Front-end engineers must constantly improve themselves, constantly learning new technologies, new models; Today’s knowledge alone will not fit the future. The Web of tomorrow is bound to be very different than it is today, and it’s the front-end engineer’s job to figure out how to reflect that change with your Web applications.

At this point, I am reminded of a saying of a great master: For the novice, new technology is new technology. For an expert, new technology is just an extension of existing technology.

A good Web front end meets four types of customer needs

1. Product manager. These are the people responsible for curating the application. They come up with new, strange, and even impossible applications. Generally speaking, product managers are looking for rich features.

UI designer. These people are responsible for the visual design and interaction simulation of the application. They care about user sensitivities, consistency of interactions, and overall usability. Generally speaking, UI designers are interested in smooth and beautiful user interfaces that are not easy to implement, and they often resent the 1px error caused by the front end engineers.

3. Project manager. **

These people are responsible for actually running and maintaining the application. The main concerns of project management are nothing more than uptime, the time when the application is always available, performance, and deadlines. The goal of project managers is to keep things as simple as possible and not introduce new problems as they upgrade.

4. End users. This refers to the primary consumer of the application. Although front-end engineers don’t often interact with end users, their feedback is critical. End users demand most of all features that are personally useful and that are available in competing products.