Here's the OOP model: A program can be modelled as a set of communicating black-box objects, with their own state. The idea is to separate concerns, abstracting away implementation behind well-defined interfaces, which can in turn be implemented by other objects to cleanly replace parts of the application. The rest of OO is pretty much just understanding Design Patterns (a set of names for common interactions between…
Ask HN: How to Learn OOP
31–40 of 78 posts
Re: Ask HN: How to Learn OOP
#32Earlier quoted context omitted.
If you only get one book, get this one. It is more about 'why' than about 'how' and shows what tradeofs are involved in one or another design, what problems you can run into with different solutions. Also, there is a new book by Sandi coming out: http://www.sandimetz.com/99bottles/ Her talks are highly recommended too.
Sandi Metz is great. This talk is such an amazing example of clear thinking: https://www.youtube.com/watch?v=8bZh5LMaSmE
Re: Ask HN: How to Learn OOP
#33Bertrand Meyer Object Oriented Software Construction is excellent. It details the concepts of OOP and remains very independent of the programming language.
How would you develop the language specific skills?
It's going to be difficult to find excellent OO resources for every conceivable language and stack.
Re: Ask HN: How to Learn OOP
#34Re: Ask HN: How to Learn OOP
#35https://www.amazon.com/Introduction-Object-Oriented-Programm...
Re: Ask HN: How to Learn OOP
#36Re: Ask HN: How to Learn OOP
#37Re: Ask HN: How to Learn OOP
#38Practical Object-Oriented Design in Ruby (POODR) by Sandi Metz opened doors for me - http://www.poodr.com/
Re: Ask HN: How to Learn OOP
#39Re: Ask HN: How to Learn OOP
#40May I ask why you want to learn OOP? You don't need it at work right now, and you'll probably never need it. Not even in interviews.
I don't think I'll ever work in a purely functional language, but I still took an online course to learn something about functional approaches. It was great; it has definitely changed how I program for the better.