Guest Erica Freedman
Editor’s note: In just six months, Scott Smith went from Big Nerd Ranch student to developing TapAMap, now available for iPhone and iPad.
TapAMap feeds your sense of curiosity and encourages exploration. Whether it’s a place you’ve been to a hundred times before or one that’s entirely new to you, TapAMap helps you learn new things about your surroundings, providing you with a wealth of information to discover. Alums: If you’d like to share your story, let us know in the comments below!
I had no prior programming experience, so I was a little intimidated about signing up for the Big Nerd Ranch iOS boot camp in pursuit of developing an app. But my wife pointed out that the materials suggested that a novice, with some prior experience in object-oriented programming, could handle the course. So I got the Big Nerd Ranch Objective-C book and spent a month going through the exercises before heading off to Atlanta last summer.
When I sat down at the bootcamp, I soon realized that I was the only one in the class with no prior programming experience. But people were supportive, and I did my best, copying code “like a monkey,” typing as fast as I could in the belief that with repetition, the strange syntax would start to look familiar. My computer setup and course materials.
And it did. Rather quickly, too.
Adam Preble, our instructor, suggested that working on my own app would be a good way to practice my new skills. I had an idea for an app: a map that would link users to information about any area they pinpoint on a map. My background is in journalism and education, but I love maps and want more people to explore new areas, or even places they’ve been to many times before.
After the bootcamp, I looked into the Wikipedia API upon Adam’s suggestion. I then noted which exercises in the iOS programming guide would be useful in my app: MapKit, UIPopover, UIGestureRecognizer, and the slightly scary Web Services. I spent the rest of my summer working through the challenges, and by late August, I was ready to start coding TapAMap.
The iOS Programming book was indispensable, especially the chapters on Web Services, since the exercises gave me the basic model for how to code. As TapAMap evolved, I also referred frequently to Apple’s iOS Developer Library, copying some methods from their sample code, then tweaking them to fit my needs.
Warnings and errors from XCode helped, too, though initially I struggled to understand what they even meant. Before long, I realized that I could search StackOverflow and find many others who had encountered the same problem. Reading through similar questions and solutions often helped me clarify my understanding. I also turned to the Big Nerd Ranch forums for ideas from instructors and other developers.
But sometimes, I’d get really stuck, and it was only real, live programmers who could unravel things for me. Luckily, there’s a thriving Meetup scene in Los Angeles, and I joined several programmers’ groups.
And by late November, the code for TapAMap was working the way I wanted. I spent a little more time putting together everything I needed to get my app into the App Store: icon design, a supporting website and the necessary certifications.
I was quite ready for an oblique rejection letter and another few weeks of struggle, but TapAMap was approved in January. Now I’m working to share TapAMap with others.
Six months ago, I didn’t know whether it was even possible to make TapAMap. There followed weeks of thinking “this shouldn’t be too hard,” followed by episodes of “this is impossible.” But there’s certainly no way I could have developed an app and successfully submitted it to the App Store without that intense week of absorbing code at the Ranch. It gave me a foundation: even if I didn’t understand how to do something, I knew where to look, and if I didn’t understand some line, I knew there were others who would help me get the knowledge I needed.
Interested in leveling up your coding skills from the same authors of the Big Nerd Ranch Guide? Subscribe to The Frontier today!
Guest Erica Freedman