General list of topics
This page contains a list of the topics to be covered.
Programming
- History of Javascript
- Components of a web-page (HTML/CSS/Javascript)
- Javascript consoles (Browsers, Node)
- Core Javascript / DOM / Node extensions
- Numbers / Strings
- Regular expressions and string manipulation
- Arrays
- Standard methods
- Arrays as queues/stacks
- Iteration
- Higher-order functions (forEach/map/filter/reduce)
- Dictionaries
- “object literals”
- Iteration using for-in
- Iteration via array iteration over the keys
- Functions
- Definitions and calls
- Functions as values, closures
- Using functions to create private scope
- Functions used for late initialization
- Functions that rewrite themselves
- Functions used for init-branching
- Functions called only once
- Equality gotchas
==
vs ===
null
vs undefined
vs NaN
- Objects
- as key/value pairs
- using
this
in object methods
Object.create
and prototypes
- Constructors and
new
- The value of
this
depends on how a function is called
- Global vs local variables. The global object
- DOM Interaction
- Loading script in page
- Timers
- The DOM tree and manipulating it
- Events
- The Event loop
- Handling DOM events
- Event bubbling, defaults
- Introduction to jQuery
- Using XMLHttpRequest
- Design Patterns
- Components of a design pattern
- Creational / Structural / Behavioral patterns
- Creational
- Constructor pattern
- Module pattern
- Singleton pattern
- Mixin pattern
- Structural
- Facade
- Proxy
- Adapter
- Flyweights?
- Behavioral
- Observer pattern
- Publish/Subscribe pattern
- Mediator pattern
- Architectural: Model-View-Controller patterns
- Async Patterns
- Callbacks
- Promises
- Throttling
Practices
- Pair programming
- Testing
- Tests first
- Writing unit tests
- Writing integrated tests
- Design small separately testable pieces
- Testing via node and in browser
- Stubs, Mocks, Spies
- Code style
- Documentation
- Markdown
- JSDoc basics
- Doccu?
- Version Control Systems
- Git and GitHub
- Using GitHub’s Issues
- Deployment, Bundling