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?
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
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#.