I think an answer is going to depend on exactly what you mean by "a beginner".
You say you know how to use OOP in design, which doesn't seem like "a beginner" to me. Are you saying that you employ OOP in some kind of rote fashion, or is there some specific thing you consider yourself a beginner at?
One principle in all problem-solving, hence all programming, is Break Things Down. Exactly what problem are you trying to solve (self education), and exactly what basis are you trying to solve it from (unstated)? Given this breakdown of your post into two parts, the problem domain of self education can be broken down more specifically, and the basis for a solution needs to first be stated and then broken down.
You've given no realy concrete information about what your knowledge level actually is, and that makes your description vague. Vague questions are hard to answer with any degree of specificity.
What Have You Tried?
In other words, explain what you tried (searching, books, tutorials), what you found, and why those didn't meet your goals.
Be specific. If you've tried books, list their titles & authors. If you tried searching, list the search terms. If what you found didn't meet your goals, be specific about why. That is, if a book assumed that the reader was already familiar with the principles of inheritance and encapsulation, so it didn't explain their purpose, then say that.
Being specific also gives us more information on the basis you're solving the problem from, i.e. your base of knowledge.
That said, have you tried browsing articles on Wikipedia? Example:
http://en.wikipedia.org/wiki/Object-oriented_programming
Wikipedia articles aren't valuable just for what they say, but for what else they link to. For example, one important part of OOP is encapsulation. It's not unique to OOP, but it is a fundamental thing. So in the OOP article, don't just read it's discussion of encapsulation, read the linked article on encapsulation, too.
Also look at the citations listed in each article's See Also and References sections. More than once I've started with a Wikipedia article, combed through its References and See Also's, and found much more details and better in-depth explanations of the material.
I also find the Criticisms heading (if there is one) useful, because sometimes the best way to really understand what something is (or proposes to be) is to understand what it isn't.
Finally, one of the principles of OOP is Liskov substitution:
http://en.wikipedia.org/wiki/Solid_(object-oriented_design)
It's one of 5 principles with the mnemonic SOLID espoused in a popular book. The SOLID article's link is in the See also section of the first OOP article linked to above.
My point here is that the path from search terms to core principles is pretty short:
1. Search on Wikipedia for object oriented.
2. Visit article on OOP.
3. Visit article on SOLID listed in See also.
4. See 5 principles of SOLID.
5. Visit article on Liskov substitution.
Some of the SOLID principles also apply in procedural programming, so don't take those principles as unique characteristics of OOP.