I used to be a teaching fellow at NYU for iOS programming - what OP says about teaching to learn is absolutely true.
I don't think I'd be nearly as skilled or knowledgable about Objective-C, Cocoa, APIs, or mobile development generally if I didn't have to guide my students. The added benefit of my situation in particular was that each student worked in teams to get something pushed to the App Store - helping me figure out how to manage multiple "dev teams" at once.
If you want to get really skilled at something, teach it.
I don't think I'd be nearly as skilled or knowledgable about Objective-C, Cocoa, APIs, or mobile development generally if I didn't have to guide my students. The added benefit of my situation in particular was that each student worked in teams to get something pushed to the App Store - helping me figure out how to manage multiple "dev teams" at once.
If you want to get really skilled at something, teach it.