Technical debt is an issue that all programmers have to deal with at some point in their careers, and more often than not, it’s an ongoing issue. What is technical debt, you ask? When you do something the quick & dirty way, such as patching up a bug without fixing the underlying issue, or prototyping a new feature and using that code in your live environment, you accrue technical/code debt.
Like most forms of debt, you have to pay interest on technical debt, in the form of extra time spent working with said code at a future point in time. That bug you patched up might cause other issues somewhere else in your code, but you want remember why in 6 months or if somebody else takes over your project. They’ll have to track down the cause of the unexpected behaviour and fix it again, which will take longer than fixing it the first time around, when the issue and cause was fresh in your mind.