There are many books published on software development. Here are some that I strongly recommend:
- Gamma, Erich, et. al., Design Patterns: Elements of Reusable Object-Oriented Software
- Gause, Donald C. and Gerry M. Weinberg, Exploring Requirements: Quality Before Design
- Feathers, Michael, Working Effectively with Legacy Code
- Fowler, Martin, Refactoring: Improving the Design of Existing Code
- Martin, Robert C., Clean Code: A Handbook of Agile Software Craftsmanship
- Yourdan, Edward and Larry L. Constantine, Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
You’ll also do well to check out these blogs:
- The Clean Code Blog by Robert Martin