Technical Debt
The extra development work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution.
Divide and Conquer
Recursively breaking down a problem into two or more sub-problems of the same or related type, until these become simple enough to be solved directly.
Design Pattern
The re-usable form of a solution to a design problem.