What You'll Get in This Course 
 
Download the Course Syllabus 
 
Download the 12 Rules to Learn to Code eBook [Latest Edition] 
 
Download the Required Software 
 
How Does the Internet Actually Work? 
 
How Do Websites Actually Work? 
 
How to Get the Most Out of the Course 
 
How to Get Help When You're Stuck 
 
Introduction to Web Design 
 
Understanding Colour Theory 
 
Understanding Typography and How to Choose a Font 
 
Manage ATTENTION with effective User Interface (UI) Design 
 
User Experience (UX) Design 
 
Web Design in Practice - Let's apply what we've learnt! 
 
Introduction to Javascript 
 
Javascript Alerts - Adding Behaviour to Websites 
 
Javascript Variables Exercise Start 
 
Javascript Variables Exercise 
 
Javascript Variables Exercise Solution 
 
Naming and Naming Conventions for Javascript Variables 
 
Javascript Variable Naming Quiz 
 
String Lengths and Retrieving the Number of Characters 
 
Slicing and Extracting Parts of a String 
 
Challenge: Changing Casing in Text 
 
Challenge: Changing String Casing Solution 
 
Basic Arithmetic and the Modulo Operator in Javascript 
 
Increment and Decrement Expressions 
 
Functions Part 1: Creating and Calling Functions 
 
Functions Part 1 Challenge - The Karel Robot 
 
The Karel Chess Board Solution 
 
A Quick Note About the Next Lesson 
 
Functions Part 2: Parameters and Arguments 
 
Life in Weeks Coding Exercise 
 
Functions Part 3: Outputs & Return Values 
 
Challenge: Create a BMI Calculator 
 
Challenge: BMI Calculator Solution 
 
JavaScript Functions Quiz 
 
Tip from Angela - Set Your Expectations 
 
Random Number Generation in Javascript: Building a Love Calculator 
 
Control Statements: Using If-Else Conditionals & Logic 
 
BMI Calculator Advanced (IF/ELSE) 
 
Introducing the Leap Year Code Challenge 
 
Leap Year Challenge Exercise 
 
Collections: Working with Javascript Arrays 
 
Adding Elements and Intermediate Array Techniques 
 
Who's Buying Lunch? Code Challenge 
 
Who's Buying Lunch Solution 
 
Control Statements: While Loops 
 
Solution to the 99 Bottles Challenge 
 
Control Statements: For Loops 
 
Introducing the Fibonacci Code Challenge 
 
Tip from Angela - Retrieval is How You Learn 
 
Adding Javascript to Websites 
 
Introduction to the Document Object Model (DOM) 
 
Solution to the DOM Challenge 
 
Selecting HTML Elements with Javascript 
 
Manipulating and Changing Styles of HTML Elements with Javascript 
 
The Separation of Concerns: Structure vs Style vs Behaviour 
 
Text Manipulation and the Text Content Property 
 
Manipulating HTML Element Attributes 
 
Tip from Angela - The 20 Minute Method 
 
Challenge: The Dicee Challenge 
 
Dicee Challenge Step 0 - Download the Skeleton Project 
 
Dicee Challenge Step 1 - Create an External Javascript File 
 
Dicee Challenge Step 2 - Add Dice Images 
 
Dicee Challenge Step 3 - Create a Random Number 
 
Dicee Challenge Step 4 - Change the <img>  to a Random Dice 
 
Dicee Challenge Step 5 - Change both <img> Elements 
 
Dicee Challenge Step 6 - Change the Title to Display a Winner 
 
The Solution to the Dicee Challenge 
 
Download the Completed Website 
 
Tip from Angela - Learning Before you Eat 
 
What We'll Make: Drum Kit 
 
Download the Starting Files 
 
Adding Event Listeners to a Button 
 
Higher Order Functions and Passing Functions as Arguments 
 
Higher Order Function Challenge Solution 
 
How to Play Sounds on a Website 
 
How to Use Switch Statements in Javascript 
 
A Deeper Understanding of Javascript Objects 
 
Objects their Methods and the Dot Notation 
 
A Quick Note About the Next Lesson 
 
Using Keyboard Event Listeners to Check for Key Presses 
 
Understanding Callbacks and How to Respond to Events 
 
Adding Animation to Websites 
 
Download the Completed Website 
 
Tip from Angela - Dealing with Lack of Progress 
 
How to Incorporate jQuery into Websites 
 
How Minification Works to Reduce File Size 
 
Selecting Elements with jQuery 
 
Manipulating Styles with jQuery 
 
Manipulating Text with jQuery 
 
Manipulating Attributes with jQuery 
 
Adding Event Listeners with jQuery 
 
Adding and Removing Elements with jQuery 
 
Website Animations with jQuery 
 
Tip from Angela - Mixing Knowledge 
 
What You'll Make: The Simon Game 
 
Step 0 - Download the Starting Files 
 
Step 1 - Add Javascript and jQuery 
 
Step 2 - Create A New Pattern 
 
Step 3 - Show the Sequence to the User with Animations and Sounds 
 
Step 4 - Check Which Button is Pressed 
 
Step 5 - Add Sounds to Button Clicks 
 
Step 6 - Add Animations to User Clicks 
 
Step 8 - Check the User's Answer Against the Game Sequence8 
 
Step 10 - Restart the Game 
 
Download the Completed Project Code 
 
Tip from Angela - Dealing with Frustration 
 
Install Git Bash on Windows 
 
Understanding the Command Line. Long Live the Command Line! 
 
Command Line Techniques and Directory Navigation 
 
