#30DaysOfDebugging
30 Days of Debugging: JavaScript
One bug a day, for 30 days. Each day is a short piece of JavaScript that almost works, the symptom it causes, and tests that pass once you have fixed it. It takes most people five to ten minutes.
The first three weeks are the bugs every beginner meets. The last stretch is medium level: boundaries, rounding, shared state and an interview problem. Go faster if you like; the days are a pace, not a lock.
Your progress
0 of 30 days
- 1Day 1 · Words start with duplicate letters
- 2Day 2 · Validation returning reversed results
- 3Day 3 · Shipping discount applied incorrectly
- 4Day 4 · First slice is missing data
- 5Day 5 · Array iteration throwing out of bounds
- 6Day 6 · Playlist shows undefined as the last song
- 7Day 7 · Number sort puts 10 before 2
- 8Day 8 · Price list full of undefined
- 9Day 9 · Validator never finds the negative number
- 10Day 10 · Error when fetching names from empty groups
- 11Day 11 · Multiplier running forever
- 12Day 12 · Dashboard crashing on missing data
- 13Day 13 · Helper function returning undefined
- 14Day 14 · Cart total comes out as gibberish
- 15Day 15 · Math formula returning negative resultsMedium
- 16Day 16 · List truncator missing the final itemMedium
- 17Day 17 · Formatter appending extra charactersMedium
- 18Day 18 · Formatter leaving unwanted charactersMedium
- 19Day 19 · Validation passing empty stringsMedium
- 20Day 20 · Zero values being ignoredMedium
- 21Day 21 · Function crashing when item not foundMedium
- 22Day 22 · Every date shows last monthMedium
- 23Day 23 · Number conversion rounding incorrectlyMedium
- 24Day 24 · Mapping strings to numbersMedium
- 25Day 25 · Financial totals slightly inaccurateMedium
- 26Day 26 · Data groups overwriting each otherMedium
- 27Day 27 · ReferenceError crashing the appMedium
- 28Day 28 · Delayed function returning undefinedMedium
- 29Day 29 · AI Attempt: Remove all occurrencesMedium
- 30Day 30 · Array contains pending operationsMedium
How it works
- Everything runs in your browser. No install, no account needed to start.
- Sign in to keep your progress across devices. Without an account it is remembered in this browser only.
- Finish all 30 while signed in and you can claim the free 30 Days of Debugging · JavaScript certificate, with a verification link for LinkedIn.
- Posting your progress? Use #30DaysOfDebugging. The share button after each fix writes the post for you.
Prefer Python? 30 Days of Debugging: Python