Derek Barber

iOS Programming Resources

I’ve found a couple great resources for those interested in getting started with iOS development. The first is called iCode Blog which consists of a great collection of iPhone tutorials.

I think most developers would agree that one of the best ways to either learn new programming languages or to simply improve as a developer, is to read code and learn by example. Appsamuch is exactly that and has 31 example iPhone applications with the complete source code for each. In addition, each app comes with a nice step-by-step guide to get you up and running as quickly as possible.

Book Review: CSS the Missing Manual

"CSS: The Missing Manual"

As a web developer, I’ve been using CSS for years but never really took the time to learn it. My focus has always been on writing actual code and so when I had to write CSS, I would hack it. I would search for various tutorials to get the immediate job done, but never have a full grasp of exactly what I was doing. One area that I was fuzzy on was the use of descendent selectors and as a jQuery user, this lack of knowledge limited what I could do.

Beauty in Simplicity

Before you play two notes learn how to play one note—and don’t play one note unless you’ve got a reason to play it. - Mark Hollis

This quote from Mark Hollis has always left a deep impression on me as I have approached both software development and songwriting. I have found it to be quite true that with either discipline, many times less can in fact be more (assuming of course that what you call “less” is actually any good to begin with).

While engaging in either software development or music composition I always attempt to keep this philosophy in mind. In song writing I find there is the temptation to add layer upon layer of sound in attempts to mask what is in reality a bad song.  The same can happen in software development, where a flawed architecture is dressed up in a beautiful UI. At first it might look impressive but over time the cracks will form and you’ll be left with bad software that is unmaintainable.

It takes hard work to build a good foundation and much of that involves thinking and planning before you start to build anything. I think its this initial hard work that we want to avoid, but in doing so we end up making more work for ourselves in the long run. It might sound overly simplistic but it really comes down to just figuring out exactly what you want to build before you build it. It’s just like figuring out what note you want to play before you play it.