Programs for Learning to Code

Programs on learning subjects and specializations - always know what you have to learn.

Rules

Sea Cat Wizard
Dec 24, 2021 00:29:05
JavaScript. Full program

This program is divided into 3 parts (levels) because we decided it has more sense than just slumping all the topics together (you can find all the topics in one list at the end of the program). This division is based on our personal experience and doesn't pretend to be the ultimate truth.

JavaScript: Basic level
  1. The JavaScript code structure. Statements. Using semicolons and quotes. Comments.
  2. Declarations. Variables: var and let. Allowed variable names and naming conventions. Constants.
  3. Data types. Number (integer and float). Big integer. Strings. Boolean. Null. Arrays. Objects and symbols. The typeof operator. Data type conversions: explicit and implicit.
  4. Literals: array, boolean, floating-point, numeric, string, regular expressions, objects.
  5. Strings. Special characters in strings. Escaping strings.
  6. Statements. Block statement. Condition statement. Switch statement. Break statement.
  7. Operators. Assignment operators. Assignment to object properties. The order of evaluation.
  8. Operators (continued). Comparison operators. Arithmetic operators. Bitwise operators. Bitwise logical and shift operators. Logical operators. 
  9. Operators (continued). String operators. Ternary (conditional) operator. Comma operator. 
  10. Loops. For statement. Do...while statement. Break, continue, and label statements.
  11. Functions. Function declarations and expressions. Named function expression. JS predefined functions. Eval function and its drawbacks. Function parameters.
  12. Handling errors. Exceptions. Types of exceptions. Throw statement. Try...catch...finally statement. 
  13. Objects. Object properties. Accessing by name (including the bracket notation) or index. Assigning values to the properties. Deleting properties.Object methods.
  14. Data types: numbers. Binary, octal, hexadecimal, and exponential numbers. 
  15. Data types: Date object. Creating date from a string, timestamp. Obtaining the current time. Compare datetime values.
  16. Data types: Arrays. Creating, initializing, and populating arrays. Referring to array elements. The length property. Iterating over arrays. 
  17. DOM. Window properties and methods. objects. Window functions: alert, confirm, prompt and others.  Main DOM interfaces: selectors, creating elements, getting and setting attributes.
JavaScript: Intermediate level
  1. JavaScript standards. The "use strict" directive.
  2. Variable scope. Global and local variables. Variable hoisting.
  3. Enhanced objects. Destructuring assignment. Object and array destructuring. Nesting. Chaining assignments. 
  4. Short-circuit evaluation. Nullish coalescing operator ??.
  5. Unary operators: delete, typeof, void. Relational operators: in and instanceof. Operator precedence.
  6.  For...in statement. For...of statement.
  7. Functions. Defining functions vs executing (calling) functions. Function scope and this inside a function. Function stack. Recursion. Function hoisting.
  8. Functions (continued).  Default parameters. Using destructuring as an object parameter. Rest parameters. Arguments object.
  9. Functions (continued). Nested functions. Closures. Preservation of variables. Multiple-nested functions. Name conflicts. Arrow functions and this value.
  10. Functions (continued). Recursive calls. Function variables: let vs var. Timed and repeated calls (setTimeout and setInterval).
  11. Exceptions. Nesting try-catch statements. Error objects.
  12. Objects. Object methods and method shorthand. this in methods. Creating objects: using initializers, constructions, Object.create() method. Iterating over properties: "for..in" loop, Object.keys method and Object.getOwnPropertyNames(o) method.
  13. Objects (continued). Object reference: this. Getters and setters. Comparing objects. Cloning objects: shallow and deep copies.
  14. Number object. Number object properties and methods. Number prototype methods. Working with numbers: Math object. Formatting numbers with Internationalization API.
  15. Data types: Date object. Constructors: passing string, timestamp, multiple parameters, no parameters. Global and local time, UTC. Formatting date and time. Using locales with the Internationalization API. Date methods. Updating dates. Comparing dates.
  16. Data types: strings. String literals. Hexadecimal and Unicode escape sequences. Unicode code point escapes. String object: properties and methods. Using back-tick: multiline strings and embedded expressions. Collation: comparing and sorting strings with Internationalization API.
  17. Asynchronous programming. Using callbacks. Nested callbacks. Handling errors while working with callbacks. Drawbacks of using callbacks.
  18. Asynchronous programming (continued). Promise object. Promises: guarantees, chaining, then and catch. Passing a function to then as a parameter. Error propagation. Rejection events. Unhandled rejections.
  19. Asynchronous programming (continued). Async keyword, async functions. What async functions return. Await keyword. Error handling with async/await.
  20. JavaScript modules. Modules vs standard scripts. .mjs and .js files. Exporting and importing features. Modules-level scope. When the module code is evaluated. Module configuring. this in modules. Default exports vs named exports. Using aliases with the as keyword for export and import.
  21. Web API. DOM. DOM data types: Document, Node, Element, NodeList, Attr, NamedNodeMap. 
  22. Other Web APIs: IndexedDB, Canvas API, Geolocation API, Storage API, Web Workers API, WebGL, Websockets, XMLHttpRequest, Fetch API, Audio and Video.
