Head First Java:
You do not know object-oriented programming until you’ve read this book.
Head First Object-Oriented Analysis and Design:
You do not know how to apply object-oriented programming
until you’ve read this book.
It covers the software design process and teaches skills sufficient to design
any software system.
You should also know
SOLID
and GRASP.
Head First Design Patterns:
Goes into greater depth on selected patterns.
Some consider it better for learning and understanding patterns than the GoF
book, which is more of a reference book than a study book.
Automate the Boring Stuff with Python:
Introductory book targeted at non-programmers.
Covers automating everyday office and other computing tasks, including
searching and organizing files, extracting text from Word and PDF documents,
extracting data from Web pages, sending email and text messages,
and GUI automation.