- Learn the basics
- Writing semantic HTML
- Basic SEO
- Accessibility
- Learn the basics
- Floats
- Positioning
- Display
- Box model
- CSS Grid
- Flex Box
- Media queries
- CSS 3
- Variable - Framework A119
- Syntax and basic constructs
- Learn DOM manipulation - JS Clock & 15 methods on my CodePen
- Learn fetch API / Ajax (XHR)
- ES6+ and modular Javascript
- Async / Await
- Hoisting
- Event bubbling
- Scope prototype
- Shadow DOM
- Strict
- How browsers work
- DNS
- HTTP
- Yarn
- NPM - Framework A119
- SASS
- Bootstrap
- Material UI - JSPOWER.io
- BEM
- Prettier
- ESLint
- NPM scripts
- Webpack
- React.js - Leboncoin & Deliveroo & TO DO List & Allociné
- Redux
- Overmind.js
- Next.js
- Context API
- Styled components
- CSS modules
- Emotion
- Jest
- Enzyme
- Cypress
- Unit
- Integration
- Functional
- Typescript
- ReasonML
- React Native - Tinder clone & Human Challenge app
- GatsbyJS - Pokedex
- Electron - Netflix desktop app & Cosynk desktop app
- Storage
- Web sockets
- Service workers
- PRPL Pattern
- RAIL Model
- Performance Metrics
- Using Light House
- Using DevTools
- Node.js
- Mocha
- Chai
- Jasmine
- MySQL
- Express.js - JSPOWER.io back end & Human Challenge back end
- MongoDB - JSPOWER.io back end & Human Challenge back end
- Memcached
- Redis
- OAuth
- Basic authentication
- Token authentication - JSPOWER.io back end & Human Challenge back end
- JWT
- OpenID
- RabbitMQ
- ElasticSearch
- Solr
- Apache
- Nginx
- Web sockets
- GraphQL - Pokedex
- Docker
- RESTful APIs
- Clean Code (Read in progress...)
- The Clean Coder
- Clean Architecture
- Eloquent JavaScript
- REST of Roy Fielding
- Elixir
- Phoenix
- Svelte