233 lessons

JAVALesson 1

Introduction to Java

Learn what Java is, why it matters in the South African job market, and run your first Hello World program.

Start lesson →
JAVALesson 2

Java Setup

Install the JDK, verify your environment, and compile your first Java file from the terminal.

Start lesson →
JAVALesson 3

Java Syntax

Understand Java's strict syntax rules — case sensitivity, semicolons, braces, and naming conventions.

Start lesson →
JAVALesson 4

Variables

Declare and use typed variables in Java, including constants with the final keyword.

Start lesson →
JAVALesson 5

Data Types

Master Java's primitive types — int, double, boolean, char — and when to use each one.

Start lesson →
JAVALesson 6

Operators

Use arithmetic, comparison, logical, and assignment operators to compute and make decisions.

Start lesson →
JAVALesson 7

Conditional Statements

Write if / else if / else chains and switch statements to control program flow.

Start lesson →
JAVALesson 8

Loops

Repeat code with for, while, do-while, and for-each loops — and know when to use each.

Start lesson →
JAVALesson 9

Arrays

Store and iterate fixed-size collections of values, including 2D arrays for table data.

Start lesson →
JAVALesson 10

Methods

Write reusable named blocks of code with parameters, return types, and method overloading.

Start lesson →
JAVALesson 11

Classes and Objects

Define your own classes with fields and methods, then create and use objects at runtime.

Start lesson →
JAVALesson 12

Constructors

Use constructors to initialise objects cleanly and reliably from the moment they are created.

Start lesson →
JAVALesson 13

Encapsulation

Keep fields private and expose them through validated getters and setters.

Start lesson →
JAVALesson 14

Inheritance

Reuse code across classes using extends, super(), and protected access.

Start lesson →
JAVALesson 15

Polymorphism

Override parent methods with @Override and treat different types through a common parent reference.

Start lesson →
JAVALesson 16

Abstraction

Define abstract classes with shared logic and abstract methods subclasses must implement.

Start lesson →
JAVALesson 17

Interfaces

Write contracts using interfaces and implement them across unrelated class hierarchies.

Start lesson →
JAVALesson 18

Exception Handling

Handle runtime errors with try/catch/finally and throw your own exceptions from business logic.

Start lesson →
JAVALesson 19

Collections

Use ArrayList, HashMap, and HashSet for dynamic, type-safe data structures.

Start lesson →
JAVALesson 20

File Handling

Read and write files safely with try-with-resources, FileWriter, and BufferedReader.

Start lesson →
JAVALesson 21

Database Connectivity

Connect Java to a relational database with JDBC and prevent SQL injection with PreparedStatement.

Start lesson →
C#Lesson 1

Introduction to C#

Discover C# — Microsoft's modern language — and run your first Console.WriteLine program.

Start lesson →
C#Lesson 2

.NET Overview

Understand the .NET platform: CLR, BCL, NuGet, and the project types you will work with.

Start lesson →
C#Lesson 3

C# Syntax

Learn C# syntax rules and modern string interpolation with the $ prefix.

Start lesson →
C#Lesson 4

Variables

Declare variables with explicit types or use var for compiler-inferred, strongly-typed values.

Start lesson →
C#Lesson 5

Data Types

Master C# types including decimal for financial precision and nullable value types with ?.

Start lesson →
C#Lesson 6

Operators

Use C# operators including the null-coalescing ?? and null-conditional ?. operators.

Start lesson →
C#Lesson 7

Conditional Statements

Write if/else chains and modern switch expressions with pattern matching.

Start lesson →
C#Lesson 8

Loops

Iterate with for, foreach, while, and do-while — foreach is idiomatic C# for collections.

Start lesson →
C#Lesson 9

Arrays

Declare fixed-size arrays and use LINQ extension methods for max, min, average, and sorting.

Start lesson →
C#Lesson 10

Methods

Write methods with expression bodies, optional parameters, and named arguments.

Start lesson →
C#Lesson 11

Classes and Objects

Define C# classes and use object initialiser syntax for concise, readable instantiation.

Start lesson →
C#Lesson 12

Properties

Use auto properties and full properties with validation — the C# way to expose class data.

Start lesson →
C#Lesson 13

Constructors

Initialise objects with constructors, use this() for chaining, and records for immutable data.

