Variables & Data: The Scoreboard Mistake Almost Everyone Makes First

CREATE and CHANGE look interchangeable until the interpreter stops you. Here's why they aren't.

Operators & Comparisons: Why an Odd-or-Even Check Gives the Wrong Answer

The remainder is right. The comparison built around it is backwards, and it's an easy way to get it backwards.

Input, Output & Comments: The Answer You Typed Isn't the Type You Think It Is

ASK, input(), and prompt() all hand back text -- even when you typed a number. That difference has to be handled on purpose.

Program Structure & Sequence: Right Steps, Wrong Order

Every line here does something correct. Read top to bottom before deciding the whole program is correct.

Conditions & Branching: "And" vs. Two Separate Ifs

Two conditions that must both be true are one decision, not two. Writing them as two IFs lets either one alone let something through.

Loops & Repetition: The Off-by-One That Shows Up in Every Language

One boundary character decides whether a loop runs the right number of times or stops one short.

Functions & Reuse: Why Your Function "Returns Nothing"

Showing a value from inside a function and sending it back out are two different things. Only one of them lets the caller use it.

Objects & Blueprints: Proving Two Objects Don't Secretly Share a Value

Two objects made from the same blueprint look identical until you change one. Here's how to actually check they're separate.

Reading the Error Message Instead of Guessing

Every error on this site is a full sentence about your program, with a hint saying what to do. It's usually faster to read it than to guess.

Same Task, Three Languages -- What Changes and What Doesn't

Every challenge here solves one task in pseudocode, Python, and JavaScript. The logic never changes. A few small things always do.