I've written plenty of programs in Java, Python and Bash. I've read language-specific books and books about best coding practices, etc.
But I still don't have a solid understanding of what's right or wrong when writing code, in terms of design (or something of that nature)
Brief example, I know what an interface and abstract class is in Java, I know their differences like the palm of my hand, but when I'm writting code I'm still not certain which one to use or when to use them.
I want to be better, please help me with book suggestions <3