How We Solve Problems: Inception

As any good developer, I’m constantly trying to keep up with the latest and greatest, as well as brush up on the oldies and goodies of the skills I leverage daily. As a full-stack developer, I tend to study in cycles, switching between “front-end” and “back-end” skills. In June I presented some thoughts on typography at wpnyc.org. To prepare I focused quite a bit on design principles. To balance that out, I decided to up my analytical skills and focus next on reviewing design patterns.

“In software engineering, a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations. Patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.”

- Wikipedia

Some of the top minds in the world have worked out, not only the best way to solve various problems that repeat themselves, but also how to quantify that.

This idea made me curious regarding how this approach can, and has, been applied outside of the world of Computer Science.

An example: Memory Leaks. A memory leak occurs when a programmer, or a language, uses the computer’s memory but neglects to free up again the resources it used.

When your computer sees that it’s running out of resources it starts to borrow memory from other processes that are running in the background, but it can’t return those resources because of the rogue program wastefully using them. Consequently, the computer has fewer resources to run the programs it runs and slows to a halt.

This is what happens with most forms of limited resources, whether financial, stress, emotional, or focus.

People spend money, sometimes it seems like a good idea at the time, but we don’t always reclaim those resources when we’re done, or when we decide it wasn’t a very good idea. We end up throwing good money after bad; either to justify the original decision, or because we don’t have the ability, energy, or know-how to go back and reclaim the wasted resources.

Can techniques developed to find memory leaks be applied to financial management? Can garbage collection be applied to stress management?

I am a strong believer if we have a skill in one area of our life, that skill spills over into other areas of our life…. and developers solve problems all day long. I decided to write a series of articles about how developers solve problems, outside of code.

About the image: Mendicino at sunset
Published in Musings