JavaScript

  1. JavaScript Essentials

    1. JavaScript Fundamentals
    2. Variables and Data Types
    3. Operators and Expressions
    4. Conditions and Loops
    5. Functions and Arrow Functions
    6. Scope, Hoisting and Closures
    7. Strings and Numbers
    8. Type Conversion and Coercion
    9. Date and Time
    10. Built-in Objects and Methods
  2. DOM and Browser

    1. JavaScript in HTML
    2. DOM Tree and Element Selection
    3. Creating, Modifying and Removing Elements
    4. DOM Traversal
    5. Events and Event Listeners
    6. Event Bubbling and Delegation
    7. Browser APIs
    8. Timers: setTimeout and setInterval
    9. Browser DevTools and Debugging
  3. Arrays and Objects

    1. Arrays and Array Methods
    2. Objects and Object Methods
    3. Destructuring and Spread Syntax
    4. Rest Parameters
    5. Iteration: for, for...of, for...in
    6. Map, Set and Other Collections
    7. References and Mutability
  4. Strings and Numbers

    1. String Properties and Methods
    2. Template Literals
    3. Searching and Extracting Substrings
    4. Replacing and Splitting Strings
    5. Trimming and Changing Case
    6. String Interpolation and Formatting
    7. Number Types and Precision
    8. Type Conversion and Parsing
    9. Math Operators and Remainder
    10. Number Formatting
    11. Working with BigInt
  5. Loops

    1. for Loop
    2. while and do...while Loops
    3. for...of and for...in Loops
    4. break and continue
    5. Nested Loops
    6. Looping Through Arrays and Objects
    7. Array Iteration Methods: forEach, map, filter, reduce
    8. Loop Control and Common Pitfalls
    9. Performance and Loop Optimization
  6. Date and Time

    1. Date Object Fundamentals
    2. Creating Dates and Timestamps
    3. Getting and Setting Date Components
    4. Date Formatting and Localization
    5. Date Arithmetic and Comparisons
    6. Working with Timezones and UTC
    7. Parsing Date Strings
    8. Measuring Time Intervals
    9. Timers: setTimeout and setInterval
    10. Intl.DateTimeFormat
  7. Built-in Methods

    1. Math Object: round, floor, ceil, abs, min, max, pow, sqrt
    2. Random Numbers: Math.random
    3. Generating Random Integers
    4. Number Methods: toFixed, toPrecision, Number.isNaN
    5. String Methods: includes, startsWith, endsWith, slice, substring, split, replace
    6. Array Methods: push, pop, shift, unshift, splice, slice
    7. Array Methods: includes, indexOf, find, findIndex
    8. Array Methods: map, filter, reduce, forEach, sort
    9. Array Methods: some, every, flat, flatMap
    10. Object Methods: keys, values, entries, assign
    11. Object Methods: fromEntries, hasOwn
    12. JSON: stringify and parse
    13. Set and Map
    14. Optional Chaining and Nullish Coalescing
    15. Spread Syntax and Rest Parameters
  8. Functions in JavaScript

    1. Pure Functions
    2. Higher-order Functions
    3. Callbacks and Function Composition
    4. Immutability
    5. Closures and Currying
    6. Functional Array Methods
    7. Separation of Concerns
  9. Browser Events

    1. Event Fundamentals and addEventListener
    2. Mouse Events: click, dblclick, mousedown, mouseup, mousemove
    3. Pointer Events: pointerdown, pointerup, pointermove
    4. Keyboard Events: keydown, keyup
    5. Keyboard Shortcuts and Key Detection
    6. Input Events: input, change, focus, blur
    7. Form Events: submit, reset
    8. Scroll Events and Scroll Position
    9. Wheel Events
    10. Touch Events and Mobile Interaction
    11. Drag and Drop Events
    12. Clipboard Events
    13. Window Events: load, resize, beforeunload
    14. Event Object and Event Properties
    15. Event Bubbling and Capturing
    16. Event Delegation
    17. preventDefault and stopPropagation
    18. Debouncing and Throttling Event Handlers
    19. Passive Event Listeners
  10. Fetch and API

    1. HTTP Fundamentals
    2. JSON and Serialization
    3. Fetch API
    4. HTTP Methods and Status Codes
    5. Request Headers and Body
    6. Handling API Responses and Errors
    7. Loading and Error States
    8. Working with Public APIs
  11. HTML Forms

    1. Form Elements and Input Types
    2. Reading and Handling Form Data
    3. Client-side Validation
    4. Custom Validation Messages
    5. Form Submission and Reset
    6. Working with FormData
  12. Regular Expressions

    1. Regex Syntax and Patterns
    2. Character Classes and Quantifiers
    3. Matching and Searching
    4. Replacing Text
    5. Form Validation with Regex
  13. Common website components: modals, tabs, burger menus

    1. Modal Windows
    2. Tabs and Accordions
    3. Dropdowns and Burger Menus
    4. Image Sliders and Carousels
    5. Search and Filtering
    6. Sorting and Pagination
    7. Dynamic Lists
    8. Reusable UI Components
  14. Popular JavaScript Libraries

    1. jQuery: DOM Manipulation, Events and AJAX
    2. Bootstrap: Components, Modals, Tooltips and Layout
    3. Swiper: Sliders, Carousels and Touch Navigation
    4. GSAP: Advanced Animations and Timelines
    5. Anime.js: Lightweight Animations
    6. AOS: Scroll-triggered Animations
    7. Chart.js: Charts and Data Visualization
    8. D3.js: Advanced Data Visualization
    9. Lodash: Utility Functions and Data Manipulation
    10. Day.js: Date and Time Manipulation
    11. date-fns: Date Utilities
    12. Axios: HTTP Requests
    13. Zod: Data Validation
    14. SortableJS: Drag and Drop Sorting
    15. Three.js: 3D Graphics
    16. Fabric.js: Interactive Canvas and Drawing
    17. SweetAlert2: Dialogs and Notifications
    18. Select2: Enhanced Select Elements
    19. FullCalendar: Calendar Interfaces
    20. Howler.js: Audio Playback
    21. Library Installation with npm and pnpm
    22. CDN vs Package Installation
    23. Library Documentation and Version Compatibility
    24. Choosing Between Native JavaScript and Libraries
  15. ES6 syntax and features

    1. let, const and Arrow Functions
    2. Template Literals
    3. Optional Chaining and Nullish Coalescing
    4. Default Parameters
    5. Modules: import and export
    6. Classes and Inheritance
    7. Prototypes and the Prototype Chain
    8. this, call, apply and bind
  16. LocalStorage and browser storage

    1. LocalStorage and SessionStorage
    2. Cookies Fundamentals
    3. Saving and Loading JSON Data
    4. Persisting Application State
    5. Browser Storage Limitations
  17. JavaScript Debugger

    1. Browser DevTools Overview
    2. Console: log, warn, error, table and dir
    3. Using debugger and Breakpoints
    4. Step Into, Step Over and Step Out
    5. Inspecting Variables and Scope
    6. Call Stack and Execution Context
    7. Conditional Breakpoints
    8. Watch Expressions
    9. DOM Breakpoints
    10. Debugging Event Handlers
    11. Network Tab and API Debugging
    12. Source Maps
    13. Debugging Asynchronous Code
    14. Handling Exceptions and Stack Traces
    15. Common JavaScript Errors
    16. Performance Profiling and Memory Inspection
  18. TypeScript

    1. TypeScript Fundamentals
    2. Primitive and Complex Types
    3. Type Inference and Type Annotations
    4. Interfaces and Type Aliases
    5. Union and Intersection Types
    6. Narrowing and Type Guards
    7. Generics
    8. Typing Functions and Objects
    9. Typing DOM Elements
    10. Working with API Response Types
    11. TypeScript Configuration
  19. OOP in JavaScript

    1. Objects and Methods
    2. Constructor Functions
    3. Classes and Constructors
    4. Inheritance and Encapsulation
    5. Static Methods and Properties
    6. Prototypes and the Prototype Chain
    7. this, call, apply and bind
  20. Charts and Data Visualization

    1. Working with Chart Libraries
    2. Line, Bar and Pie Charts
    3. Chart Configuration and Customization
    4. Dynamic Data Updates
    5. Interactive Charts
    6. Visualizing API Data
  21. JavaScript animations: from pure to Three.js

    1. CSS Transitions and Animations
    2. Animating with JavaScript
    3. requestAnimationFrame
    4. Scroll-based Animations
    5. Canvas API Fundamentals
    6. Three.js and 3D Web Development
  22. Moving on to frameworks: React

    1. Components and JSX
    2. Props and Component Composition
    3. State and Event Handling
    4. Conditional Rendering
    5. Lists and Keys
    6. Forms in React
    7. useEffect and Side Effects
    8. Custom Hooks
    9. Routing and Navigation
    10. API Integration
    11. TypeScript with React
    12. Project Structure and Reusable Components
  23. Making Games with JavaScript

    1. Game Loops and Timing
    2. Keyboard and Mouse Input
    3. Collision Detection
    4. Canvas-based Games
    5. Sprites and Animation
    6. Physics Fundamentals
    7. Game State Management
  24. OOP in Python

    1. Objects and Methods
    2. Constructor Functions
    3. Classes and Constructors
    4. Inheritance and Encapsulation
    5. Static Methods and Properties
    6. Prototypes and the Prototype Chain
    7. this, call, apply and bind
  25. NPM, packages, pnpm

    1. Node.js Fundamentals
    2. NPM and Package Management
    3. package.json and npm Scripts
    4. Installing and Managing Dependencies
    5. pnpm
    6. Vite and Development Server
    7. Environment Variables
    8. JavaScript Modules and Project Structure
    9. Git and GitHub
  26. Asynchronous JavaScript

    1. Synchronous vs Asynchronous Execution
    2. Callbacks
    3. Promises
    4. async and await
    5. Error Handling: try...catch
    6. Promise Chaining and Promise Combinators
    7. Event Loop and Task Queues
  27. Web Workers and Multithreading

    1. JavaScript Concurrency Fundamentals
    2. Main Thread and Event Loop
    3. What Web Workers Are and When to Use Them
    4. Creating a Worker with the Worker API
    5. Sending and Receiving Messages
    6. postMessage and Message Events
    7. Structured Clone Algorithm
    8. Transferring ArrayBuffers
    9. SharedArrayBuffer and Atomics Fundamentals
    10. Worker Lifecycle and Error Handling
    11. Dedicated Workers vs Shared Workers
    12. Worker Limitations: DOM Access and Browser APIs
    13. Web Workers with Modules
    14. Practical Use Cases: Data Processing, Calculations and File Parsing
    15. Communicating Between the Main Thread and Workers
    16. When to Use Web Workers vs Async JavaScript
  28. Git and Github

    1. What Git Is and Why Version Control Matters
    2. Installing Git and Initial Configuration
    3. Creating a Repository with git init
    4. Cloning Repositories with git clone
    5. Checking Status with git status
    6. Staging Changes with git add
    7. Committing Changes with git commit
    8. Viewing History with git log
    9. Working with .gitignore
    10. Branches and Branch Management
    11. Switching Branches with git switch
    12. Merging Branches with git merge
    13. Handling Merge Conflicts
    14. Connecting Local Repositories to GitHub
    15. Pushing and Pulling Changes
    16. Fetching Remote Changes
    17. Working with Remote Repositories
    18. Creating and Reviewing Pull Requests
    19. Forking and Cloning Repositories
    20. Issues and Discussions
    21. README.md and Project Documentation
    22. GitHub Collaboration Workflow
    23. Resolving Common Git Problems
    24. Reverting Changes with git revert
    25. Undoing Local Changes Safely
    26. Git Tags and Releases
    27. GitHub Pages Fundamentals
    28. GitHub Actions Introduction
  29. Testing and Code Quality

    1. JavaScript Unit Testing
    2. Assertions and Test Structure
    3. Mocking and Test Doubles
    4. Testing Asynchronous Code
    5. ESLint and Code Formatting
    6. Refactoring and Clean Code
    7. Debugging and Error Analysis