Category Archives: Programming Philosophy

OOMP: Constants

Some things are constant over time. Fundamentals Always Matter Many of the fundamental principles of problem solving and software development always matter at some level. Many of the hardest problems you will need to solve are related to fundamentals that you should already know. Some of the details change. When I started programming, amount of… Read More »

OOMP: Pitfalls

Over my career, I’ve come to realize there are some important truths that you should keep in mind. The senior people have experience. Pay attention to them. Senior people have seen more and likely have insight into subtle and/or complicated issues. They do not always have insight into your issue. But, their experience should not… Read More »

Aphorism Driven Development (ADD)

Over the years I have noticed a habit among some developers that I’ve come to call Aphorism Driven Development. Many best practices are taught and remembered through the use pithy statements. Although these statements are easy to remember, they can’t capture the full context and connotations of the practice in question. If someone never learns… Read More »

Fundamental Design Principle: YAGNI

Every bit of code we write is the result of trade-offs. Some seem like no-brainers: what language to use, which paradigm to use. Others are more subtle: how important is speed/maintainability/memory, fail fast or never fail, fix a bug quickly or rewrite to prevent that class of bugs. One of the big trade-offs is between… Read More »