preface

Seven Times HAVE I Despised my Soul by Gibran

The first was humble when it could have been. The second time, when it is empty, it is filled with love; The third time, given the choice between the difficult and the easy, he chose the easy; The fourth time he committed a mistake and comforted himself by supposing that others would do the same. The fifth time, it is free and weak, but it is regarded as life’s perseverance; The sixth time, when it despised a hideous face, knowing not that it was one of its own masks; The seventh time, it side in the sludge of life, although unwilling, but also timid.

First, front-end programmer standards and requirements

1. Primary front-end:

Familiar with front-end basic knowledge such as HTML, JS, CSS. Ability to use an MVVM framework for simple business development. When faced with complex components and modules, they will use existing wheels. Can use Baidu, Google and other search tools to search for problems.

2. Intermediate Programmer (Ali P5)

In addition to front-end basic knowledge, familiar with computer, network and other professional basic knowledge. Familiar with the technology stack used in the job development business. In addition to the MVVM framework, you can also learn about webPack configuration. Understand a requirement from development to launch and be responsible for each step. Basic logical analysis, problem decomposition, summary and other abilities. Familiar with basic data structure and algorithm, proficient in code writing. I know how to find problems from reliable channels. When I cannot find suitable wheels, I can make some simple wheels to assist business development.

3. Senior Programmer (Ali P6)

Independent ability to complete module level work with high quality. Be familiar with the stacks used in the work and understand how they work. Be able to find pain points in the whole life cycle of a requirement from development to launch, and use technical solutions to improve efficiency. Be able to analyze and disassemble problems or requirements in module dimension, and make a relatively reasonable implementation plan. Good command of basic data structure and algorithm, code in line with standard, clear logic. Good technical selection ability.

Second, big front-end development trend

1. By field

A, background direction: traditional big Web direction, nodeJS, Express + KOA, MySQL+MongoDB+Redis B, data visualization direction: webGL, Canvas, SVG, Echart/HiChart, D3 C, AI direction: TensorFlow D, Game direction: Cocos Creator, Egret

2. Divide by end

PC web Desktop Applications: Electron, NW, PWA Desktop Mobile: Applets, Fast Apps, UniApp and Taro Web Rendering: Applets, Fast Apps, PWA Native Rendering: RN, Weex, Flutter

2. By frame

Vue family bucket:

Vuex, VUE-Router, VUE-CLI, Element-UI /Cube-ui/ ant- UI

React Bucket: Redux, React-Router, Redux-Saga, DVA, UMI, (Mobx), and Ant-Design

Presents buckets

3. Study suggestions

1. The encoding

Do more business, try different businesses, the goal is to become a journeyman first. Learn to imitate, reference Daniel’s coding style, copy. Use tools such as ESLint to discipline yourself. You can copy it again.

Work 2.

Familiar with the business, seriously participate in the requirements review; Improve efficiency, try not to be interrupted when working, only coding, reduce the time in the group to fill water and bucket map.

Study 3.

Learning content: Front-end foundation, JS, CSS, HTML repeated learning. A front end MVVM framework used in work. Get a broad knowledge of HTTP, regular expressions, Web security, performance optimization, design patterns, data structures, and algorithms.

Community: MoOCs Notes, Nuggets, CSDN, InfoQ and other Chinese communities, read more high-quality articles to learn. GitHub: Learn how to use GitHub and know basic operations such as Clone, fork, pull, and push. Documentation: The best way to get started on each stack is through its documentation, going through the documentation systematically and hammering away at each example.

4. Improve:

Participated in the development of the group component library. Some general JSSDK developers learned the componentalization and modularization development way, learned to reuse and encapsulate, and reduced the operation of CV. Take responsibility for the quality of your code and organize regular code reviews.

Four, learning methods

1. Pick a concept

Pick a concept you want to learn. Teaching this concept (the soul of feynman’s technique) involves trying to explain it to new people in the field, even to ten-year-old children, and get it across. This, on the one hand, deepens your understanding, and on the other hand, finds the nodes or jams you don’t understand. You just pretend that you’re going to share what you’ve learned, and you’re going to share it with all your colleagues, friends, family, how do you get them to fully understand the tech stack.

2. Fill in the blanks

When you can’t explain, go back to the answer. Go back to your books, to your classmates, to your teachers, to people who already know, and study the concept again. The result is that you should be able to explain the concept fluently again.

3. Simplify language and try analogies

Continue to sublimate. If it’s an academic or abstract word, try to explain it in simple terms. Or, you can compare it to something else. This can also be interpreted as an in-depth look at the technology stack