Book recommendations
3 books
Code Complete
A Philosophy of Software Design
Software Design For Flexibility