The foundation of what I teach is a new way of looking at coding problems and learning coding in depth that I call “wise coding.” Wise coding can reduce the struggle of learning to code and the difficulty of coding large projects.
Tiny steps are a key part of my teaching.
Why do tiny steps make things easier? It works like this. Any job you try to accomplish through large, effortful leaps will feel hard. Conversely, any job you do in a series of tiny steps will feel easy.
What does this mean for coding? When you are confronted with a difficult problem, you begin not by grappling with hard questions, but instead looking for small accomplishments. You don’t even worry about whether your small accomplishments are correct; some of them might turn out later to be wrong, but that’s okay.
Why do tiny steps work so well?
One objection people have to using tiny steps and giving themselves permission to be wrong is that they feel there’s no way to get to your final answer like that. Surely the solution is difficult and requires a lot of work–how can small and easy steps lead to it? And why are mistakes ok? It may seem that a single mistake will ruin your chances of solving the problem.
Sure, any given tiny step might take you in the wrong direction, but when you’re coding in a wise way, you will be learning from your mistakes and using your intuition to guide you back to the main track of your problem. In our lessons together, I’ll be showing you how to work this way, and you can learn a lot during your own practice time, too.
Even tiny steps aren’t so simple, actually. Behind each tiny step you take is some kind of thought, like a mental concept or mental image that’s guiding you. Together we can become conscious of your concepts and imagery. We can explore whether they are accurate to the problem at hand or whether they need to be adjusted.
If your existing concepts and imagery are accurate, then great! If they aren’t a good match for our problem, you can learn why and quickly adjust. We can work together on that adjustment. It may be discouraging to discover that your thoughts are not accurate to the problem, but after you adjust them you can complement yourself on having learned something deep about coding that is sure to be useful in the future.
Yes, you can get there with small steps
It’s a bit strange but wonderful that coding works this way; that all tiny steps lead eventually to the answer.
This is surprising because there are many areas of life where small steps don’t work in the same way. Consider the terrain you walk over when you’re hiking. Say you’re standing in front of an obstacle, such as a tall cliff wall. You might feel the need to prepare yourself for a big effort to get up it. Or you might get discouraged and give up.
But what if there’s a trail nearby with a gentle slope that leads to the top of the cliff? Maybe you should look for that instead.
Of course, in real outdoors terrain there’s no guarantee that a gentle slope will be nearby. Sometimes the only way up is a difficult cliff that requires a giant effort.
But with coding, there’s always a gentle slope that can be taken in place of giant leaps. Looking for it is not lazy; it will only make you faster and more thorough. You are preparing yourself for harder problems in the future and to be able to solve them with aplomb. You are optimizing your mental energy.
This ability to “do more with less” is a hallmark of wise coding.
How will we work together?
Most of these ideas are difficult to pick up from reading about them or watching a video. When we sit down to work together, I’ll show you how to use them in your specific problem, and soon you’ll be off and running and making your own wise decisions with tiny steps.
For a general introduction to wise coding, see “What is wise coding?”
To learn about the type of problem solving involved in coding, see “Coding is Problem Solving.”