Start lesson →
C#Lesson 14

Encapsulation

Apply access modifiers (private, protected, internal, public) and validate data in property setters.

Start lesson →
C#Lesson 15

Inheritance

Inherit with :, call parent constructors with base(), and mark methods virtual to enable override.

Start lesson →
C#Lesson 16

Polymorphism

Override virtual methods and use C# pattern matching with the is keyword for type-safe dispatch.

Start lesson →
C#Lesson 17

Abstraction

Define abstract classes with abstract methods that concrete subclasses must override.

Start lesson →
C#Lesson 18

Interfaces

Write I-prefixed interfaces, implement them in classes, and use default interface methods (C# 8+).

Start lesson →
C#Lesson 19

Exception Handling

Handle errors with try/catch/finally, exception filters using when, and safe rethrowing.

Start lesson →
C#Lesson 20

Collections

Work with List<T>, Dictionary<K,V>, and HashSet<T> from the .NET collections library.

Start lesson →
C#Lesson 21

LINQ

Write composable, readable queries on any collection using Where, OrderBy, Select, and more.

Start lesson →
C#Lesson 22

File Handling

Read and write files with File.ReadAllLines, File.WriteAllText, and StreamWriter.

Start lesson →
C#Lesson 23

Database Concepts

Access databases with ADO.NET parameterised queries and Entity Framework Core ORM.

Start lesson →
PYTHONLesson 1

Introduction to Python

Discover Python — readable, powerful, and the dominant language in data science and AI.

Start lesson →
PYTHONLesson 2

Python Setup

Install Python 3, choose an editor, create a virtual environment, and run your first script.

Start lesson →
PYTHONLesson 3

Python Syntax

Learn Python's indentation rules, f-strings, colons, and comments.

Start lesson →
PYTHONLesson 4

Variables

Create variables with simple assignment — Python infers the type automatically.

Start lesson →
PYTHONLesson 5

Data Types

Work with int, float, str, bool, and None — and convert between them with built-in functions.

Start lesson →
PYTHONLesson 6

Operators

Use Python's arithmetic operators including // for floor division and ** for power.

Start lesson →
PYTHONLesson 7

Conditional Statements

Write if / elif / else chains, ternary expressions, and match/case (Python 3.10+).

Start lesson →
PYTHONLesson 8

Loops

Iterate with for and range(), while loops, and loop else clauses.

Start lesson →
PYTHONLesson 9

Lists

Create and manipulate Python's most versatile collection — including slicing and comprehensions.

Start lesson →
PYTHONLesson 10

Tuples

Use immutable sequences for data that should not change, and named tuples for clarity.

Start lesson →
PYTHONLesson 11

Sets

Store unique items and use union, intersection, and difference for set algebra.

Start lesson →
PYTHONLesson 12

Dictionaries

Map keys to values with Python dicts, iterate with .items(), and build dict comprehensions.

Start lesson →
PYTHONLesson 13

Functions

Define functions with def, default parameters, *args, **kwargs, and docstrings.

Start lesson →
PYTHONLesson 14

Modules

Import from Python's standard library and organise your own code into reusable modules.

Start lesson →
PYTHONLesson 15

File Handling

Read and write files with the with open() pattern, including CSV reading with the csv module.

Start lesson →
PYTHONLesson 16

Exception Handling

Handle errors with try/except/finally, raise your own exceptions, and use the else clause.

Start lesson →
PYTHONLesson 17

OOP in Python

Define classes with __init__ and self, create objects, implement __str__ for readable output.

Start lesson →
PYTHONLesson 18

Properties and Class Methods

Use @property for encapsulation, @classmethod for factory methods, and @staticmethod for utilities.

Start lesson →
PYTHONLesson 19

Inheritance

Extend classes with Python inheritance, call super().__init__(), and use isinstance() for type checks.

Start lesson →
PYTHONLesson 20

Working with Dates

Work with dates and durations using the datetime module — today(), timedelta, and strptime.

Start lesson →
PYTHONLesson 21

Basic Data Handling

Read CSV files, calculate statistics, and get started with pandas DataFrames.

Start lesson →
SQLLesson 1

Introduction to SQL

Learn what SQL is, its sub-languages (DQL/DDL/DML), and which database engines are common in SA.

Start lesson →
SQLLesson 2

Databases Explained

Understand tables, rows, columns, relationships, and the ACID guarantees of relational databases.

Start lesson →
SQLLesson 3

Tables

Learn SQL data types — INT, DECIMAL, VARCHAR, DATE — and how to structure a table.

Start lesson →
SQLLesson 4

Primary Keys

Define auto-increment primary keys that uniquely and reliably identify every row.

Start lesson →
SQLLesson 5

Foreign Keys

Link tables with foreign keys and enforce referential integrity with ON DELETE CASCADE.

Start lesson →
SQLLesson 6

SELECT

Retrieve data with SELECT, choose specific columns, use aliases, and remove duplicates with DISTINCT.

Start lesson →
SQLLesson 7

WHERE

Filter rows using comparison operators, AND/OR/NOT, BETWEEN, IN, LIKE, and IS NULL.

Start lesson →
SQLLesson 8

ORDER BY

Sort results with ASC and DESC, multi-column ordering, and limit rows with LIMIT or TOP.

Start lesson →
SQLLesson 9

INSERT

Add single and multiple rows to a table using INSERT INTO ... VALUES.

Start lesson →
SQLLesson 10

UPDATE

Modify existing rows with SET — always with a WHERE clause to avoid updating every row.

Start lesson →
SQLLesson 11

DELETE

Remove rows safely using WHERE — and understand soft delete patterns for production systems.

Start lesson →
SQLLesson 12

CREATE TABLE

Define a table's full structure with column types, NOT NULL, UNIQUE, DEFAULT, and CHECK constraints.

Start lesson →
SQLLesson 13

ALTER TABLE

Add, modify, and drop columns, and add constraints to an existing table.

Start lesson →
SQLLesson 14

DROP TABLE

Permanently remove a table — understand DROP vs TRUNCATE and the correct drop order for FK tables.

Start lesson →
SQLLesson 15

Aggregate Functions

Summarise data with COUNT, SUM, AVG, MIN, and MAX — including COUNT DISTINCT.

Start lesson →
SQLLesson 16

GROUP BY

Group rows and apply aggregates per group — and follow the SELECT column rules for GROUP BY.

Start lesson →
SQLLesson 17

HAVING

Filter aggregated groups with HAVING — the equivalent of WHERE for grouped results.

Start lesson →
SQLLesson 18

JOINS — Overview

Understand why joins exist and the four types: INNER, LEFT, RIGHT, and FULL OUTER JOIN.

Start lesson →
SQLLesson 19

INNER JOIN

Return only matched rows using INNER JOIN with table aliases and multi-table chaining.

Start lesson →
SQLLesson 20

LEFT JOIN

Include all left-table rows even when no match exists on the right — find unmatched rows with IS NULL.

Start lesson →
SQLLesson 21

RIGHT JOIN

Include all right-table rows — and learn how every RIGHT JOIN can be written as a LEFT JOIN.

Start lesson →
SQLLesson 22

FULL JOIN

Return all rows from both tables — and simulate FULL OUTER JOIN in MySQL using UNION.

Start lesson →
SQLLesson 23

Subqueries

Nest a query inside another with subqueries in WHERE, IN, EXISTS, and as derived tables in FROM.

Start lesson →
SQLLesson 24

Views

Save a SELECT query as a view — query it like a table, replace it, or drop it safely.

Start lesson →
SQLLesson 25

Indexes

Speed up SELECT queries by indexing the right columns — and understand the write-overhead trade-off.

Start lesson →
SQLLesson 26

Stored Procedures

Create named, reusable SQL procedures in MySQL and SQL Server to encapsulate business logic.

Start lesson →
SQLLesson 27

Database Design

Identify entities and relationships, draw ERDs, and implement 1:1, 1:M, and M:N relationships.

Start lesson →
SQLLesson 28

Normalisation

Apply 1NF, 2NF, and 3NF to eliminate data redundancy and prevent update/insertion/deletion anomalies.

Start lesson →
C++Lesson 1

Introduction to C++

A beginner-friendly introduction to C++: what it is, why it exists, and where it is used in the real world.

Start lesson →
C++Lesson 2

Setting Up Your C++ Environment

How to install a C++ compiler and set up an editor or IDE so you can write, compile, and run C++ programs.

Start lesson →
C++Lesson 3

C++ Syntax & Program Structure

An overview of C++ program structure: includes, namespaces, functions, statements, and comments.

Start lesson →
C++Lesson 4

Variables and Data Types

Learn how to declare variables in C++ and the core built-in data types: int, double, char, bool, and string.

Start lesson →
C++Lesson 5

Operators

A guide to C++ operators: arithmetic, relational, logical, assignment, and increment/decrement, with precedence notes.

Start lesson →
C++Lesson 6

Input and Output

How to read user input with cin and print output with cout in C++, including handling multiple values and strings.

Start lesson →
C++Lesson 7

Conditional Statements

Learn if, else if, else, and switch statements in C++ for controlling program flow based on conditions.

Start lesson →
C++Lesson 8

Loops

Learn the for, while, and do-while loops in C++, plus break and continue for controlling loop execution.

Start lesson →
C++Lesson 9

Arrays

Learn how to declare, initialise, and loop through arrays in C++, including multi-dimensional arrays.

Start lesson →
C++Lesson 10

Strings

Learn how to work with std::string in C++: concatenation, length, substrings, and comparison.

Start lesson →
C++Lesson 11

Functions

Learn how to declare and call functions in C++, including parameters, return types, and function overloading.

Start lesson →
C++Lesson 12

Pointers

An introduction to pointers in C++: declaring, dereferencing, the address-of operator, and null pointers.

Start lesson →
C++Lesson 13

References

Learn how references work in C++, how they differ from pointers, and when to use each.

Start lesson →
C++Lesson 14

Classes and Objects

Learn how to define classes and create objects in C++, including member variables, member functions, and access specifiers.

Start lesson →
C++Lesson 15

Constructors and Destructors

Learn how constructors and destructors work in C++, including default, parameterised, and overloaded constructors.

Start lesson →
C++Lesson 16

Encapsulation

Learn how encapsulation works in C++ using private member variables, public getters and setters, and validation logic.

Start lesson →
C++Lesson 17

Inheritance

Learn how class inheritance works in C++, including base and derived classes, protected members, and constructor chaining.

Start lesson →
C++Lesson 18

Polymorphism

Learn runtime polymorphism in C++ using virtual functions, function overriding, and base class pointers.

Start lesson →
C++Lesson 19

Templates

Learn how to write generic function and class templates in C++ to avoid duplicating logic across data types.

Start lesson →
C++Lesson 20

Exception Handling

Learn how try, catch, and throw work in C++ for handling runtime errors gracefully.

Start lesson →
C++Lesson 21

The Standard Template Library (STL)

An introduction to the C++ Standard Template Library: vector, map, and common algorithms like sort and find.

Start lesson →
HTMLLesson 1

Introduction to HTML

A beginner's introduction to HTML: what it is, how browsers use it, and why it's the foundation of every website.

Start lesson →
HTMLLesson 2

Document Structure

Learn the structure of an HTML document: doctype, html, head, and body elements, and what belongs in each.

Start lesson →
HTMLLesson 3

Text Elements

Learn HTML text elements: headings h1-h6, paragraphs, strong and em, line breaks, and horizontal rules.

Start lesson →
HTMLLesson 4

Links and Navigation

Learn how to create links in HTML using the anchor tag, including relative vs absolute URLs and linking to page sections.

Start lesson →
HTMLLesson 5

Images and Media

Learn how to add images with the img tag in HTML, including alt text, width and height, and responsive images.

Start lesson →
HTMLLesson 6

Lists

Learn how to create ordered lists, unordered lists, and nested lists in HTML.

Start lesson →
HTMLLesson 7

Tables

Learn how to build HTML tables with thead, tbody, tr, th, and td, including accessible table headers.

Start lesson →
HTMLLesson 8

Forms

Learn how to build HTML forms with input fields, labels, select menus, and the submit button.

Start lesson →
HTMLLesson 9

Semantic HTML5

Learn semantic HTML5 elements like header, nav, main, article, section, and footer, and why they matter.

Start lesson →
HTMLLesson 10

Attributes and Metadata

Learn about HTML attributes: id, class, data-* attributes, and common global attributes like title and tabindex.

Start lesson →
HTMLLesson 11

Embedding Audio and Video

Learn how to embed audio and video in HTML using the audio and video elements, with controls and multiple sources.

Start lesson →
HTMLLesson 12

Accessibility in HTML

Learn HTML accessibility basics: semantic markup, alt text, labels, ARIA attributes, and keyboard navigation.

Start lesson →
HTMLLesson 13

SEO Basics in HTML

Learn HTML SEO fundamentals: title tags, meta descriptions, heading structure, and descriptive link text.

Start lesson →
HTMLLesson 14

Best Practices and Validation

HTML best practices: validation, consistent indentation, lowercase tags, and avoiding common structural mistakes.

Start lesson →
CSSLesson 1

Introduction to CSS

An introduction to CSS: what it is, how it connects to HTML, and the three ways to apply styles to a page.

Start lesson →
CSSLesson 2

Selectors

Learn CSS selectors: element, class, id, descendant, and combinator selectors, with examples of each.

Start lesson →
CSSLesson 3

Colours and Units

Learn CSS colour formats (hex, rgb, hsl) and length units (px, %, em, rem, vh, vw).

Start lesson →
CSSLesson 4

The Box Model

Learn the CSS box model: content, padding, border, and margin, and the difference between content-box and border-box sizing.

Start lesson →
CSSLesson 5

Typography

Learn CSS typography properties: font-family, font-size, font-weight, line-height, and text-align.

Start lesson →
CSSLesson 6

Backgrounds and Borders

Learn CSS background properties (colour, image, position, size) and border properties including border-radius.

Start lesson →
CSSLesson 7

Display and Positioning

Learn the CSS display property (block, inline, inline-block, none) and position property (static, relative, absolute, fixed, sticky).

Start lesson →
CSSLesson 8

Flexbox

Learn CSS Flexbox: display flex, justify-content, align-items, flex-direction, and flex-wrap.

Start lesson →
CSSLesson 9

CSS Grid

Learn CSS Grid layout: grid-template-columns, grid-template-rows, gap, and placing items in a grid.

Start lesson →
CSSLesson 10

Responsive Design and Media Queries

Learn responsive web design with CSS media queries, the viewport meta tag, and mobile-first design principles.

Start lesson →
CSSLesson 11

Pseudo-Classes and Pseudo-Elements

Learn CSS pseudo-classes (:hover, :nth-child, :focus) and pseudo-elements (::before, ::after) with examples.

Start lesson →
CSSLesson 12

Transitions

Learn CSS transitions: transition-property, duration, timing-function, and how to animate hover and focus states.

Start lesson →
CSSLesson 13

Animations

Learn CSS keyframe animations: @keyframes, animation-duration, iteration-count, and common animation patterns.

Start lesson →
CSSLesson 14

CSS Variables (Custom Properties)

Learn CSS custom properties (variables): defining them with --name, using var(), and scoping with :root.

Start lesson →
CSSLesson 15

Specificity and the Cascade

Learn how CSS specificity and the cascade determine which styles win when multiple rules conflict.

Start lesson →
CSSLesson 16

CSS Best Practices

CSS best practices: naming conventions like BEM, avoiding overly specific selectors, and organising stylesheets.

Start lesson →
T-SQLLesson 1

Introduction to T-SQL

An introduction to T-SQL: what it is, how it relates to standard SQL, and where it's used in real database systems.

Start lesson →
T-SQLLesson 2

Setting Up SQL Server and SSMS

How to install SQL Server Express and SQL Server Management Studio (SSMS) to start writing and running T-SQL queries.

Start lesson →
T-SQLLesson 3

SELECT Statements

Learn the SELECT statement in T-SQL: selecting specific columns, using aliases, and selecting all columns with the asterisk.

Start lesson →
T-SQLLesson 4

Filtering with WHERE

Learn how to filter query results in T-SQL using the WHERE clause, comparison operators, AND/OR, and pattern matching with LIKE.

Start lesson →
T-SQLLesson 5

Sorting with ORDER BY

Learn how to sort query results in T-SQL using ORDER BY, ASC, DESC, and sorting by multiple columns.

Start lesson →
T-SQLLesson 6

Aggregate Functions

Learn T-SQL aggregate functions: COUNT, SUM, AVG, MIN, and MAX, with examples of each.

Start lesson →
T-SQLLesson 7

GROUP BY and HAVING

Learn GROUP BY for grouping rows in T-SQL, and HAVING for filtering aggregated groups.

Start lesson →
T-SQLLesson 8

Joins

Learn T-SQL joins: INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN, with examples of each.

Start lesson →
T-SQLLesson 9

Subqueries

Learn T-SQL subqueries: scalar subqueries, subqueries in WHERE with IN/EXISTS, and correlated subqueries.

Start lesson →
T-SQLLesson 10

INSERT, UPDATE, and DELETE

Learn how to insert, update, and delete rows in T-SQL, and why a WHERE clause is critical for UPDATE and DELETE.

Start lesson →
T-SQLLesson 11

Data Types and Constraints

Learn T-SQL data types (INT, VARCHAR, DATETIME, DECIMAL) and constraints (PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE).

Start lesson →
T-SQLLesson 12

Views

Learn how to create and use views in T-SQL to simplify complex queries and control data access.

Start lesson →
T-SQLLesson 13

Stored Procedures

Learn how to create and execute stored procedures in T-SQL, including parameters and output parameters.

Start lesson →
T-SQLLesson 14

User-Defined Functions

Learn how to create scalar and table-valued user-defined functions in T-SQL.

Start lesson →
T-SQLLesson 15

Triggers

Learn how T-SQL triggers work, including AFTER triggers, and common use cases like auditing changes.

Start lesson →
T-SQLLesson 16

Transactions

Learn T-SQL transactions: BEGIN TRANSACTION, COMMIT, and ROLLBACK, and why they matter for data integrity.

Start lesson →
T-SQLLesson 17

Error Handling with TRY...CATCH

Learn T-SQL error handling using TRY...CATCH, ERROR_MESSAGE(), and combining it with transactions.

Start lesson →
PHPLesson 1

Introduction to PHP

An introduction to PHP: what server-side scripting means, why PHP is popular, and how it fits into a web page's lifecycle.

Start lesson →
PHPLesson 2

Setting Up a PHP Environment

How to install a local PHP development environment using XAMPP or PHP's built-in server, so you can run .php files.

Start lesson →
PHPLesson 3

PHP Syntax Basics

Learn PHP syntax fundamentals: tags, statements, semicolons, and comments.

Start lesson →
PHPLesson 4

Variables and Data Types

Learn PHP's core data types: string, integer, float, boolean, array, and null, and how PHP's loose typing works.

Start lesson →
PHPLesson 5

Operators

Learn PHP operators: arithmetic, comparison (== vs ===), logical, and the null coalescing operator.

Start lesson →
PHPLesson 6

Conditional Statements

Learn if, elseif, else, and switch statements in PHP, plus the ternary operator for concise conditions.

Start lesson →
PHPLesson 7

Loops

Learn PHP loops: for, while, do-while, and foreach, with practical array iteration examples.

Start lesson →
PHPLesson 8

Arrays

Learn PHP arrays: indexed arrays, associative arrays, multidimensional arrays, and common array functions.

Start lesson →
PHPLesson 9

Functions

Learn how to define and call functions in PHP, including default parameters, type hints, and return types.

Start lesson →
PHPLesson 10

Strings and String Functions

Learn PHP string handling: single vs double quotes, concatenation, and common string functions like strlen, str_replace, and substr.

Start lesson →
PHPLesson 11

Forms and $_GET / $_POST

Learn how PHP handles form submissions using $_GET and $_POST superglobals, and when to use each.

Start lesson →
PHPLesson 12

Sessions and Cookies

Learn how PHP sessions and cookies work, including session_start(), storing session data, and setting cookies.

Start lesson →
PHPLesson 13

Working with Files

Learn how to read and write files in PHP using fopen, fwrite, fread, and file_get_contents.

Start lesson →
PHPLesson 14

OOP: Classes and Objects

Learn how to define classes and create objects in PHP, including properties, methods, and constructors.

Start lesson →
PHPLesson 15

Inheritance and Interfaces

Learn PHP class inheritance with extends, and interfaces with implements, including abstract classes.

Start lesson →
PHPLesson 16

Error and Exception Handling

Learn PHP exception handling with try, catch, throw, and finally, including custom exception classes.

Start lesson →
PHPLesson 17

Connecting to MySQL with PDO

Learn how to connect PHP to a MySQL database using PDO, including connection setup and basic error handling.

Start lesson →
PHPLesson 18

CRUD Operations with MySQL

Learn how to perform CRUD operations (Create, Read, Update, Delete) in PHP using PDO prepared statements.

Start lesson →
PHPLesson 19

Security Basics

Learn PHP security fundamentals: preventing SQL injection, XSS, and safely handling passwords with password_hash.

Start lesson →
JSONLesson 1

Introduction to JSON

An introduction to JSON: what it is, why it's used, and where you'll encounter it in web development.

Start lesson →
JSONLesson 2

JSON Syntax and Structure

Learn the strict syntax rules of JSON: double-quoted keys, colons, commas, and the two core structures — objects and arrays.

Start lesson →
JSONLesson 3

Data Types in JSON

Learn the six JSON data types: string, number, boolean, null, object, and array, with examples of each.

Start lesson →
JSONLesson 4

Objects and Nesting

Learn how to nest objects and arrays inside JSON to model complex, hierarchical data structures.

Start lesson →
JSONLesson 5

Arrays in JSON

Learn how to use arrays in JSON to represent ordered lists of values or objects.

Start lesson →
JSONLesson 6

Parsing JSON in JavaScript

Learn how to parse JSON strings into JavaScript objects using JSON.parse, and handle parsing errors safely.

Start lesson →
JSONLesson 7

Generating JSON in JavaScript

Learn how to convert JavaScript objects into JSON strings using JSON.stringify, including formatting options.

Start lesson →
JSONLesson 8

JSON vs XML

Compare JSON and XML: syntax differences, verbosity, and why JSON has become the dominant format for web APIs.

Start lesson →
JSONLesson 9

Working with JSON APIs

Learn how to fetch JSON data from a web API using JavaScript's fetch function, and handle the response.

Start lesson →
JSONLesson 10

Validation and JSON Schema Basics

Learn the basics of validating JSON data and an introduction to JSON Schema for describing expected structure.

Start lesson →
XMLLesson 1

Introduction to XML

An introduction to XML: what it is, how it differs from HTML, and where it's commonly used today.

Start lesson →
XMLLesson 2

XML Syntax Rules

Learn the core syntax rules of XML: a single root element, matching tags, case sensitivity, and proper nesting.

Start lesson →
XMLLesson 3

Elements and Attributes

Learn the difference between XML elements and attributes, and when to use each to represent data.

Start lesson →
XMLLesson 4

The XML Tree Structure

Understand how XML documents form a tree structure with parent, child, and sibling relationships between elements.

Start lesson →
XMLLesson 5

Well-Formed vs Valid XML

Learn the difference between well-formed XML (correct syntax) and valid XML (matches a defined schema or DTD).

Start lesson →
XMLLesson 6

DTD (Document Type Definition)

Learn the basics of DTD (Document Type Definition) for validating the structure of XML documents.

Start lesson →
XMLLesson 7

XML Schema (XSD)

Learn the basics of XML Schema (XSD): defining element types, structure, and why it improved on DTDs.

Start lesson →
XMLLesson 8

XPath Basics

Learn XPath basics for navigating and selecting elements in an XML document.

Start lesson →
XMLLesson 9

XSLT Basics

Learn the basics of XSLT for transforming XML documents into HTML or other formats.

Start lesson →
XMLLesson 10

Parsing XML: DOM and SAX

Learn the two main approaches to parsing XML programmatically: the DOM (tree-based) and SAX (event-based, streaming) models.

Start lesson →
XMLLesson 11

XML vs JSON

Compare XML and JSON directly: verbosity, capabilities, and when XML remains the better choice over JSON.

Start lesson →
TESTINGLesson 1

Introduction to Software Testing

An introduction to software testing: what it is, why it matters, and the mindset that makes a good tester effective.

Start lesson →
TESTINGLesson 2

The SDLC and Where Testing Fits

Learn how software testing fits into the Software Development Life Cycle (SDLC), and why early testing matters.

Start lesson →
TESTINGLesson 3

Manual vs Automated Testing

Compare manual and automated software testing, including their respective strengths and when to use each.

Start lesson →
TESTINGLesson 4

Levels of Testing

Learn the four levels of software testing: unit, integration, system, and acceptance testing.

Start lesson →
TESTINGLesson 5

Black Box vs White Box Testing

Learn the difference between black box testing (behaviour-focused) and white box testing (code-structure-focused).

Start lesson →
TESTINGLesson 6

Test Case Design

Learn how to write clear, effective test cases, including preconditions, steps, and expected results.

Start lesson →
TESTINGLesson 7

Writing Test Plans

Learn how to write a software test plan, including scope, objectives, resources, and entry/exit criteria.

Start lesson →
TESTINGLesson 8

Functional Testing

Learn functional testing: verifying software features work according to their specified requirements.

Start lesson →
TESTINGLesson 9

Non-Functional Testing

Learn about non-functional testing types: performance, security, usability, and reliability testing.

Start lesson →
TESTINGLesson 10

Regression Testing

Learn regression testing: why it matters after every code change, and how automation makes it practical at scale.

Start lesson →
TESTINGLesson 11

Bug Life Cycle and Defect Reporting

Learn the bug life cycle and how to write an effective defect report, including reproduction steps and severity.

Start lesson →
TESTINGLesson 12

Test Automation Basics

Learn the basics of test automation: what makes a good candidate for automation and common tool categories.

Start lesson →
TESTINGLesson 13

Introduction to Selenium

An introduction to Selenium WebDriver for automating browser-based tests, with a simple example.

Start lesson →
TESTINGLesson 14

Unit Testing Frameworks

Learn how unit testing frameworks like JUnit and PyTest work, including assertions and test structure.

Start lesson →
TESTINGLesson 15

Agile Testing and Continuous Testing

Learn how testing fits into agile development and CI/CD pipelines through continuous testing practices.

Start lesson →
TESTINGLesson 16

Test Metrics and Reporting

Learn common software testing metrics: test coverage, pass/fail rate, and defect density, and how to report them.

Start lesson →
CLOUDLesson 1

Introduction to Cloud Computing

An introduction to cloud computing: what it is, its core characteristics, and why it has transformed how businesses build software.

Start lesson →
CLOUDLesson 2

Cloud Service Models: IaaS, PaaS, SaaS

Learn the three cloud service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).

