There are three main categories of programming languages: machine languages, assembly languages, and higher-level languages. Higher-level languages are divided into five generations - third being the first true English-like languages, fourth allowing visual programming, and fifth hypothetically using artificial intelligence. The software development life cycle has five phases - needs analysis, program design, development, implementation, and maintenance.