/front-end-curriculum

2022 Front-End Curriculum, development roadmap

2022 front-end curriculum



2022 web front-end roadmap

STEP 1. JavaScript Programming

contents
Fundamentals
- Development tool (VSCode)
- Unix basic command
- Git / GitHub
Node.js
- npm project
- package.json & module dependencies
- Modules & CommonJS
- VSCode Node debugging
JavaScript Syntax
- type, string, scope, closure, operator, switch, iterator, condition..
- ES2015+ features (destructuring, const, let, arrow, spread operator, for-of)
- New feature (Dynamic import, Nullish Coalescing, Optional Chaining..)
Function
- declaration and expression
- arguments, parameter
- calling stack
- arrow function
Function based programming design
- subroutine
- rest parameter, default parameter
- destructuring
- recursion
- pure function
Collection
- JavaScript data structures
- Array (APIs, Higher-rder functions)
- Object (Object literal, Handling Object property)
- Set & Map
String
- String manipulation, methods
- Regular Expressions
Asynchronous basic
- setTimeout
- JS stack & Callback Queue & Event loop
Clean code
- software maintenance
- maintainable code, readable code
- coding convention
Debugging
- JavaScript Errors
- Error handling
- VSCode or Chrome dev tools(source, console) debugging
OOP programming
- Object-Oriented Programming
- SOLID
- Classes and instance(object)
- prototype & Inheritance & Class Extends
- object literal pattern
- this, bind, apply, call
Unit test basic
- unit test basic
- understanding testing (why software testing is important?)
Algorithm training
- complexity
- stack, queue
- recursion
- search algorithm
- sort

STEP 2. Browser Web Development Basic

contents
Understanding HTTP
- Web Architecture
- Resource & URL
Browser & Server
- How browser works (Browser render cycle)
- How server works (Node.JS simple server)
- Request & Response
- HTTP (header, method, status, cookie, session)
HTML
- HTML structured design
- semantic tags
- Class and ID properties
- HTML debugging(Chrome Dev tools)
CSS
- Style properties
- Cascading
- Inheritance
- Selector
- Layout (float, position, boxmodel, flex)
- CSS debugging(Chrome Dev tools)
DOM Manipulation
- HTML & DOM
- DOM properties & method
- DOM manipulation(append, delete, move..)
- DOM traversal
Functional Programming
- Pure function
- Immutability
- Function Compose & Combinator
- Closure
- Currying & Partial application
- Iterator & Generator
- Lazy evaluation
- Monad & error handling
- Functional asynchronous handling
HTML Templating
- templating strategies
- template literal
Asynchronous communication
- Fetch API , axios library
- JSON
- Promise pattern
- Cross-Domian (SOP, CORS, JSONP)
UI Unit test
- DOM, Asynchronous test
- Using Test library (Jest)
Web Animations
- understanding web animations
- Browser Rendering pipeline
- CSS property( keyframe, transition, transform)
- requestAnimationFrame & requestIdleCallback
Resuable UI Components
- Reusable Component Design
- Practices
- Slide UI (infinite sliding)
- Tab UI
- Search-bar auto-completion
Web Service Application Architecture
- Modular programming (ES Modules)
- Project structure for Web services
Back-End application Basic(nodeJS)
- Express
- URL Routing and HTTP Response
- Template engine & Server-side rendering
- Building a RESTful API
UX programming - thinking.
- UX improving programming

STEP3. Browser Web Development Advanced

contents
CSS Advanced
- Layout (CSS Grid layout)
- Preprocessor (Sass)
- Responsive Web Design
- CSS Typed Object Model
Mobile Web
- Touch events
- Swipe gesture interaction
- Mobile web debugging
- PWA(service worker)
Performance & UXable technique
- Performance Diagnosis & Analysis
- Dynamic & mixed animation handling
- Throttling & Debounce
- Minimizing browser reflow
- Lazy loading
HTTP
- File-Uploader & Mulipart formdata
- Session
- token based authentication & jwt
Asynchornous technique
- promise APIs
- generator
- Async/await
- Erros handling
TypeScript
- Types
- union, interface, generics, Enums, Classes, Functions
Front-End Build
- NPM script
- build(webpack, parcel)
- Transpiling (babel)
- Development & Production mode
Front-End Env
- Linting(Eslint)
- Prettier
SPAs
- Understanding SPAs
- URL Routing & History API
- Fetch and Indicator
- Cache & LocalStorage
- Observer pattern
React Basic
- background & philosophy
- Renderng flow
- React features
- diff algorithm
- states & props

- Styling (CSS-in-JS)
- Styled Component, Emotion
- Hooks API
- JSX Syntax
- CRA based projects (step by step)
- Hooks based Component Design
React Advanced
- state management
- Flux, Recoil, react-query, SWR
- useReducer, useContext
- Optimization technique (React.memo, useCallback, useMemo, Suspense, Lazy)
- Concurrent mode
- React Test (Jest & React testing library)
- SSR
- Server Component
Web Multimedia APIs
- Audio, Video Element
- Web Socket
- WebRTC
- Canvas, WebGL, SVG
- Web Audio API
- Web MIDI API
- Web Speech API
- Web VR

{CODESQUAD } 😎