2020 Front-end learning route summary
GitHub sees a good front-end learning roadmap, from front-end foundation to front-end engineering, and then to cross-end, covered with knowledge points, highly recommended reading.
Below the picture is a text version of my translation, you can see the picture first and then see the text.
✔ Come ︎
➤ Come to ︎
➤ ➤ ︎ says you don’t need to follow a strict order of arrival in the foreground, but can add your knowledge at any time
– Indicates that the user is no longer recommended
Computer network
Mastering the basis of computer network is the basic quality of a front-end engineer. It is recommended to learn the following knowledge first:
- ➤ How does ︎ Internet work
- ✔ ︎ HTTP protocol
- ✔︎ How the browser works
- ➤ DNS and its operational mechanism
- ✔︎ Learn about domain names, web hosting
HTML
- ➤ Learn the basics of HTML, tags, elements, form validation, and more
- ➤ ➤ come to ︎
- ✔ Web Accessibility ︎
- ✔ Come to ︎
CSS
- ✔︎ Learn the basics of CSS
- ✔︎ Make layouts: float, position, display, box model, grid layout, elastic layout
- ✔ Responsive Design and media query (@media)
- ✔︎ Create a simple web page in conjunction with HTML as best practice
JavaScript
- ➤ Learn grammar and basic structure
- ✔︎ Learn how to work DOM
- ➤ Learn Fetch API/Ajax (XHR)
- ➤ ➤ ︎ ES6+ and modular JavaScript
- ✔︎ Learn about variable promotion, event bubble mechanisms, scopes, prototypes, Shadow DOM, strict patterns, and more
Version control
- ➤ ➤ ︎ configure Git
- ✔︎ Create an account and learn to use GitHub
- ✔︎ Create an account and learn to use GitLab
Web Security knowledge
- ✔ ︎ HTTPS
- ✔︎ Content Security Policies (CSP)
- ✔︎ Cross-domain resource sharing
- ✔︎ OWASP Security risk
The above content is the most basic part of the front end, it is recommended to spend more time, master every knowledge point.
From there, you’ll move into the front-end engineering section, where you’ll be exposed to many different frameworks and learn to use a variety of tools to improve your development.
Package management tool
NPM and YARN are both good, just choose one to learn, they are similar
- ✔ ︎ NPM
- ✔ ︎ yarn
CSS framework
By using modern CSS frameworks and csS-in-JS writing, you don’t have to worry about CSS architecture, but familiarity with the BEM specification is a good choice.
- ➤ ︎ BEM, a standard for writing
- ✘ OOCSS
- ✘ SMACSS
CSS preprocessor
Choose one of the following three to study.
- ✔ ︎ SCSS
- ✔ ︎ PostCSS
- ✔ ︎ Less
Build tools
-
Task executor
- ✔ ︎ NPM scripts
- ✘ Gulp
-
Code review and formatting tools
- ➤ ➤ ︎ Prettier code formatting
- ✔︎ ESLint code check
- ✘ StandardJS
-
Module packaging
- ✔ ︎ Webpack
- ✔ ︎ Rollup
- ✔ ︎ Parcel
The front frame
It is recommended to learn React first and understand functional programming and componentization. Vue is characterized by fast handling, complete Chinese documents, and selective learning.
- ✔ ︎ React.js
- ✔ ︎ Redux
- ✔ ︎ MobX
- ✔ ︎ Vue.js
- VueX
- ✔ ︎ Angular
- RxJS
- NgRx
Modern CSS
- ✔ ︎ Styled Component
- ✔ ︎ CSS Module
- ✔ ︎ Styled JSX
- ✔ ︎ Emotion
- ✘ Radium
- ✘ Glamorou
Web components
- ✔ ︎ HTML template
- ✔︎ Customize elements
- ✔ ︎ Shadow DOM
CSS framework
There are two kinds of CSS frameworks, one is based on JavaScript framework developed applications. Recommended frameworks are:
- ✔ ︎ Reactstrap
- ✔ ︎ Material UI
- ✔ ︎ TailWind CSS
- ✔ ︎ available UI
The other is a pure CSS framework that is not used with JavaScript components by default.
- ✔ ︎ BootStrap
- ✔ ︎ Materialize the CSS
- ✔ ︎ Bulma
test
Here you need to learn how to use the following framework for unit, integration, and functional testing.
- ✔ ︎ Jest
- ✔ ︎ react – testing – the library
- ✔ ︎ Cypress
- ✔ ︎ Enzyme
Type checker
- ✔ ︎ ✔ ︎ TypeScript
- ✘ Flow
This is front-end engineering, and the next section covers performance, server-side rendering, and cross-ends, also known as the “big front end.”
PWA
- ✔ ︎Learn the Web API used in PWA:
- Storage
- Web Sockets
- Service Workers
- positioning
- notice
- Direction of equipment
- Payments, certificates, etc
- ✔ ︎Calculate, measure and improve performance:
- PRPL mode
- RAIL mode
- Performance indicators
- Learning to Use LightHouse
- Learn to use DevTools
Server side rendering
- ✔︎ Next. Js (reace.js)
- ✔︎ nuxt.js (vue.js)
- ✔︎ Universal (Angular)
✔ ︎ GraphQL
- ✔ ︎ Apollo
- ✔ ︎ Relay Modern
✔ ︎Static Site generation
- ✔ ︎ Next. Js
- ✔ ︎ GatsbyJS
- ✔ ︎ Nuxt. Js
- ✔ ︎ Vuepress
- ✔ ︎ JekyII
- ✔ ︎ Hugo
✔ ︎Mobile application development
- ✔ ︎ ReactNative
- ✔ ︎ Flutter
✔ ︎Desktop Application development
- ✔ ︎ Electron
- ✔ ︎ Carlo
- ✔ ︎ Proton Native
✔ ︎ WebAssembly
Conclusion, can not help but sigh front-end ecology is rich and colorful, there are a lot of things to learn, they do not understand a lot, some knowledge is also a little taste. There are so many directions, but you still need to find a point to dig deep.
If you’re new to the front end, don’t be intimidated by these frameworks; it’s more important to learn the basics and practice them.
The recommended Roadmap for GitHub will also have a backend and DevOps learning Roadmap that you can browse by yourself, and I’ll put together a text version of that Roadmap if you have time.
Keep Learning.