- What do you currently do?
I work at Black Pixel as an iOS and Mac developer, largely working on client projects and occasionally contributing to our internal products.
- How did you get started in Mac and/or iOS programming?
I got my first taste of programming with Logo when I was in middle school. I was hooked as soon as I realized I could make the turtle change colors. I learned Java and C in classes I took in high school, but I didn’t start using a Mac until I went to college. All my college courses were in C or Haskell, but I taught myself Cocoa on the side – I knew I wanted to make beautiful apps, not what I thought were boring command line programs that parsed strings or implemented various search algorithms.
- What was the first app you created and what did it do?
The first real software I wrote was a Space Invaders clone. It wasn’t very good, but I spent a really long time creating the graphics, adding sound effects, and tweaking the game play. Each level the aliens just got progressively faster until there was no way to win.
- Where did you get the idea for the app?
We weren’t allowed to install games on the computers at school – writing my own seemed like a great way around that!
- What went well? What could have gone better?
The game was surprisingly fun to play. I spent hour after hour finding glitches in the game, thinking of new features to implement, playing some, writing new code, and on and on.
I don’t think when I started I realized just how deceptively complex an application can be. You think, “Oh, that looks pretty simple”, and then you get started, and the further along you get the more you realize how many little moving pieces there are that you didn’t notice. So you figure that all out, make it happen, and then there’s a whole other layer of complexity you didn’t see the time before.
- What is your favorite among the apps you’ve developed?
My favorite would probably be OneNote for iPhone. That was the first real iPhone app I had the chance to work on, and I worked on it from the start of the process through shipping it. It was really challenging to develop for many reasons, but it was amazing to see so many people download it and know that I helped create something that was useful for all of them.
- What advice do you have for young people who want to make apps?
Learn by doing. I used to get frustrated when I’d try to learn a new topic because I’d read a book or an article about something, then feel that I hadn’t really learned anything in the process because everything was so abstract. I learn much better by reading just enough to get something working, maybe copying some sample code, fiddling with it until it does what I want, and moving on. Once I’ve actually worked with something in code I find it’s easier to read about how it works because I know what the pieces are – it’s more concrete to me.
Learn from everyone. I believe everyone has something they can teach us, whether they’ve been programming for decades more than you or not. Some people know so much about everything, so it’s great to learn all the valuable lessons from them that they had to learn the hard way. Sometimes you learn the most from people without much experience, though. You’ve gotten so set in your ways and you don’t realize it until they ask why you’re doing something a particular way.
Don’t be afraid to try. I think sometimes we’re so self conscious of our work that it keeps us from doing our best or sharing what we can do. You think maybe people will judge you or think you’re not very smart because your code isn’t perfect, and so you don’t write that app or share that code you’ve written. Put yourself out there, and learn from the feedback. By the same token, if you see someone starting out, be nice, help them out, and stay positive. Remember that you had no idea what you were doing once upon a time.
Help more girls learn software development at App Camp For Girls.