Skip to content

Latest commit

 

History

History
194 lines (174 loc) · 3.83 KB

File metadata and controls

194 lines (174 loc) · 3.83 KB

Prerequisites

Essential

  • Basics of computer science

Recommended

  • Git and github
  • Problem solving
  • Internet and web

Legend

  • Basic programming node ( just look briefly through it if you have experience )
  • Javascript specific ( important javascript specific concept )
  • high priority
  • Links ( links )

0. How to not lose your mind

  • Js being weird
  • How to learn from this roadmap
  • Learning is a marathon

1. About javascript

  • What can you use it for
  • History of javascript
  • Javascript for haters
  • Where you can run javascript
    • Browser
    • Nodejs
    • Something VERY IMPORTANT about javascript ( explain how weird all there envs are )
  • Javascript is NOT Nodejs
  • Javascript is NOT Ecmascript

2. Basics of javascript

  • 2.1 Variables
    • Datatypes
      • Primitives
      • Non-primitives
      • Immutability
      • Why I lost a hackathon
    • Declarations - const, let, var
    • Hoisting
    • Scopes
    • Truth about js variables
    • Type casting
      • implicit casting
      • explicit casting - casting functions
  • Basic control flow
    • If statement
    • switch statement
    • mapping
  • 2.2 Functions
    • "Classic" functions
    • Arrow functions
    • Function Expressions vs Function Declarations
    • IIEF
    • Callbacks
  • 2.3 Loops
    • for / while
    • for of
    • for in
    • break / continue
  • 2.4 Data manipulation functions
    • Map
    • filter
    • reduce
    • forEach
    • splice
    • slice
  • 2.5 Equality comparions
    • == and ===
    • isEqual
    • isLooselyEqual
    • They are all floats...
    • isNan
  • 2.6 Basic frontend javascript
    • Document and window
    • Understanding the dom
    • Interacting with DOM
      • Node vs element
      • Node attributes
      • Node properties
      • Search methods
      • Node size, scrolling and coordinates
    • Browser events
      • Event listeners
      • Alerts
      • e object
      • dispatching custom events
      • mouse events
      • keyboard events

3.Core concepts

  • Objects

    • About objects and js
    • Everything in javascript is an object
      • The "new" operator
    • Objects references / copying
    • Garbage collection
    • Conversion to primitives
  • Data structures

    • JSON
    • Map
    • WeakMap
    • Set
    • WeakSet
    • Object Keys
    • Rest parameter
  • "this" keyword

    • In arrow functions
    • In normal functions
    • In objects
    • In global scope
    • binding
      • call
      • apply
      • bind
  • Prototype

    • Prototypes explained
    • Prototypal inheritance
    • Object prototypes
    • Function prototypes

.Transpilers - Babel

. Syntactic sugar

  • ?? ( nullish coalescence )
  • !! ( double bang )
  • destructuring ( spread operator )
  • optional chaining .?
  • inline if
  • template literals
  • Javascript weirdness

. Code quality

  • Use strict
  • Ninja code ( must read !! )
  • Common standards
  • Good practices
  • Use a typing system

.Modules and packaging

  • Common js
  • ES6

. Advanced javscript

  • Closures
  • Design patterns
    • Patterns
      • Strategy
      • Decorator
      • Observer
      • Factory
      • Adapter
      • Proxy
      • Monad
    • Resources
      • Video course
      • Ukrainean website
      • Design patterns for humans
  • Javascript Event loop
  • Asyncronous javascript
    • Fetch api
    • Callback hell
    • Promises
    • async/await
    • setTimeout
    • setInterval
    • Promisyfing a function
  • Symbols
  • Iterators
  • Generators
  • Advanced frontend specific concepts
    • Web workers
    • Dev tools
    • Performance improvements techniques
    • Browser storage
    • Frontend development roadmap

Typecheckers

  • Typescript
  • JSDoc

Consider continuing with

  • Frontend development roadmap
  • Backend development roadmap

Concepts worth checking *