Browse the course

54 visual skribbles across 1 tracks — scroll through them all.

Java

Java Fundamentals

Abstract Classes

Free

Partial blueprint - some methods, some holes

Open lesson →

Classes & Objects

Free

Blueprints and instances - the core of Java

Open lesson →

Constructors

Free

Initialize objects - same name as class, no return type

Open lesson →

Control Flow

Free

if/else - make decisions in code

Open lesson →

Custom Exceptions

Free

Extend Exception - domain-specific errors

Open lesson →

Encapsulation

Free

Private fields + public methods = controlled access

Open lesson →

Exception Handling

Free

try / catch / finally - handle errors gracefully

Open lesson →

Garbage Collection

Premium

Automatic memory management in Java

Open lesson →

Generics

Premium

Type-safe containers - write once, use for any type

Open lesson →

Inheritance

Free

extends - child class inherits from parent

Open lesson →

Interfaces

Free

Contract - what a class must do, not how

Open lesson →

JVM Memory Regions

Premium

Stack vs Heap - where your data lives

Open lesson →

JVM Pipeline

Premium

From .java to running bytecode

Open lesson →

Loops

Free

for, while, for-each - repeat with control

Open lesson →

Methods

Free

Reusable blocks of code with inputs and outputs

Open lesson →

Operators & Expressions

Free

Arithmetic, comparison, logical, and ternary

Open lesson →

Polymorphism

Free

One supertype, many implementations

Open lesson →

String Methods

Free

Deep dive - trim, replace, split & more

Open lesson →

String Pool

Premium

Why identical strings can share one object

Open lesson →

Strings

Free

Immutable text - the most-used Java type

Open lesson →

The main() Method

Free

Where every Java program begins

Open lesson →

Variables & Primitive Types

Free

The building blocks of Java data

Open lesson →

Wrapper Classes

Free

Autoboxing - primitives meet objects

Open lesson →

Collections & Data Structures

ArrayDeque

Premium

Double-ended queue - fast at both ends

Open lesson →

ArrayList: Index-Based Access

Premium

Your go-to List for most use cases

Open lesson →

Arrays

Premium

Fixed-size, indexed, type-safe containers

Open lesson →

HashMap Internals

Free

Inside put & get - hashing, buckets, collisions

Open lesson →

HashMap: Key-Value Lookup

Premium

Fast access by key - O(1) average

Open lesson →

HashSet: No Duplicates Allowed

Premium

Unique elements with average O(1) lookup

Open lesson →

Iterating Collections

Premium

for-each, Iterator, forEach - three ways to loop

Open lesson →

Java Collections: The Family

Free

Know the landscape before picking a collection

Open lesson →

LinkedList: Insert & Remove Fast

Premium

Doubly-linked nodes - O(1) at both ends

Open lesson →

Map

Free

Key-value pairs for fast lookups

Open lesson →

Pick the Right Collection

Free

A quick decision guide

Open lesson →

PriorityQueue

Premium

Heap-ordered queue - smallest out first

Open lesson →

Queue & Deque

Premium

FIFO processing - first in, first out

Open lesson →

Sorting Collections

Premium

Comparable vs Comparator - natural vs custom order

Open lesson →

TreeMap: Sorted Keys

Premium

Red-black tree - keys always in order

Open lesson →

TreeSet: Sorted Unique

Premium

Red-black tree - elements always in order, no duplicates

Open lesson →

Why Collections?

Free

Arrays vs Collections - know the difference

Open lesson →

Functional Java

Functional Interfaces

Premium

Predicate & Function - lambdas with a contract

Open lesson →

Lambda Expressions

Free

Concise syntax for anonymous functions

Open lesson →

Optional

Premium

Represent an absent return value explicitly

Open lesson →

Stream Collectors

Premium

Recipes that collect() applies to a stream

Open lesson →

Stream Pipeline

Premium

Transform collections step by step

Open lesson →

Concurrency

Concurrent Collections

Premium

Thread-safe collections without full locking

Open lesson →

Synchronization

Premium

Coordinating shared state between threads

Open lesson →

Threads

Premium

Creating and running threads in Java

Open lesson →

Gotchas & Pitfalls

The Floating-Point Trap

Premium

Why 0.1 + 0.2 is not 0.3

Open lesson →

The Integer Cache Trap

Premium

Why == lies for boxed values

Open lesson →

The Mutable Key Trap

Premium

Why your HashSet loses the live object

Open lesson →

The equals Without hashCode Trap

Free

Why your HashSet loses the object

Open lesson →

The finally return Trap

Premium

Why a return in finally hides bugs

Open lesson →

The for-each Remove Trap

Premium

Why removing in a loop throws

Open lesson →