Would any of you recommend me to try and get the hang of OOP using C or should I just pick up Java or C++ ?
(sorry if this is a inappropriate comment on this post)
Would any of you recommend me to try and get the hang of OOP using C or should I just pick up Java or C++ ?
(sorry if this is a inappropriate comment on this post)
If the choice is between just Java and C++, I'd go with Java, but it probably depends on what your long term goals are.
In any case, learning any language can't hurt, so I don't think there's any danger of making the wrong choice--unless you get so stuck that you're not making any progress. Just pick whatever "fits your brain" then branch out later.
While you are at it, read "Effective Java" by Josh Bloch--it's full of excellent advice about OOP, and applies way beyond Java itself.
My biggest epiphany about OOP was realizing that just because you can use inheritance, you don't have to use it everywhere. You read a lot of toy examples where you have e.g. a shape, then you have children like square, rectangle, etc. and try to do everything this way in your projects. But it's actually often a really bad idea to overdo it, and Effective Java has some good explanations on the tradeoffs.
Then try another language -- preferrably one that is quite different from what you started with -- to learn a completely different approach.
GNUStep does not count, as it is ages behind Cocoa.