When I interact with students, I like to integrate an interactive,
inquisitive approach that's focused on soliciting incremental feedback
driving towards a clear picture of the task at hand. When students are
struggling on their journey to learn how to code, I find that there's
usually something missing or lacking in their process and that
focusing on these 5 phases of inquiry can help them develop better
What am I trying to do?
Before starting to code, you want to be crystal clear on what success
looks like. Before you commit to code, or an approach, having a high
level picture of how the pieces will fit together is essential to stay
focused as you work through the rest of the phases.
What's happening instead of that?
Coming to grips with the current behavior of the code, and what the
feedback you're seeing means, is essential as a beginner. You don't
just stop at "it's not working :("–you pay close attention to what is
actually happening and compare that to what you want.
How can I explain what's currently happening?
Before trying to fix the problem or making the feature work or making
any change at all, the current behavior needs to be explained. As a
beginner, you need to make sure you understand the feedback you're
getting from the computer. Don't make a change until you can explain
Given my understanding, what change can I make to get closer to my
After explaining why the code behaves the way it does, the next step
is to come up with a change that could take us closer to the desired
behavior. But, let's make things interesting here–if you make a
prediction about what should happen after you make a particular
change, you give yourself the opportunity to be right or wrong. If you
do this in a way where you can make the prediction and get instant
feedback about whether it was right or not, you'll be tying in your
brain's reward structure. When you're right, you'll get a hit of
dopamine that will get you addicted to thinking about that concept
correctly. When you're wrong, you get a visceral sense of it–and you
know you've got some reading to do!
When I make the change, do I get the result I expected?
At this point, you want to re-anchor to the task at hand. If you got
the expected result, you can repeat the phases starting with the
first. If you didn't, then you want to return to phase three and
explain why you got what you did instead of what you expected.