Overloaded terms

The word "sanction" can mean either to give permission and to impose a penalty. Determining which of these opposite definitions is applicable is relatively straight-forward based on context. But in software development, differences in meaning and usage are typically more subtle, making it harder to remember which definition to use.

Despite my best efforts, when learning new software frameworks, I often fall into the trap of trying to translate my thoughts word for word, which is like trying speak Spanish while thinking in English. It works at first, but fails as ideas get more complex because words with similar denotations don't always have the same connotations.

Unfortunately, this bad habit leads to bugs that are hard to spot. Without an appreciation for these nuanced differences, it's easy to overlook code that's causing problems, even when I'm looking right at it.