Since the problems posed to a programmer includes a considerable variety of approaches that a programmer needs to follow, programmers use commonly defined techniques and structures to solve these problems. This helps the programmer to manage the data in the problem efficiently, and approach the problem in a structured way.