The first thing you need to do is understand the many concepts of object-oriented programming. It's usually not enough to learn by memory the syntax and common classes, interfaces, etc. of those languages, if your OOP knowledge is not solid. You'll never gain a deep understanding of Java and C#'s (to mention a couple of languages) APIs if you use them as mere libraries, like many programmers do.