Course Structure

Learn about the different parts of this course.

How to approach the puzzles

As you work through the puzzles in this course, it might help to picture yourself as Nancy Drew, Sherlock Holmes, or any other of your favorite detectives trying to solve a mystery. Think of it like this:

“Debugging is like being a detective in a crime movie where you’re also the murderer.” — Filipe Fortes

We’ve found that things are easier to understand with this mindset, and the work is more enjoyable. So keeping that in mind, enjoy guessing the brain teasers in this course—perhaps you might even learn a new trick or two.

Course organisation

The course contains 25 carefully designed brain teasers to challenge you to think and find a solution. Each puzzle spans two lessons. In the first lesson, we provide static code followed by a short quiz to guess the expected output. In the next lesson, we provide an executable code to run the puzzle and see the output. After this, we also explain why the program produces the result it does and how similar issues might affect the code you write in your programs.

💡 Tip: Before moving on to the answer and the explanation, go ahead and guess the output. After guessing, we encourage you to run the code and see the output yourself; only then read the solution and the explanation.