News for hackers. Stuff that matters.
Re:Show HN: A sequence of online courses to learn web develo... by k__ on Monday March 31, 2014 @11:39AM (#7502127)
How did she tackle OOP?

I'm trying to teach a friend of mine web-development, but she struggles with OOP. Also I teached programming at a company I worked last year and all the trainees had problems with OOP.

Somehow the basics of OOP came to myself rather easy. I only had problems with the applied stuff, because all tutorials about OOP where with animals and cars.

The people I try to teach mostly have problems with the basic concepts.

Re:Show HN: A sequence of online courses to learn web develo... by qqrsmith on Monday March 31, 2014 @01:26PM (#7502849)
Dan Grossman's Programming Languages class on Coursera includes a good treatment of OOP in the later weeks.

https://www.coursera.org/course/proglang

Re:Show HN: A sequence of online courses to learn web develo... by manish_gill on Monday March 31, 2014 @02:12PM (#7503136)
To be honest, I pretty much lost interest in OOP. I found the ML/Racket parts of the course much more interesting (and less confusing) - even though I barely knew any FP and had actually studied some OOP. Perhaps I was biased, either against OOP or Ruby, which was used to teach it. Hmm...
Re:Show HN: A sequence of online courses to learn web develo... by JimmyM on Monday March 31, 2014 @03:46PM (#7503664)
Same here, in terms of the practical elements of the course. I still found Dan Grossman's lectures entirely engrossing, and I'm not just saying that because I noticed he was a HN user.
Re:Show HN: A sequence of online courses to learn web develo... by ctb9 on Monday March 31, 2014 @10:50PM (#7505877)
I think those are different Dan Grossmans. (Dans Grossman?)
Re:Show HN: A sequence of online courses to learn web develo... by JimmyM on Tuesday April 01, 2014 @04:31AM (#7506825)
Ah, thanks for letting me know! That could have confused me.
Re:Show HN: A sequence of online courses to learn web develo... by sea6ear on Monday March 31, 2014 @05:59PM (#7504494)
Even though I found the Ruby/OOP part of the course less interesting than the ML/Scheme parts, I feel like it gave me a much better understanding of OOP.

Actually the optional piece where he went through a derivation of OOP at the end of the Scheme portion was also one of the most helpful things for me.

Re:Show HN: A sequence of online courses to learn web develo... by cjf4 on Monday March 31, 2014 @11:55AM (#7502223)
As someone who's left the beginner stages recently, I found OOP stuff to be mostly intuitive and easily to relate to real world examples. Steve Job's explanation at the below link galvanized it.

The only difficult part was some of the implementation. Function calls on "self" took a while to get used to.

http://www.rollingstone.com/culture/news/steve-jobs-in-1994-...

Re:Show HN: A sequence of online courses to learn web develo... by muraiki on Monday March 31, 2014 @12:29PM (#7502440)
I think that this particular approach might be useful only for individuals with a bit of time on their hands, but it really helped me. When I was trying to grasp OOP I decided to make a project using the Seaside framework for Smalltalk. There's an excellent free book available here: http://book.seaside.st/book

While it's not explicitly an OO tutorial it was really helpful for me, coming from a web development background, to better understand how ideas like inheritance play out in a real application. Seaside is a component-based framework, so ideas like instances and subclassing objects with different features were very concrete. On top of that, when viewing the site in your browser in dev mode you can click on any component and explore its state.

Of course one also has to pick up Smalltalk for this to work out, so it does require a particular commitment! But Smalltalk itself is a great way to learn OO, as it's based entirely around objects and messages, using a very simple syntax. Even if other OO languages don't fully adhere to this idea, it's still helpful when moving on to other ones. A great way to learn Smalltalk is Pharo by Example. http://pharobyexample.org/ Actually, one could just use this on its own to learn OO. But playing with Seaside was a lot of fun!

Otherwise, I found the OO portion of Learn Python the Hard Way to be quite good, and that's probably the better choice for pretty much everyone. :)