Wether working in C#, VB or Java (or any other Object Oriented Language for that matter) there are a few core concepts that I think every programmer should know.
They are called
SOLID Principles[
^] and that link taught me a lot of what I know.
If you get those concepts you can apply them in any OO language. Although the syntax might be different for other languages, the way of thinking stays the same.