Learning Learning from Code How to Ask Questions Study Strategies Self Assessment Git and GitHub Git GitHub GUI Clients GitKraken Because Windows Workflows Markdown CLI Programming What is programming Reading Source Code Problem solving Programmer habits Naming conventions Don't Repeat Yourself Incremental coding The internet Web development What is a browser? What is the DOM? DOM Manipulation Event Loop HTTP HTTP methods API Fetch CORS Designing API's HTML & CSS HTML CSS Accessibility Responsive Design JavaScript Fundamentals Variables Values Statements vs. Expressions Operators Conditional statements Loops Functions Scope Higher order functions Closures Special characters This keyword Constructor functions (new keyword) Events DOM Manipulation ES6 Modern JS Classes Functional Programming OOP Asynchronous Promises Node.js REPL Getting Started Built-In Modules Express Debugging Environmental Variables Setting up a Project DRY, modular server Consuming API's Authentication Registering new users How to store user passwords Session management JWT Tokens Templating Databases SQL Identifiers Relationships Domain modeling Indexes SQL clauses Normalization Transactions SQL Injection Database dumps NoSQL MongoDB Basic operations Embedded vs Normalised Advanced operations Pagination Indexes Transactions SQL vs NoSQL React State & props Hooks provided by React Component lifecycle Class vs function components Forms: Controlled vs Uncontrolled API calls Routing Custom hooks Testing Tools Testing Assertion Unit tests UI tests API testing E2E testing Tools Debuggers Postman Test framework Software development Agile Code Review Testing SDLC Roles Backend Contribution guide Definitions Client-server model