I face a problem nowadays, I have a really good book that explain OOP but it uses a language which I do not want to learn which is Java because my goal is to learn C#. And I don't know if I should understand OOP with Java at first and then learn C# or should I find any C# book even if the Java book is excellent in teaching OOP?

closed as off-topic by Ampt, user22815, TZHX, GlenH7, user40980 May 23 '15 at 0:09

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic here. They are only meaningful to the asker and do not generate lasting value for the broader community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ampt, Community, TZHX, GlenH7, Community
If this question can be reworded to fit the rules in the help center, please edit the question.

  • The language syntax is similar and most OOP is universal but the idioms differ more substantially than the syntax. This is as much driven by framework differences as it is language differences. Without knowing the book you have its hard to give a good recommendation here. – Jeremy Oct 14 '11 at 14:16

Java and C# are so similar, if you learn OOP fundamentals in Java, you can reuse your knowledge in C# almost directly. There are some differences but the OO concepts are implemented pretty much the same way. C# has several features which Java lacks (delegates, lambdas, LINQ etc.) but these you can learn once you are comfortable with OOP (since these are actually coming from the functional world anyway).


I first tried to learn OOP in C++, but it didn't click for me until I learned it in perl, because perl requires (required?) an explicit call to associate an instance with a class, which helped me distinguish between them. Then applying it to C++ was trivial. It doesn't really matter what language you learn a concept in.

However, if C# is going to be your first language, I would recommend learning OOP in C# if you can. It's enough to tackle without throwing two languages into the mix.


This question is to personal to have a simple answer.

In my opinion, OO is language independent but it use it's syntax is different for the different languages. Try to find a good one about C#.

Not the answer you're looking for? Browse other questions tagged or ask your own question.