There’s a concept called the goes by various names and forms. I learned of it as Maslow’s Hammer, but apparently it’s more commonly known as the Law of the Instrument.
These two forms go as follows:
“Give a small boy a hammer, and he will find that everything he encounters needs pounding.” (the Law of the Instrument)
“if all you have is a hammer, everything looks like a nail” (Maslow’s hammer).
I have mixed feelings about the concept. On the one hand, it’s undeniably true. On the other hand, I’ve never liked the degree to which it feels pejorative. If you have a hammer, solving your problems by hitting things is a great way to learn about the different applications of hammers, which are many and varied.
Imagine being an early human and encountering the concept of a hammer for the first time. Maybe you’ve just used it to crack a nut.
- Say “Oh, cool. A better means of cracking nuts. I like nuts” and go on to fill your belly with lots of delicious nut meat.
- Think “Oh my god this changes everything”, think up a dozen other applications to tasks that would previously have been hard to impossible, and take the first step in a long journey that begins with basic tool making and continues straight on through some distant future descendant sitting in front of a computer typing these words.
I suspect quite a lot of people did the first before somebody did the second.
Hammers are the precursor tool that lead to all other things. They give you the ability to exert greater pressure on things than you safely can on your own. You can crack nuts and shells, but you can also grind things, you can pound staves into the ground, and most importantly you can make other tools by shaving off fragments of flints to produce blades. Hammers are amazing and I won’t hear a word against them.
But there’s another precursor tool that is more important yet, which lives inside your head. This is the ability to generalise, and with it to consider the idea of a hammer as a general purpose tool with multiple applications. Plenty of animals have hammers. Very few of them use their hammers for more than a few specialised purposes, let alone to produce blades and other tools.
The most obvious example of failure to generalise I’ve ever lived with is Dexter.
Dexter is simultaneously very clever and very stupid: He is clever because he figured out how to open the door to my flatmates’ bedroom. He jumps up, braces himself on the door handle, pulls it down with his body weight, and then lets the momentum push the door open. If the door isn’t locked it works very well (if the door is locked, he just repeats it until people are annoyed enough by the noise to unlock it).
But he is very stupid because there are four other doors in the flat that he is sometimes cruelly and unjustifiably trapped on the wrong side of, and he has absolutely no idea what to do about this. One of the other doors is literally identical in configuration to the one he could open, but it’s a different door, so it must have some fundamentally different magic spell required to open it.
As far as I know he has never even tried his door opening technique on any of the others. If he wants through to the other side, he just sits in front of the door and whines until someone lets him in (this is a much less effective technique).
The problem with Dexter (well, one problem. He has so many) is that although he had figured something out he lacked the ability to think through the implications and apply it more broadly.
In contrast, the problem with a lot of people when solving problems is not that we can’t generalise, it’s just that we don’t.
We learn how to use a hammer to crack a nut, and then we go “Oh, cool. Now I can crack all these other nuts in front of me much more efficiently” and keep on cracking nuts. We open the door, and now we have access to the nice warm bed and are beyond caring about all those other doors we could open.
This happens all the time to everyone – I notice it in daily life, in software development, in mathematics. Any area where you regularly solve problems (which is, to a first approximation, every area) has tools you could be using that people are routinely miss how to generalise.
One reasons this crops up so often is that it’s something of a limitation of learning while doing. If you’re learning because of the problem in front of you, it’s tempting to stay very focused on the problem in front of you and not think through the broader implications of what you’ve learned.
The solution is instead to be the child with the hammer. You don’t have to stop what you’re doing to do it, but once you’ve learned a new technique, spend some time to go around hitting things with it.
Be careful what you hit – some things are fragile – but as long as you’re in a place where it’s safe to experiment then you should. It will give you solutions you might not have thought of, and significantly refine your understanding of what you’ve learned by seeing how it fits into a broader context.
I tend to do this mostly automatically (or, at least, I notice myself doing this a lot. There might be whole categories of things I learn and then forget to do this with), which means I don’t have very good habits to suggest for how to do it, but here are some things I think might help remember to do this:
- When learning by doing, write down interesting things you learned so you remember them later explicitly.
- When you learn new things, try to come up with at least one application of them outside the context you’re learning them in.
- When you encounter a new problem, see if anything you learned recently applies to it.
- When you re-encounter a problem that you previously believed was hard or impossible, spend at least 5 minutes thinking about why it is hard or impossible and if anything you’ve learned since then changes that.
I don’t know how well these work when you do them explicitly, but they should at least be better than not trying them.
Regardless though, try to keep the key idea in mind: When you learn about new things, ask how else you can use them. Think through the implications.