From Chaos to Code
Two Tools Every Programmer Needs to Go Pro
Two Tools Every Programmer Needs to Go Pro
My goal here is to introduce you to two tools that make a programmer’s job easier and more effective. At its core, a computer programmer’s job is to solve problems—big ones, small ones, messy ones. When we tackle problems professionally, tools to save time and resources are the key to success. Picture a mom tidying up after her two-year-old who’s finally napping. Her task is simple: stay quiet, pick up toys, done. Now imagine a professional cleaner racing through 20 houses, each with a napping toddler. They need a plan—how to map travel time, guess how long each mess takes to clean up, pick the best order for visits, and clean fast all without waking a soul. For the mom, borrowing fancy strategies from others might overcomplicate things and slow her down. But for the pro, those same strategies could mean the difference between crushing it or crashing. Programmers, as pro problem solvers, have two handy tools from those who’ve been there: one to organize the chaos, one to get the job done.
As professional problem solvers, we need to be smart and strategic about everything we do. If we just blindly charge into every problem ready to solve it, then we’re going to end up wasting time coming up with solutions to problems that other people have already figured out and repeatedly tested for us. Pros can’t afford to do that. Take making a pepperoni pizza, for example. At home, following a recipe from Simply Recipes, it might take you 25 to 30 minutes to get it oven-ready ("Homemade Pepperoni Pizza," Simply Recipes, 2021). But, at Papa Murphy’s, a pro whips it up in 6 to 8 minutes ("Take 'N' Bake," Papa Murphy’s, 2022). How? They’ve got a system. Sure, you’re just making one pizza, but they might crank out 10 for the next customer and hundreds by the dinner rush.
And thinking about franchises like Papa Murphy’s or McDonald’s—one genius built a system, then sold the rights to use it to others. In programming, we’ve got a treasure trove of shared knowledge to pull from: millions of books tracked by the Library of Congress (loc.gov), thousands of titles on O’Reilly Media (oreilly.com), countless YouTube videos, courses on Udemy (udemy.com), and articles on Google Scholar (scholar.google.com). Even with AI to sift through it all for us, we have so much knowledge at our grasp, it can feel overwhelming to even think about. Additionally, if we are going to be strategic in our problem solving, we should also be strategic in our learning and learning specifically about the tools we have to make our jobs easier and make us more effective is a great place to start.
Imagine building a car factory from scratch. You’ve got two puzzles: where everything goes, and how each part gets done. That first puzzle—planning the layout—is where our first tool shines: Design Patterns. It’s like a playbook for setting up our work the smartest way possible, every time. It’s the genius behind what made companies like McDonald’s so successful, and the genius you can use as a professional problem solver, a computer programmer. Whether it’s a small or massive programming project, a Design Pattern keeps the chaos in check.
Design Patterns kick in before you write a single line of code. They’re not tied to any programming language. Applying Design Patterns in a bit more detail to our factory analogy, before you begin breaking ground, you’d plan what machines you need, how much space they need, and more. Design patterns do that for coding—they map out, at a high level, what your program needs to solve its problem.
The cool part? We’ve got tons of resources to choose from. Design Patterns: Elements of Reusable Object-Oriented Software published in 1994 introduced 23 classic Design Patterns. Head First Design Patterns (2nd Edition), my current read, breaks down 13 of them in a beginner-friendly way. Countless books, videos, and articles cover these and more. Just knowing Design Patterns exist lets you tap AI or other resources to find a pro-tested solution for your problem. The first time might take a bit longer, but the next time? You’re solving it in 6 to 8 minutes, not 25 to 30—like the pro you are.
Back to our factory—the second puzzle is how each part gets done. You figure out what goes in (inputs) and what comes out (outputs), and how to transform one into the other. That’s where our second tool shines: algorithms. Like Design Patterns, they’re not tied to a programming language. Algorithms go way back—think 1600 BC, when the Babylonians cooked up the first ones (Knuth, 1972, Communications of the ACM, Vol. 15, No. 7). You’ve likely used one too—every recipe is an algorithm, a step-by-step guide to solve a task.
In coding, algorithms outline how we tackle a specific problem. Design Patterns organize our efforts; algorithms make the solution happen. Want to learn more? Try Grokking Algorithms by Aditya Y. Bhargava for a beginner friendly start and Algorithms by Robert Sedgewick and Kevin Wayne for a deeper dive. With these, you’ve got resources—some tested for thousands of years—to tackle almost any challenge. Master them, apply your programming language and boom—problem solved, fast and pro-style.
By Joseph Kemper
10 March 2025
© 2025