Monday, July 16, 2012

Speeding Up the Stanford iPhone / iPad / iOS Development Course

I've known for years that I should learn iOS and Objective-C programming. I've just never found the time and/or patience to do it.  I'm a full time Ruby on Rails developer with a bunch of years of Java before that, so I feel relatively confident in my ability to pick up a new platform/language, but I found that there were a number of key differences between that world and the world of Objective-C that merely picking up a book on the subject and banging on it for a few hours a night wasn't working for me.

What is the greatest resource for learning iOS programming?  Everybody points to the Stanford iPad and iPhone Development Course.  Tens of thousands of people have gone through the course, and most rave about it.   I like the idea, a lot.  My biggest problems with it are two-fold.  First, it's a video long video course - almost 20 hour-long episodes.  I don't have the attention span for that, honestly.  Second and perhaps related to the first, it is impossible for all learners to get the same amount out of a single course.  Someone who has never touched Smalltalk, for example, will take longer to grap the idea of message passing than someone who knows Smalltalk.  That means that a lesson on messages will be the kind of thing that some folks want to just fast forward past.  But then if you FF too far you may miss important things.

This is why I've never done the Stanford courses, and instead tried to wing it with heavy Googling and lots of time on Stack Overflow.

Today, I found a better answer.  Playback the Stanford courses at double speed.  How?  Harder than it looks, actually, if you've got the latest of everything on your machine. Turns out you have to go back in time a bit.  [ Note that I am running a Mac with Lion installed.  Your mileage on Windows may vary.]


  1. Download Quicktime Player 7.  This advice comes straight from discussions on the Apple.com website, by the way.
  2. Find your video in iTunes, select Show in Finder.
  3. Right-click (or ctrl-click or whatever) on your video, go to Open With... and pick QuickTime Player 7.   Note that you did not upgrade QuickTime in the first step, and it will not become the default player. You deliberately installed a previous version.  You may have to find it under "Other" the first time you do an Open With, but in my experience once you've done that the first time it will show up as an option the next time.
  4. Got it open in QTPlayer 7?  Good.  Now go to Window -> Show A/V Controls.  This is the part that you needed QT7 for, because they've taken it out in later versions.
  5. In the lower right corner there's a slider for Playback Speed.  Pick a speed.  I'm running them at 2x, and I find it the right combination of understandable while causing me to yell "Faster, talk faster!" at the screen like I do at 1x.
Now I feel like I'm getting somewhere.  If you've got two monitors, that's even better - put the video up on a second screen, and then go about your business doing whatever other tasks are important while you half-listen to the lecture (just like most of us developers do in staff meetings when we bring the laptop, am I right?)  When it gets to something that seems interesting, pay more attention to the video.

I learned this trick this morning, and blew through the first lesson (the one that I would have been most likely to scream "Talk faster!" at) while doing other things.  Now I'm halfway through lesson 2 and into stuff that's more interesting to me, but still only at that "Confirm and clarify stuff that I'd already experienced" sort of phase (remember, I've been banging around on all this stuff by myself for a long time).  Eventually I'll get to the "Entirely new to me" stuff and, if necessary, I can bring the speed back down to 1x.

But probably not 1x. ;)