When Apple released the iPhone SDK in 2008 I knew I wanted to build apps. Something about developing apps aligned more with my Computer Science degree. Far more than the web development I had done since 16 years old.
I made a list of all these app ideas. Most apps at that time were immature noise makers or games. Neither appealed to me. I narrowed the list to unique ideas. In early 2009, the choice was clear. I started developing PocketBracket.
The success of PocketBracket validated my conviction to become an iOS developer. I attended Apple's WWDC that year. A large expense for an individual developer. But a solid investment towards becoming an iOS developer.
With the release of iPhone SDK 3.0, I toyed with the new MediaPlayer and MapKit APIs. I developed LastPlayed. A social playlist of sorts that allowed you to geotag and share what you were listening to. A lot of potential at a time before Pandora or Spotify.
Yet each year I returned to PocketBracket. As a seasonal, time-sensitive app, I spent most of the time updating the codebase to the latest SDK. This was both a blessing and a curse. While it forced me to learn the new SDK, it took away from developing new app features. More importantly it took away from developing my skills.
I continually struggled with how to architect an app. New to Objective-C, the heavy use of the delegate and observer design patterns was unfamiliar. Not only did I need to learn a new language, but also the iPhone SDK. Which evolved each year.
In a webinar someone referenced the 10,000 Hour Rule - essentially it takes 10,000 hours to become an expert. With roughly 2,000 business hours a year, that's 5 years. So those developers who were hacking away full-time since the beginning may just now meet this rule. I do not.
Regardless I never call myself an expert. I know I don't know everything. As such, I don't see how I could be an expert. I do know that I am more proficient in other languages. I know I'd like to be more proficient with Objective-C and the iOS SDK. But knowing is only half the battle. Much like Pinocchio, I long to be a real iOS developer.
I recently transitioned into a full-time iOS developer position. So I'm putting in more hours towards those 10,000. I also follow the blogs of NSHipster and Ray Wenderlich. I'm watching all the videos from WWDC 2013. When I can, I contribute on the Apple Developer Forums and StackOverflow.
Unfortunately I have reached a frustrating level of stagnation. I'm developing comfortably. I need a break through. I think the only way to do that is to work among stronger iOS developers. Until then, I'll continue to hack away on my own apps knowing that my iOS development may never be more than a hobby.
Find this interesting? Let's continue the conversation on Twitter.