It’s All About Domain Knowledge

by Justin Skycak (@justinskycak) on

We tend to vastly underestimate how much of our problem-solving ability comes down to accumulated domain expertise.

Want to get notified about new posts? Join the mailing list and follow on X/Twitter.


There is a lack of evidence that you can increase someone’s ability to problem-solve by any other method than equipping them with more domain knowledge.

If this seems counterintuitive, it’s because 1) we tend to vastly underestimate how much of our problem-solving ability comes down to accumulated domain expertise, and 2) courses typically don’t cover all the domain expertise that’s needed.

For instance, an opponent might argue that debugging code is more than just domain knowledge, it’s about the general ability to tinker around with things, and you don’t learn that at school.

However, what’s happening is they’ve amassed a vast zoo of tinkering techniques – printing out specific relevant info, dumping all info into a logfile, setting a breakpoint, setting a conditional breakpoint, stepping through code, refactoring messy code in the hopes that reducing complexity will make the problem go away naturally or at least be easier to identify, reproducing the issue on a simpler case, etc. – and they’ve gotten tons of practice selecting and using these techniques in different problem contexts.

This is domain knowledge. It comes more quickly to some people than others, but there’s nothing magical about it. If you learn these granular techniques, get really good at executing them in technically complex settings, and get really good at matching a debugging problems to techniques, you’ll be an expert debugger.

Unfortunately, this stuff is typically not covered in CS courses. Students typically get very little structured practice with this stuff. It seems like most CS grads barely even know how to work with breakpoints. And that’s just scratching the surface of debugging techniques.

So what happens is people will sometimes learn a bunch of stuff outside an incomprehensive structured curriculum, and then think that the stuff they learned is magical and cannot be taught in a structured manner. When, in fact, it can – and the problem is just that nobody has put in the hard work to create that structured curriculum yet.



Want to get notified about new posts? Join the mailing list and follow on X/Twitter.