Improve Your Problem-Solving Skills

Last year I gave a conference talk called “Writing for Nerds”, where I drew parallels between writing articles like this and writing code. The reason those parallels exist is because a lot of what we do as software engineers is a mixture of creativity and problem-solving—similar to the processes involved with writing, making music, or designing something.

Strangely, when we’re taught how to program, problem-solving is rarely covered; rather, it is treated as something that future programmers should be able to figure out on their own. While an enjoyment of problem-solving is something that draws many of us to this field, it doesn’t guarantee that we have all the techniques and know-how.

There are two mistakes I frequently see people make. The first is to dive straight into the integrated development environment (IDE) and start coding. That might work, but more often than not. you’ll just end up wasting time. The second is to go straight to a search engine, Stack Overflow, or (increasingly) to a large language model (LLM), and copy and paste whatever code you find. The risk there is that not only have you not understood the solution you’re copying and pasting, but you haven’t really understood the problem either. It’s not that these tools aren’t useful, but it’s best to avoid seeing them as both the start and end of your problem-solving toolset.

Problems vary in size and scope. They ...

Get Improve Your Problem-Solving Skills now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.