Creating Opening and Removing Files through the Command Line 
 
Tip from Angela - Sleep is My Secret Weapon 
 
Install Node.js on Windows 
 
How to Use the Native Node Modules 
 
The NPM Package Manager and Installing External Node Modules 
 
[Project] QR Code Generator 
 
Tip from Angela - Step Up to the Challenge 
 
Introduction to Version Control and Git 
 
Version Control Using Git and the Command Line 
 
GitHub and Remote Repositories 
 
Forking and Pull Requests 
 
Tip from Angela - Spaced Repetition 
 
SQL Commands: CREATE Table and INSERT Data 
 
SQL Commands: READ SELECT and WHERE 
 
Updating Single Values and Adding Columns in SQL 
 
Understanding SQL Relationships Foreign Keys and Inner Joins 
 
Tip from Angela - Find All the Hard Working People 
 
How to Install PostgreSQL and pgAdmin 
 
Understand how to use keys Postgres types and keywords 
 
Use pgAdmin to CREATE a TABLE 
 
READ data from a Postgres database 
 
Query data using SELECT WHERE and LIKE 
 
UNIQUE and NOT NULL | Travel Tracker Part 1 
 
INSERT and add Data | Travel Tracker Part 2 
 
One to One Relationships & Inner Joins 
 
One to Many Relationships 
 
Many to Many Relationships & Aliases 
 
The Family Travel Tracker 
 
How to update and delete data & tables 
 
Tip from Angela - Daily Routines 
 
Introduction to Authentication 
 
Level 1 - Registering Users with Email and Password 
 
Level 2 - Encryption and Hashing 
 
Level 3 - How to Salt Passwords for Improved Encryption 
 
Managing Cookies and Sessions 
 
Level 5 - Hide your Secrets with Environment Variables 
 
Set up your Google OAuth Credentials 
 
Level 6 - OAuth: Implement "Sign In with Google" 
 
Finish the app: let users submit secrets 
 
Tip from Angela - How to Work as a Freelancer 
 
What we will make in this React module 
 
Introduction to Code Sandbox and the Structure of the Module 
 
Introduction to JSX and Babel 
 
Javascript Expressions in JSX & ES6 Template Literals 
 
Javascript Expressions in JSX Practice 
 
JSX Attributes & Styling React Elements 
 
Inline Styling for React Elements 
 
React Components Practice 
 
Javascript ES6 - Import Export and Modules 
 
Javascript ES6 Import Export and Modules Practice 
 
[Windows] Local Environment Setup for React Development 
 
[Mac] Local Environment Setup for React Development 
 
Newer Versions of Node Troubleshooting 
 
Keeper App Project - Part 1 Challenge 
 
Keeper App Part 1 Solution 
 
Mapping Data to Components 
 
Mapping Data to Components Practice 
 
Javascript ES6 Map/Filter/Reduce 
 
Javascript ES6 Arrow functions 
 
Keeper App Project - Part 2 
 
React Conditional Rendering with the Ternary Operator & AND Operator 
 
Conditional Rendering Practice 
 
State in React - Declarative vs. Imperative Programming 
 
Javascript ES6 Object & Array Destructuring 
 
Javascript ES6 Destructuring Challenge Solution 
 
Class Components vs. Functional Components 
 
Changing Complex State Practice 
 
Javascript ES6 Spread Operator 
 
Javascript ES6 Spread Operator Practice 
 
Managing a Component Tree 
 
Managing a Component Tree Practice 
 
Keeper App Project - Part 3 
 
React Dependencies & Styling the Keeper App 
 
Tip from Angela - How to Build Your Own Product 
 
How does the Blockchain actually work? 
 
What are DApps (Decentralised Apps) and how do you develop them? 
 
What is the Internet Computer (ICP)? 
 
[Mac Users] Installation and Setup for Web3 Development 
 
[Windows Users] Installation and Setup for Web3 Development 
 
What You'll Build - DBANK (Inspired by Compound) 
 
Introduction to the Motoko Language 
 
Motoko Functions and the Candid User Interface 
 
Motoko Conditionals and Type Annotations 
 
Tracking Time and Calculating Compound Interest 
 
Adding HTML and CSS to Create the Frontend for DBANK 
 
Connecting the Motoko Backend to our JS Frontend 
 
Where to Get Help and Support for Development on the Internet Computer 
 
What are Cycles and the ICP Token? 
 
How to Claim Free Cycles from Dfinity 
 
How to Deploy to the ICP Network 
 
How to Convert ICP into Cycles? 
 
[Optional] How to Deploy a Static Website onto the ICP Blockchain for Hosting 
 
Tokens and Coins: What are they and how are they used? 
 
Download and Configure the Skeleton Project 
 
Using Motoko Hashmaps to Store Token Balances 
 
Showing the User's Token Balance on the Frontend 
 
Creating the Faucet Functionality Using the Shared Keyword 
 
Creating the Transfer Functionality 
 
Using the Transfer Functionality in the Faucet 
 
Persisting Non-Stable Types Using the Pre- and Postupgrade Methods 
 
What is the Internet Identity? 
 
Authenticating with the Internet Identity 
 
[Optional] Live Deployment to Test Internet Identity Authentication 
 
What You'll Build - A Website to Mint Buy and Sell NFTs 
 
Viewing the NFT on the Frontend 
 
Enabling the Minting Functionality on the Frontend 
 
Displaying Owned NFTs Using the React Router 
 
Creating the "Discover" Page 
 
Join the $6 Million Dollar Supernova Hackathon