π Introduction to Web Development π Motivation and Mindset
β Key Concepts:
- Growth mindset
- Persistence and grit
- Focused learning and diffused learning
π Learning Resources:
- A TOP Strategy Guide - Great article to revisit
- Why learning to code is so damn hard - Article
- The power of believing that you can improve - Video
π How Does the Web Work? π Text Editors
β Key Concepts:
- What is the Internet
- Packets and how they transfer data
- What is a client and what is a server
- IP addresses and DNS servers
π Learning Resources:
- How does the Internet work? β MDN Docs
- How the Web Works β MDN Docs
- How a DNS Request Works β MDN Docs
- Introduction to HTTP - Book
- How the Internet Works in 5 Minutes β Video
- VSCode Tutorial β Video
β Key Concepts:
- Inspecting elements on the page
- Access CSS overview
π Learning Resources:
- CSS Overview in Chrome Dev Tools - Article
π Emmet
βKey Concepts:
- Using emmet
- create custom emmet binding in VSCode
π SVG
βKey Concepts:
- What SVGs, Vector Graphics, and XML are
- How to create simple SVGs and add them to your websites
- When to use SVGs, and when a different image format would be more appropriate
β Key Concepts:
- The browser war
- Broweser engines
- How to check for browser support
π Learning Resources:
- how-web-works - Github document
π Command Line Basics π Setting up Git π Git Basics π Commit Messages π Branching
β Key Concepts:
- CLI completion with tab
- Set VSCode to open files with 'code'
- Git basic workflow (add, commit, status, log, push, ...etc)
- Creating branches
- Writing good commit messages
π Learning Resources:
- How to Write a Git Commit Message - Article
- Conventional Commits - Docs
- Understanding SSH Key Pairs - Docs
- Learn Enough Command Line to Be Dangerous - Book
- Asymmetric Encryption - Video
π Links and Images
β Key Concepts:
- Opening links in a new tab has a security concern
- alt attribute for images
- Define image size attribute from HTML
π Learning Resources:
- Links and Images - Article
- Best Image Format for Website? - Article
- When to use target=β_blankβ - Article
π Tables
β Key Concepts:
- Create advanced HTML tables.
- Table accessibility
- UX friendly trables
π Learning Resources:
- Table basics - MDN docs
- Table accessibility - MDN docs
- HTML table element guide - CSS tricks article
- Data Table Design UX patterns - Pencil and Paper article
π Form Basics
β Key Concepts:
- Form controls
- Input elements
- Styling forms and for elements
π Learning Resources:
- Web forms - MDN Docs
- Web.dev form course - Web.dev course
π Form Validation
β Key Concepts:
- Client-side form validation
- Pattern attribute and regExp
- Styling forms based on state
- Form UX
π Learning Resources:
- Client-side form validation - MDN Docs
- Improving UX in forms - Article
- Do's and dont's for form validation - Thread
- 10 guidelines for form validation design - Article
π Intro to CSS π The Cascade
β Key Concepts:
- Selectors and how to combine them
- Specificity of selectors
- How inheritance affect certain properties
π Learning Resources:
- CSS values and units - MDN docs
- The CSS Cascade - Article
π Block and Inline
β Key Concepts:
- Normal flow
- Box-sizing
- Block and inline elements
β Key Concepts:
- Alignment
- Flexible items
- Growing and shrinking
π Learning Resources:
- An Interactive Guide to Flexbox - Josh Comeau
π Default Styles
β Key Concepts:
- Browser's default styles
- style reset and normalizing
π Learning Resources:
- Making the case for CSS normalize and reset - Article
- A Modern CSS Reset - Josh Comeau
π CSS Units
β Key Concepts:
- CSS value types
- Relative vs absolute values
- em unit can be useful for padding and margins
- ch unit useful for limiting the paragraph length
π Learning Resources:
- CSS values and units - MDN docs
- Fun with viewport units - CSS-Tricks
- CSS units - Kevin Powell video
- A CSS unit deep dive - Slaying The Dragon video
π More Text Styles
β Key Concepts:
- Text styling
- Using custom fonts
- Font stack
- Font optimization and best practices
- Responsive font
π Learning Resources:
- Web fonts - MDN Docs
- Best practices for fonts - Web.dev article
- Typography - Web.dev article
π More CSS Properties
β Key Concepts:
- background property
- border property
- overflow property
- opacity property
π Learning Resources:
- A List of CSS properties and their usage - CSS tricks
- CSS properties refrence - W3Schools
π Advanced Selectors
β Key Concepts:
- Combinator selectors
- Pseudo-classes
- Pseudo-elements
- Attribute selectors
π Learning Resources:
- CSS complex selectors - Article
- Selector referance - CSS tricks
π Positioning
β Key Concepts:
- Relative positioning
- Absolute positioning
- Fixed positioning
- Sticky positioning
π Learning Resources:
- Learn CSS positions - Web dev simplified video
- Absolute, Relative, Fixed Positioning: How Do They Differ? - CSS tricks article
- Position fixed vs position sticky - Kevin powell article
- Learn CSS positions quickly - Slay the dragon video
π CSS Functions
β Key Concepts:
- calc()
- min()
- max()
- clamp()
π Learning Resources:
- CSS value functions - MDN docs
- CSS min(), max(), and clamp() - web.dev article
- min(), max(), and clamp() CSS Functions - Ahmed Shadeed
- Practical Uses of CSS Math Functions: calc, clamp, min, max - moderncss.dev
π Custome Properties
β Key Concepts:
- Custome properties
- Scope and root selectro
- Dark/light theme
- Default OS theme
π Learning Resources:
- Custome properties guide - CSS tricks
- locally scoped custome properties - Kevin Powell video
π Creating a Grid
π Positioning Grid Elements
β Key Concepts:
- How to crate a grid container
- specifying rows and columns
- implicit rows or columns
- Grid terminology (Lines, gutters, tracks, areas)
- Positioning grid items using css grid properties
π Learning Resources:
- CSS Grid layout guide - CSS tricks
- Implicit vs explicit tracks - Wes Bos video
- Inspecting CSS grid layouts - Chrome devTools
- Grid terminology - Video
- Basic concept of grid layout - MDN docs
- Line based placements with CSS Grid - MDN docs
- Grid template areas - Smashing magazine
β Key Concepts:
- Using repeate function and fr units
- CSS grid minmax function
- combining auto-fit and auto-fill with min, max minmax, and repeat
π Learning Resources:
- Differences between auto-fit and auto-fill - CSS tricks
- auto-fit and auto-fill - Kevin Powell video
- Summary of CSS Grid - Slaying the dragon video
- Interactive guide to CSS grid - Josh Comeau
π Installing Node.js π Data Types and Conditionals
β Key Concepts:
- Installing Node.js with nvm
- Regular expressions
π Learning Resources:
- Regular Expressions - MDN docs
- Learn Regular Expressions In 20 Minutes - Video
π JavaScript Developer Tools π Function Basics
β Key Concepts:
- Debug JavaScript in the browser
- Use of breakpoints in debugging
- Function expression and arrow functions
- The call stack
π Learning Resources:
- Debug JavaScript - Docs
- Pause code with breakpoints - Docs
- 14 Must Know Chrome Dev Tools Tricks - Video
- JavaScript call stack - Article
- How JavaScript code is executed - Video
π Problem Solving
β Key Concepts:
- Planning the project
- Pseudocode
- Breaking a complex problem into smaller chunks
π Learning Resources:
- How to think like a programmer - Article
- Think like a programmer - Highly recommended book by TOP
π Clean Code
β Key Concepts:
- Naming variables and functions
- Writing good comments
π Learning Resources:
- clean-code-javascript - Repo article
- airbnb-javascript-style-guide - repo Article
π Arrays and Loops
β Key Concepts:
- Arrays and array methods
- Loops
π Learning Resources:
- JavaScript arrays - W3Schools docs
- JavaScript array methods - w3Schools docs
- Looping code MDN docs
- Loops: while and for - Javascript.info docs
π DOM Manipulation and Events
β Key Concepts:
- What is the DOM
- Node vs element
- Nodelist vs array
- Altering the DOM
- Event listeners
- Event bubbling and capturing
π Learning Resources:
- Elequent JS - DOM - Book
- Elequent JS - Handling Events - Book
- Understanding callbacks
- JavaScript Event Capture, Propagation and Bubbling - Video
π Object Basics
β Key Concepts:
- Creating objects
- Accessing object properties
- Using multiple object operators
- Understanding the differences between object and primitive data types
- Using the map, filter and reduce array methods
π Learning Resources:
- Objects - Javascript.info docs
- Javascript object basics - MDN docs
- Array methods - Javascript.info docs
- JavaScript array cardio practice - Video
- Array cardio day 2 - Video
π Objects and Object Constructors
β Key Concepts:
- Objects and contructor functions
- Prototypes and prototypal inheritance
- The this keyword
π Learning Resources:
- Understanding Prototypes and Inheritance in JavaScript - Tutorial
- Prototypal inheritance - javascript.info
- Demystifying the JavaScript this Keyword - javascripttutorial.net
- Prototype vs proto vs .prototype in Javascript - medium
π Factory Functions and the Module Pattern
β Key Concepts:
- Factory functions
- Closures
- The object shorthand notation
- Object destructuring
- Private variables and functions
- Prototypal inheritance with factories
- The module pattern: IIFEs
π Learning Resources:
- Scope - Wes Bos
- Closures - Wes Bos
- Modular Javascript series - Youtube
- Design Patterns by Addy Osmani and Lydia Hallie - Website
π Classes
β Key Concepts:
- Class syntax
- Extending classes
- Getters and setters
- Private properties
- Static fields and methods
π Learning Resources:
- Property getters and setters - Javascript.info
- Class basic syntax - Javascript.info
- Javascript calsses series - Youtube
π ES6 Modules
β Key Concepts:
- Import, export
- Defult export
- ESM vs CommonJS
- Entry point
- type="moduel" attribute
π Learning Resources:
- ES6 modules - Youtube
π npm
β Key Concepts:
- package.json
- Dependencies and devDependencies
π Learning Resources:
- Downloading and installing packages locally - npm
- Creating a package.json file - npm
- Modern JavaScript Explained For Dinosaurs - Article
π Webpack
β Key Concepts:
- Javascript bundlers
- Plugins and loaders
- Dependency graphs
- Configuring Webpack
π Learning Resources:
- Webpack concepts - Docs
- Webpack asset management - Docs
π Revisiting Webpack
β Key Concepts:
- npm scripts
- Webpack modes: development and production
- Template repositories
- Automate webpack modes
π Learning Resources:
- npm scripts - Tutorial
- Webpack development and production configs - Docs
π OOP Principles
β Key Concepts:
- OOP
- Tightly coupled vs loosely coupled modules
- SOLID principles
- Composition vs OOP
- PubSub
π Learning Resources:
- SOLID design principles - WDS video
- Building a house from the inside out - Article