A LITTLE CURIOSITY GOES A LONG WAY

Let’s write your
next line of code.

Learn a concept. Try it out. Make a mistake and try again. You belong here, wherever you’re starting.

No sign-up · Start at your level · Learn at your pace

JavaScript warm-upREAD THE CODE
const greeting = "  Hello Coder  ";
console.log(greeting.trim().toLowerCase());
What will it print?
No pressure. This is a warm-up, not a test.

FIND YOUR FOOTING

A good place to begin.

All 24 languages

READY TO GET YOUR HANDS ON THE KEYBOARD?

Read a little. Build a little.

Write and run JavaScript, Python, and SQL in your browser. Real test cases help you see what works and what to try next.

Find a challenge

Already know the basics? Every chapter is open. Skip ahead, revisit a concept, or take a final when you feel ready.

FOLLOW YOUR CURIOSITY

Keep exploring.

24 tracks · 324 chapters

Find a language or a topic you want to understand. Every chapter is open, so you can start with the basics or pick up where you left off.

6 of 24 courses
What do the levels mean?

Track levels are CodeQuest’s overall language difficulty guide. Master is the hardest tier. Individual chapters and missions have their own difficulty, so demanding tracks can still start with introductory lessons. Check the preparation notes before starting.

Beginner
The most approachable tracks for getting started.
Intermediate
More concepts and language rules to learn and combine.
Advanced
Demanding tracks with deeper technical concepts.
Master
Our hardest tracks, with the most demanding concepts and programming models.

JavaScript

Beginner

Bring web interactions to life

Track difficulty: Beginner
17 chapters · Checkpoints & final

Chapters & prerequisites

Before you start No programming experience needed. Begin with values, basic strings, and arrays; the later chapters build toward asynchronous work and data validation.

  1. Your first JavaScript programBeginner
  2. Values and decisionsBeginner
  3. Strings you can read and changeBeginner
  4. Arrays and the first itemBeginner
  5. Functions and loop boundariesBeginner
  6. Objects with named propertiesBeginner
  7. Destructuring, defaults, and rest parametersIntermediate
  8. Transform collections without surprisesIntermediate
  9. Object identity and deliberate nested updatesIntermediate
  10. Closures and keyed stateIntermediate
  11. Methods, receivers, and class invariantsIntermediate
  12. Modules and explicit dependenciesIntermediate
  13. Promises and failure pathsAdvanced
  14. Concurrent promises and result orderingAdvanced
  15. Text, Unicode, and explicit normalizationIntermediate
  16. Recursive decomposition and search invariantsAdvanced
  17. Validate data at boundariesAdvanced

Python

Beginner

Make everyday data work for you

Track difficulty: Beginner
17 chapters · Checkpoints & final

Chapters & prerequisites

Before you start No programming experience needed. Start with your first program, then strings, lists, decisions, and small functions before the deeper topics.

  1. Your first Python programBeginner
  2. Working with stringsBeginner
  3. Lists and changing one itemBeginner
  4. Decisions and repeating workBeginner
  5. Functions that return an answerBeginner
  6. Values, text, and arithmeticBeginner
  7. Functions and dependable defaultsBeginner
  8. Lists, sets, and dictionariesIntermediate
  9. Comprehensions and nested aliasingIntermediate
  10. Lexical scope and closuresIntermediate
  11. Iterators and lazy pipelinesIntermediate
  12. Instance state and behavioral contractsIntermediate
  13. Exceptions and resource boundariesAdvanced
  14. JSON parsing and domain validationAdvanced
  15. Records, ordering, and invariantsAdvanced
  16. Modules and tests that challenge a contractIntermediate
  17. Recursive algorithms and terminating rangesAdvanced

Java

Intermediate

Build with classes and reliable types

Track difficulty: Intermediate
13 chapters · Checkpoints & final

Chapters & prerequisites

Before you start No previous Java required. Intro to Java explains how a small program runs; objects, types, methods, and collections are introduced as you progress.

Preparation you can open nowIntro to Java
  1. Intro to JavaBeginner
  2. Using objectsBeginner
  3. Data typesBeginner
  4. ClassesIntermediate
  5. DecisionsBeginner
  6. IterationIntermediate
  7. Arrays and ArrayListsIntermediate
  8. Sorting and searchingIntermediate
  9. Designing classesIntermediate
  10. Interfaces and polymorphismAdvanced
  11. InheritanceAdvanced
  12. Exception handlingAdvanced
  13. RecursionAdvanced

SQL

Beginner

Ask precise questions of data.

Track difficulty: Beginner
14 chapters · Checkpoints & final

Chapters & prerequisites

Before you start No SQL experience needed. Begin by reading a table and selecting columns. Later chapters introduce joins, grouping, windows, and recursive queries using SQLite.

Preparation you can open nowRows, columns, and SELECT
  1. Read a table and choose columnsBeginner
  2. Select rows with a clear orderBeginner
  3. Missing values and three-valued logicBeginner
  4. Keys, constraints, and valid rowsIntermediate
  5. Join tables without losing the questionIntermediate
  6. Existence tests and correlated questionsIntermediate
  7. Aggregate at the right grainIntermediate
  8. Set operations and duplicate meaningIntermediate
  9. CTEs and windowed analysisAdvanced
  10. Dates, ranges, and deterministic periodsIntermediate
  11. Recursive CTEs and terminationAdvanced
  12. Updates, upserts, and affected rowsAdvanced
  13. Transactions, constraints, and query plansAdvanced
  14. Indexes and evidence-based query tuningAdvanced

C#

Intermediate

Write expressive .NET applications

Track difficulty: Intermediate
15 chapters · Checkpoints & final

Chapters & prerequisites

Before you start No previous C# required. Start with a small program, then values and arrays before methods, classes, and asynchronous work.

Preparation you can open nowRun a C# program
  1. Run and read a C# programBeginner
  2. Values, types, and stringsBeginner
  3. Create and read an arrayBeginner
  4. Decisions, loops, and methodsBeginner
  5. Arrays, value copies, and shared referencesIntermediate
  6. Pattern matching and exhaustive decisionsIntermediate
  7. Classes, properties, and invariantsIntermediate
  8. Collections and LINQ pipelinesIntermediate
  9. Dictionary contracts and equality rulesIntermediate
  10. Delegates and captured stateIntermediate
  11. Iterator methods and deferred executionAdvanced
  12. Interfaces and virtual behaviorAdvanced
  13. Nullable values and explicit failuresIntermediate
  14. Deterministic cleanup with usingAdvanced
  15. Tasks, asynchronous completion, and failureAdvanced

TypeScript

Intermediate

Add clear types to JavaScript ideas

Track difficulty: Intermediate
14 chapters · Checkpoints & final

Chapters & prerequisites

Before you start Bring basic JavaScript variables, functions, arrays, and object literals. Classes are taught later; you do not need to finish the whole JavaScript course first.

  1. Read compiler feedback and run a checked programIntermediate
  2. Types as working contractsBeginner
  3. Object shapes and readonly viewsBeginner
  4. Tuples, rest parameters, and array boundariesIntermediate
  5. Narrowing and explicit statesIntermediate
  6. Literal inference and checked configurationIntermediate
  7. Preserve relationships with genericsIntermediate
  8. Function compatibility and callback promisesAdvanced
  9. Classes, structural contracts, and private stateIntermediate
  10. Module boundaries and type-only dependenciesIntermediate
  11. Typed asynchronous results and explicit failureAdvanced
  12. Derive API types from one modelAdvanced
  13. Conditional types and union distributionAdvanced
  14. Unknown input and trustworthy resultsAdvanced
Explore all 24 languages