Start lesson →
CLOUDLesson 3

Cloud Deployment Models

Learn the cloud deployment models: public, private, hybrid, and multi-cloud, and when each is appropriate.

Start lesson →
CLOUDLesson 4

Major Cloud Providers

An overview of the major cloud providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).

Start lesson →
CLOUDLesson 5

Virtualization and Containers

Learn how virtual machines and containers work, and the key differences between them in cloud computing.

Start lesson →
CLOUDLesson 6

Cloud Storage

Learn the main types of cloud storage: object storage, block storage, and file storage, and when to use each.

Start lesson →
CLOUDLesson 7

Cloud Networking Basics

Learn cloud networking basics: virtual private clouds, subnets, and security groups/firewalls.

Start lesson →
CLOUDLesson 8

Compute Services

Learn about cloud compute services: virtual machines, managed container services, and auto-scaling.

Start lesson →
CLOUDLesson 9

Databases in the Cloud

Learn about managed cloud database services, including relational and NoSQL options.

Start lesson →
CLOUDLesson 10

Scalability and Elasticity

Learn the difference between vertical and horizontal scaling, and how elasticity enables automatic scaling in the cloud.

Start lesson →
CLOUDLesson 11

Cloud Security Fundamentals

Learn cloud security fundamentals, including the shared responsibility model and core security practices.

Start lesson →
CLOUDLesson 12

Identity and Access Management

Learn Identity and Access Management (IAM) basics: users, roles, policies, and the principle of least privilege.

Start lesson →
CLOUDLesson 13

Serverless Computing

Learn serverless computing: how Functions-as-a-Service (FaaS) works, and its trade-offs compared to traditional servers.

Start lesson →
CLOUDLesson 14

DevOps and CI/CD in the Cloud

Learn how DevOps and CI/CD pipelines work in cloud environments, automating build, test, and deployment.

Start lesson →
CLOUDLesson 15

Cost Management in the Cloud

Learn cloud cost management fundamentals: monitoring spend, right-sizing resources, and common cost pitfalls.

Start lesson →
CLOUDLesson 16

Cloud Migration Strategies

Learn common cloud migration strategies: rehosting, replatforming, and refactoring, and how to choose between them.

Start lesson →