Frontend learning path, 前端学习路线
- Intro to JavaScript
- What is JavaScript?
- Data Types & Variables
- Conditionals
- Loops
- Functions
- Arrays
- Objects
- JavaScript Design Patterns
- Changing Expectations
- Refactoring
- Using an Organizational Library
- Exploring Unfamiliar Code
- Object-Oriented JavaScript
- Objects in Depth
- Functions at Runtime
- Classes and Objects
- JavaScript Promises
- Creating Promises
- Chaining Promises
- Asynchronous JavaScript Requests
- Ajax with XHR
- Ajax with jQuery
- Ajax with Fetch
- JavaScript Testing
- Rethinking Testing
- Writing Test Suites
- Intro to HTML and CSS
- HTML Syntax
- HTML Syntax Problem Set
- CSS Syntax
- CSS Syntax Problem Set
- HTML5 Canvas
- HTML5 Canvas Basics
- From Pixels to Animation
- Building High Conversion Web Forms
- Efficient Inputs Part 1
- Efficient Inputs Part 2
- Fast Forms
- Touch Support
- Responsive Web Design Fundamentals
- Why Responsive
- Starting Small
- Building Up
- Common Responsive Patterns
- Optimizations
- Responsive Web Design Fundamentals
- Why Responsive
- Starting Small
- Building Up
- Common Responsive Patterns
- Optimizations
- Website Performance Optimization
- Introduction
- Critical Rendering Path
- Easy HTML, CSS and JavaScript optimizations
- Browser Rendering Optimization
- The Critical Rendering Path
- App Lifecycles
- Weapons of Jank Destruction
- JavaScript
- Styles and Layout
- Compositing and Painting
- Web Tooling & Automation
- Introduction
- Productive Editing
- Powerful Builds
- Expressive Live Editing
- How to Prevent Disasters
- Awesome Optimizations
- HTTP & Web Servers
- Requests & Responses
- The Web from Python
- HTTP in the Real World
- Networking for Web Developers
- From Ping to HTTP
- Names and Addresses
- Addressing and Networks
- Protocol Layers
- Big Networks
- Client-Server Communication
- HTTP’s Request Response Cycle
- HTTP/1
- HTTPS
- HTTP/2
- Security
- Front-End Interview Prep
- Interview Practice