Ask HN: How best to teach object oriented programming?

2 points by peter_l_downs ↗ HN
Hey there HN, so I've just gotten a job tutoring a highschool freshman how to program. He has a little programming experience, but not much; I'm not sure with what language. I've been programming in python and C for the last couple of years, and only recently started messing around with Java. I know most of the principles of object oriented design, but I've never tutored anyone before or had to explain object oriented programming to anyone. Eventually, the kid wants to learn how to program iPhone apps, but he understands that I've never done that before and we both think it would be best if he learned the fundamentals of programming first.

Are there any particularly good books I should read / have the kid read? He's open to a bunch of different languages - I figured I'd cement the basics of programming in general with python and then introduce him to object oriented programming in particular with Java (using BlueJ as the IDE because it automatically shows class structure). Do you think there would be a better way to go about it? Thanks, peter_l_downs

3 comments

[ 4.6 ms ] story [ 21.8 ms ] thread
I'm teaching my 11 year old cousin how to program and for now I'm just focusing on getting him familiar with the terminology and the thought process.

I'm using railsforzombies.org as a starting point because it has everything in one place and is noob-proof. We watch the video and then he tries to do the exercises. Along the way I relate OOP concepts to things that he's interested in..and zombies because who's not interested in zombies?

Give Smalltalk a look, it's probably the truest OO language out there and best to teach OO with.
I'm reading "The Object Orientated Thought Process." It uses Java as the example language, but it's not meant to teach Java. Instead, the book illustrates what OO programing entails. As a result, readers get a high level but practical foundation in writing OO code.

As a novice, I recommend this book. But, I would suggest accompanying it with another book that actually focuses on learning a specific language, which is what I did using PHP.