Ask HN: Are there any courses/course materials that teach oop concepts well?
1–10 of 13 posts
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#2The tough part is the patterns that are used: https://en.wikipedia.org/wiki/Design_Patterns
Go buy that book and learn to read and understand enough c++ and small talk to read it cover to cover OR find examples in your favorite language.
This book is a trap, because it will take you a while to get out of the mindset of being "pattern happy" (maybe). There is plenty of material to follow up with afterwards to learn the downsides of each pattern, and when not to use them.
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#3Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#4The course website doesn't give much details so feel free to view my website[2] that details the course syllabus so you know exactly what you will be learning including UML, GRASP, Design Patterns, OO Metrics and more.
[1] https://ce.uci.edu/courses/sectiondetail.aspx?year=2017&term...
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#5It takes the cognitive overhead off of the programming language completely and focus on design principles in a really modern learning style.
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#6 if, while, for, foreach, do, goto, and switch.
Also, don't expose any instance variables or use setters, and try to limit the use of assignment statements to constructors only.Implementing something as simple as a FizzBuzz solution under those constraints will be enough to understand OOP.
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#7This is an all time favorite: Sandi Metz' Practical Object Oriented Design https://www.amazon.com/gp/product/0321721330/ref=as_li_tl?ie... It takes the cognitive overhead off of the programming language completely and focus on design principles in a really modern learning style.
Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#8the main topics that one should learn are: * some tidbit of history on why oop * fundamental object oriented concepts: inheritance, encapsulation, and interfaces * network of objects and their restricted interactions
* modeling a domain using objects * documenting objects and their interactions * how are objects represented in memory * SOLID principles * solutions (design patterns) to common problems * concurrent design and thread safety in oop designs * tools in oop design (CRC cards, UML, etc.) * actually making projects and laying out the code in an implementation language.
Here are some books I seem to like so far.
books:
Holger Gast - How to Use Objects: Code and Concepts (https://www.amazon.com/gp/product/0321995546) This book seems to be what I was looking for. It has an integrated practical approach using the Eclipse source code as examples for various object oriented concepts. I have cross-checked various sources and it seems like this book covers all relevant concepts including SOLID principles.
Bertrand Meyer - Object-Oriented Software Construction https://www.amazon.com/Object-Oriented-Software-Construction... This seems to be a great reference. However, I haven't looked too thoroughly into it. I found a nice quote though.
"Today, no one will call security if one of the cocktail guests
declares object-oriented tastes. This is the buzzword effect, which
has been dubbed mOOzak: the omnipresence, in the computer press, of
O-O this and O-O that, causing a general dilution of the concepts.
The words flow so continuously from the loudspeakers — object,
class, polymorphism... — as to seem familiar, but are the concepts
widely understood? Often not." (29.1)
only found one course that I would probably refer to...
courses:
https://web.stanford.edu/class/archive/cs/cs108/cs108.1092
This has great course notes and projects to implement using object oriented programming.Re: Ask HN: Are there any courses/course materials that teach oop concepts well?
#9This is an all time favorite: Sandi Metz' Practical Object Oriented Design https://www.amazon.com/gp/product/0321721330/ref=as_li_tl?ie... It takes the cognitive overhead off of the programming language completely and focus on design principles in a really modern learning style.