JavaScript: Advanced level
  1. Functions (continued). Caching functions. Function call and apply methods. Borrowing a method. Losing this: function binding as a solution. Binding functions. Partial functions.
  2. Functions (continued). The execution context and functions stack. 
  3. Functions (continued). Function as an object. Function's properties: length and name. Creating a function with a new keyword. Currying.
  4.  Property flags: writable, enumerable, configurable. Property descriptor and Object methods getOwnPropertyDescriptor and defineProperty. Limit access to the object: seal, freeze, and such methods.
  5. Object-oriented programming. Functions instead of classes. Extending prototypes. Inheritance properties. [[Prototype]] hidden property. Prototyping functions. Multiple inheritance? - no. Local and inherited values. Special object property __proto__ and instanceof operator. Built-in prototypes. Borrowing from prototypes.
  6. Regular expressions: creating in JavaScript. RegExp object: constructor, properties, methods. Using special characters. Escaping. Remembering a part of the matched substring with the parentheses. Searching with flags.
  7. Array methods. ForEach, map, filter, some, reduce methods. Array-like objects and working with them. Multidimensional arrays. Typed arrays: ArrayBuffer and DataView objects.
  8. Data types: keyed collections. Map object. Object and map compared. WeakMap object. Set object. Converting between Array and Set. Array and Set compared. WeakSet object.
  9. Promises. all, race, and any methods for composition promises. Deferred then. Tasks and microtasks, promises as microtasks. Nesting promises and how to avoid them.
  10. Iterators. Iteration protocol. Generator functions. Iterables. User-defined and built-in iterables. Yield and yield* keywords. Generator throw and return methods.
  11. Meta programming. Proxy object. Handlers and traps. Iteration with ownKeys and getOwnPropertyDescriptor. Protected properties with deleteProperty. Wrapping functions with proxy. Revocable proxy. Refrect object. Proxying getters. Private fields.
  12. Module objects. Exporting classes. Aggregating modules. Dynamic module loading with import() keyword. Using await within modules.
  13. ES6 classes. Class syntax. Class expression. Constructor method. Getters and setters. Computed names. Class fields. Function properties. Binding methods with bind and arrow syntax.
  14. Classes (continued). Inheritance: extend keyword. Overriding methods and constructor. Super keyword. Overriding fields. [[HomeObject]] internal property and forever binding methods to it. Applying instanceof operator. Built-in classes (Array, Map) and extending them. Static inheritance for built-in classes.
  15. Classes (continued). Static properties and methods, inheritance of static properties and methods. Protected properties and methods, implementation with getters and setters. Private fields. Read-only fields.
  16. Classes (continued). Mixins as a way to implement multiple inheritance.
