Coding, as with so many things we do in life, is about correcting mistakes. You do something, you see what you did wrong, you correct. When you’re coding, this is known as debugging. Write a little code, run your code, get errors, debug.
A tool called a debugger lets you see the inner workings of the program to locate problems. The work of debugging means finding mistakes, rewriting, and trying again. And again. Bit by bit, the program will start to work.
Debugging is the hard part of programming. Understanding the difference between what your program does and what you want it to do is a challenge even to professionals. Without a debugger it’s harder still -- tricky for professionals, cause to quit for amateurs.
So why do most systems for learning programming come without a friendly debugger?
Sure, you can use the built-in debugging tools that come with the programming language, but they’re not made for beginners. They’re engineering tools, not teaching tools.
We realized that for new code learners to make it past the dragons, demons and debuggers to the inner sanctum of understanding coding we needed to provide them with a way to get there. So we created a friendly debugger.
It’s not as simple as debugger X is not friendly and debugger Y is friendly. It’s more than that. It’s about how the learner experiences the process of learning about what a debugger is and then how they will come to use debuggers once they get the hang of it.
And here’s the lightbulb fireworks part:
A debugger is a tool that developers use.
A debugger in its native form is not something that learners need to wrestle with.
Here is an error message (not an important one) if you open the Chrome debugger:
DevTools failed to load SourceMap:
Could not load content for
HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
If you’re already an engineer you already know what this is, but for learners, that kind of impenetrable text can be a deal breaker. For teachers, it’s a helluva tall order to teach learners to use.
How many more learners would make it to the next level if they were given a more friendly path to learn to use a debugger? Remember that debugging is the thing that allows students to move to an intermediate level of skill with coding.
Why do we have this concept that it needs to be hard to learn to code?
I think it comes down to kind of a protective barrier in the tech paradigm that says “it’s not for everyone.” And there’s something to that. Not everyone wants to be a programmer.
But as with reading, though not everyone is going to be a prolific reader, we teach everyone how to do it, and we recognize literacy as a basic educational duty.
We’ve reached the point in our social and economic relationship to technology that this level of literacy with coding is needed.
The paradigm is shifting every day, of course. There are people working on solving the problem of making tech accessible to users, decision makers, and engineers. Teachers working with kids in electives and AP classes and even some elementary schools embracing early coding processes.
What I’m doing writing this blog is sharing an innovation that will bring coding literacy to students and support learners not giving up.
Maybe you don’t want to grow up to be a programmer, but you have the choice. You know what a @#〄!ሂሙⴲ*$ debugger is and you’re not afraid to use it.