Early programming techniques used a bottom-up approach where programmers would focus on implementation details first before considering overall objectives. This led to issues integrating subprograms. Top-down design emerged where programmers first examine the overall problem and break it down into steps, addressing broader objectives before implementation details. Structured programming formalized this as a methodology, emphasizing systematic software design, development and management. It uses techniques like top-down design and control structures to create tightly structured and modular code, lowering costs by standardizing development and making programs simpler to develop and maintain.