1. HTML5
1.1. Semantic HTML
1.2. SEO
1.3. APIs
1.3.1. Local/SessionStorage
1.3.2. Service Workers
1.3.3. IndexedDB
1.4. WebComponents
1.4.1. Shadow DOM
1.4.2. Custom Element
1.5. SVG
1.6. DOM
1.6.1. Element API
1.6.2. Document API
2. Frameworks / Libraries
2.1. Angular
2.2. Google Polymer
3. CI/Tooling
3.1. Jenkins
3.1.1. Jekinsfile
3.1.2. NPM publish
3.2. Testing
3.3. Review
4. Paradigms
4.1. Functional programming
4.1.1. Map/Reduce
4.2. Reactive programming
4.2.1. RxJS
4.2.1.1. Observables
4.2.1.1.1. Hot
4.2.1.1.2. Cold
4.2.1.2. Subjects
4.2.1.3. Operators
4.2.1.3.1. Merge
4.2.1.3.2. Concat
4.2.1.3.3. Switch
4.2.1.3.4. Exhaust
4.2.1.4. Schedulers
4.2.1.5. Best-practices
4.2.1.5.1. takeUntil
4.2.1.5.2. share
4.2.1.5.3. Side-effects
4.3. State management
4.3.1. Redux
4.3.2. ngrx
4.3.2.1. Reducers
4.3.2.2. Effects
4.3.2.3. Stores
4.3.2.4. Actions
4.4. Progressive Web Applications
5. JavaScript
5.1. ES6/ESNext
5.1.1. Type system
5.1.2. Concurrency model
5.1.2.1. Event Loop
5.1.2.2. Async/Await
5.1.2.3. Promises
5.1.3. Scopes
5.1.3.1. Function
5.1.3.2. Block
5.2. TypeScript
5.2.1. Special types
5.2.1.1. Additional types
5.2.1.2. Union/Intercetion
5.2.1.3. Inference
5.2.2. Generics
5.2.3. Decorators
5.2.4. TSConfig / module resolution
5.3. JSON
5.4. Bundlers
5.4.1. Webpack
5.4.1.1. Loaders
5.4.1.2. Plugins
5.4.1.3. Config
5.4.2. Rollup
5.5. Linters
5.5.1. ESLint
5.5.2. TSLint
5.6. Transpilers
5.6.1. Babel
5.6.2. TSC
6. Common knowledge
6.1. Basics
6.1.1. Terminal usage
6.1.2. Character encodings
6.2. Git
6.3. Transfer layer
6.3.1. HTTPS
6.3.2. REST
6.3.3. WebSocket
6.4. Package management
6.4.1. NPM
6.4.1.1. Semantic versioning
6.4.1.2. package.json
6.4.1.3. Task runner
6.4.2. Yarn
7. CSS
7.1. Box model
7.2. Selectors
7.2.1. Pseudo
7.3. Media queries
7.4. Transitions
7.5. Layouting
7.5.1. Classic inline/block
7.5.2. Flexbox
7.5.3. Grid
7.6. Dialects
7.6.1. SASS
7.6.1.1. Imports/partials
7.6.1.2. Mixins/functions/variable
7.6.1.3. Interpolation
7.6.1.4. Nesting