When programs are developed to solve real-life problems like inventory management, payroll processing, student admissions, examination result processing, etc., they tend to be huge and complex. Programming Methodology is the approach to analyzing such complex problems by planning the software development and controlling the development process. In this tutorial, we will cover the top-down approach to programming, also called modular programming. We will also learn about requirement gathering, problem definition and identifying unique solution to the given problems. In addition, we will throw light on the best practices for code optimization.