Bill is the founder and lead developer at tigerbears, llc.
- What do you currently do?
I’m an independent iOS and Mac developer and consultant
- How did you get started in Mac and/or iOS programming?
My first Mac development work was around 2000-2001, when you could write native Mac applications in Java. I was a web developer at Netflix and wanted to learn Java for work, plus a little bit about Mac development for myself. Though I loved it, I mostly stuck with web development until the iPhone came out. That changed everything, and I started learning C and Objective-C in 2008.
After a few years of iOS work, I wrote a Mac app (a tool for other Mac and iOS developers), which was a great experience. I’ve since mostly done iOS work, but found that Mac development experience to be really valuable and fun.
- What was the first app you created and what did it do?
For iOS, it’s an app called Tallies. It’s a counter app that looks simple, but is backed by a database that lets you look at when, and by how much, you marked the various tallies you’re tracking.
- Where did you get the idea for the app?
I had been dealing with a neck injury and some really nasty nerve pain for quite a while, and wanted to be able to keep track of when I was taking various medications, and how much I was taking. I liked it as a first project because it solved a specific problem that I was intimately familiar with, but would also let me explore challenges behind the scenes as I was ready to tackle them.
- What went well? what could have gone better?
Tallies became a reasonably complicated app, though it looks trivial. The upside to that was a chance to work with a broad range of Cocoa frameworks. The downside was that I spent a lot of time on it. I was OK with that, as I viewed every day as an investment in my skills rather than as a development cost, and could afford to spend time that way.
In most cases, though, I’d recommend starting with a more focused app. I probably could have learned even more with two smaller apps (each focusing on different concepts) than with one complicated one.
- What is your favorite among the apps you’ve developed?
My current focus, Felix for App.net, is my favorite, though as a consultant I’ve had a chance to work on some really rewarding stuff with great people. The chance to collaborate with great developers and designers is like getting a golden ticket. More on that later.
With what I’ve learned from Felix over the last ten months, though, I’m betting my next project will become my favorite. And then the next, and so on. This is both common and one of the best parts of software development as a career or hobby. Embrace it!
- What advice do you have for young people who want to make apps?
You’re going to get a lot of great advice, so I’ll go off the beaten path a bit. Soak up as much knowledge from working with others as you can. Seek collaborators, inspiration and mentors. Learn how writing code that others will work with (this includes Future You six months down the line!) alters your style. Same goes for having a plan (however flexible) so you can maximize your efficiency when working in concert with others. Practicing these things now, seriously, will give you a step up later.
The best boost I got as a fairly new developer was from an experienced person who took me under his wing. (Thanks, Mike!) An important part of that was being honest with myself (and Mike) about what I knew and what I didn’t know. It’s OK to not be an expert in everything right away! A great way to do that is to ask someone if they could describe how they pulled off some really slick trick in their app, or even just a “hey, I’m just getting started with [some framework] as I’m learning, do you have any tips?” Many developers love to show off their knowledge and skill, so give them a chance to shine and they’ll oblige. (Assuming they can, of course – some things are proprietary.)
That process never ends, by the way. After Mike, there was Nirmal, Naresh and then Christine. By then I had been a professional developer for ten years.
Something to avoid is the temptation to harshly criticize the work of others. (This can be a temptation for many new – that’s new, not young – developers as they gain confidence.) Remember that every project has requirements, compromises and challenges that may not be obvious from the outside. By being understanding of the tough aspects of this craft, you present yourself as a professional and are more likely to earn the respect of your peers. That respect will open the doors to great opportunities and growth in your career that no book ever will.
Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.