The whole list
  1. The JavaScript code structure. Statements. Using semicolons and quotes. Comments.
  2. JavaScript standards. The "use strict" directive.
  3. Declarations. Variables: var and let. Allowed variable names and naming conventions. Constants.
  4. Variable scope. Global and local variables. Variable hoisting.
  5. Data types. Number (integer and float). Big integer. Strings. Boolean. Null. Arrays. Objects and symbols. The typeof operator. Data type conversions: explicit and implicit.
  6. Literals: array, boolean, floating-point, numeric, string, regular expressions, objects. Enhanced objects.
  7. Strings. Special characters in strings. Escaping strings.
  8. Statements. Block statement. Condition statement. Switch statement. Break statement.
  9. Operators. Assignment operators. Assignment to object properties. Destructuring assignment. Object and array destructuring. Nesting. Chaining assignments. The order of evaluation.
  10. Operators (continued). Comparison operators. Arithmetic operators. Bitwise operators. Bitwise logical and shift operators. Logical operators. Short-circuit evaluation. Nullish coalescing operator ??.
  11. Operators (continued). String operators. Ternary (conditional) operator. Comma operator. Unary operators: delete, typeof, void. Relational operators: in and instanceof. Operator precedence.
  12. Loops. For statement. Do...while statement. Break, continue, and label statements. For...in statement. For...of statement.
  13. Functions. Function declarations and expressions. Named function expression. JS predefined functions. Eval function and its drawbacks. Defining functions vs executing (calling) functions. Function scope and this inside a function. Function stack. Recursion. Function hoisting.
  14. Functions (continued). Function parameters. Default parameters. Using destructuring as an object parameter. Rest parameters. Arguments object.
  15. Functions (continued). Nested functions. Closures. Preservation of variables. Multiple-nested functions. Name conflicts. Arrow functions and this value.
  16. Functions (continued). Caching functions. Function call and apply methods. Borrowing a method. Losing this: function binding as a solution. Binding functions. Partial functions.
  17. Functions (continued). The execution context and functions stack. Recursive calls. Function variables: let vs var.
  18. Functions (continued). Function as an object. Function's properties: length and name. Creating a function with a new keyword. Timed and repeated calls (setTimeout and setInterval). Currying.
  19. Handling errors. Exceptions. Types of exceptions. Throw statement. Try...catch...finally statement. Nesting try-catch statements. Error objects.
  20. Objects. Object properties. Accessing by name (including the bracket notation) or index. Assigning values to the properties. Deleting properties. Property flags: writable, enumerable, configurable. Property descriptor and Object methods getOwnPropertyDescriptor and defineProperty. Limit access to the object: seal, freeze, and such methods.
  21. Objects (continued). Object methods and method shorthand. this in methods. Creating objects: using initializers, constructions, Object.create() method. Iterating over properties: "for..in" loop, Object.keys method and Object.getOwnPropertyNames(o) method.
  22. Objects (continued). Object reference: this. Getters and setters. Comparing objects. Cloning objects: shallow and deep copies.
  23. Object-oriented programming. Functions instead of classes. Extending prototypes. Inheritance properties. [[Prototype]] hidden property. Prototyping functions. Multiple inheritance? - no. Local and inherited values. Special object property __proto__ and instanceof operator. Built-in prototypes. Borrowing from prototypes.
  24. Data types: numbers. Binary, octal, hexadecimal, and exponential numbers. Number object. Number object properties and methods. Number prototype methods. Working with numbers: Math object. Formatting numbers with Internationalization API.
  25. Data types: Date object. Constructors: passing string, timestamp, multiple parameters, no parameters. Global and local time, UTC. Formatting date and time. Using locales with the Internationalization API. Date methods. Updating dates. Comparing dates.
  26. Data types: strings. String literals. Hexadecimal and Unicode escape sequences. Unicode code point escapes. String object: properties and methods. Using back-tick: multiline strings and embedded expressions. Collation: comparing and sorting strings with Internationalization API.
  27. Regular expressions: creating in JavaScript. RegExp object: constructor, properties, methods. Using special characters. Escaping. Remembering a part of the matched substring with the parentheses. Searching with flags.
  28. Data types: Arrays. Creating, initializing, and populating arrays. Referring to array elements. The length property. Iterating over arrays. Array methods. ForEach, map, filter, some, reduce methods. Array-like objects and working with them. Multidimensional arrays. Typed arrays: ArrayBuffer and DataView objects.
  29. Data types: keyed collections. Map object. Object and map compared. WeakMap object. Set object. Converting between Array and Set. Array and Set compared. WeakSet object.
  30. Asynchronous programming. Using callbacks. Nested callbacks. Handling errors while working with callbacks. Drawbacks of using callbacks.
  31. Asynchronous programming (continued). Promise object. Promises: guarantees, chaining, then and catch. Passing a function to then as a parameter. Error propagation. Rejection events. Unhandled rejections. all, race, and any methods for composition promises. Deferred then. Tasks and microtasks, promises as microtasks. Nesting promises and how to avoid them.
  32. Asynchronous programming (continued). Async keyword, async functions. What async functions return. Await keyword. Error handling with async/await.
  33. Iterators. Iteration protocol. Generator functions. Iterables. User-defined and built-in iterables. Yield and yield* keywords. Generator throw and return methods.
  34. Meta programming. Proxy object. Handlers and traps. Iteration with ownKeys and getOwnPropertyDescriptor. Protected properties with deleteProperty. Wrapping functions with proxy. Revocable proxy. Refrect object. Proxying getters. Private fields.
  35. JavaScript modules. Modules vs standard scripts. .mjs and .js files. Exporting and importing features. Modules-level scope. When the module code is evaluated. Module configuring. this in modules. Default exports vs named exports. Using aliases with the as keyword for export and import. Module objects. Exporting classes. Aggregating modules. Dynamic module loading with import() keyword. Using await within modules.
  36. Web API. DOM. DOM data types: Document, Node, Element, NodeList, Attr, NamedNodeMap. Window properties and methods. objects. Window functions: alert, confirm, prompt and others.  Main DOM interfaces: selectors, creating elements, getting and setting attributes.
  37. Other Web APIs: IndexedDB, Canvas API, Geolocation API, Storage API, Web Workers API, WebGL, Websockets, XMLHttpRequest, Audio and Video.
  38. ES6 classes. Class syntax. Class expression. Constructor method. Getters and setters. Computed names. Class fields. Function properties. Binding methods with bind and arrow syntax.
  39. Classes (continued). Inheritance: extend keyword. Overriding methods and constructor. Super keyword. Overriding fields. [[HomeObject]] internal property and forever binding methods to it. Applying instanceof operator. Built-in classes (Array, Map) and extending them. Static inheritance for built-in classes.
  40. Classes (continued). Static properties and methods, inheritance of static properties and methods. Protected properties and methods, implementation with getters and setters. Private fields. Read-only fields.
  41. Classes (continued). Mixins as a way to implement multiple inheritance.
Please login to leave a comment.