1. To maximize value creation, there are two most important things. First, you can identify problems and determine what problems are worth solving. Second, have high quality to solve problems in a field of technical level.

2. Why don’t programmers go it alone? Yes, those who say difficult, just lack of ability (not necessarily technical ability).

Ask whether first, and then ask why. Most “around me…” The first answers are all generalizations. Only the data will give you the truth.

4. Will English become a bottleneck for development engineers? Answer: Not only will poor English become a bottleneck, good English can also become an advantage, because the learning efficiency will be higher than others. For a self-educated person like me, I have to rely on English…

5, many non-trained programmers often subconsciously delimit their scope, ah, this is trained only understand things, I have no hope. What you learned before has nothing to do with what you can learn later. I majored in art history during my undergraduate study, which only means that I spent most of my undergraduate time on art history, but it doesn’t mean that I can’t spend time on CS in the future. In fact, a lot of people from the so-called training course have a different understanding of the principle of compilation than you, which is just a course in more than three months. If you really feel that the principle of compilation is your bottleneck, then decide to learn it, it may not be as scary as you think.

6. What are the classic wheels of front-end development worth implementing yourself? A: Virtual – DOM.

7, what are the computer basic books recommended for reading fragment time? A: Learning JavaScript fragments is a good time to read rhino books. I read it on the bus.

8. Staying in your comfort zone often prevents you from improving, and programmer improvement often occurs in the process of trying to solve a problem that has never been solved before.

The front end of the word now covers more and more extensive content, especially after the application, as if the front end itself has a mini technology stack. Let me outline it briefly:

Pure presentation layer. User experience, layout, special effects, and exploring the wonders of CSS, for many designers/front-end practitioners, the technical side of the game ends there. Many of them may never write a flipped binary tree, but they can create user experiences that no one with a degree in engineering could ever create. Of course, some people who go the Creative coding/data visualization route need to specifically strengthen their knowledge of physics, mathematics, or even computer graphics.

Application implementation layer. Junior engineers in large companies are likely to take frameworks and tools designed by others to implement specific application logic. To be honest, this level of computer basic requirements are really not high, as long as you have a solid foundation in JavaScript, CSS and other fields + learning ability is OK. But there’s a huge need at this level, and there’s a unique need: development efficiency. To improve efficiency will have to hand on the tools to understand very detailed, such as XX framework of N optimization tips and so on. And this kind of thing can only rely on actual combat experience to accumulate, the foundation is solid influence is also limited.

Application architecture layer. Technology selection, development of the underlying framework, development specifications, design application structure… These things involve breadth and depth of knowledge, an understanding of business requirements is important, and the likelihood of encountering specific, purely technical problems is much greater. Compilation principles, algorithms, and data structures all come into play here.

Infrastructure layer. Automated build, deployment, testing, loading solutions, performance optimization, code quality management, and more… This layer is much more technical and covers a lot of things common to all software engineering, not just the front end.

LiNianCeng. By borrowing ideas from other fields in the whole computer system, the front-end development paradigm is fundamentally improved. That’s what the people at Facebook are doing now. In fact, the people who can do this are not as proud as they used to be.

Above these levels are not a development route, is not to say that a front end has to be at the highest level, it’s not reality, because each level can be delving into, for companies, especially large ones, tend to be more need to be in the one level deep specialization, but not every level half a bucket of water (demand for multi-level specialization is some, But there are not many senior positions.

Don’t look at the specific business needs to talk about a front end is not reliable is playing rogue. A person’s incompetence is measured by how well his skill tree matches his current responsibilities. Whether it is necessary to learn specific knowledge is a matter for discussion. Ideally, if someone has a solid background doing front-end work, they can start working on the architecture layer and infrastructure layer very quickly. But if you don’t have a foundation, it’s up to you to have the ambition to move on to other layers. If you’re really interested, you’ll find your weaknesses during the research process and have enough motivation to make up for them.

A framework can fire, the most critical is not the technical implementation of nb, but whether this framework represents a (in its era) advanced development ideas.

The above content comes from Zhihu of Yuxi, Especially