Writing software is simple, but it is not easy. It is simple because the computer will do what you tell it to do. The difficulty comes from needing to make the instructions very precise. There is no tolerance for ambiguity, neither when writing the software nor when the software instructions are executed, be they on a cell phone, tablet, or whatever. To do it well, it takes both creativity and discipline, qualities which are often in conflict with each other. However, that is not the half of it.
One of the challenging aspects of software development is staying current with the changes in the API and libraries provided by vendors like Apple, Microsoft, and others. The software writing tools get over-hauled. Sometimes, even the programming language itself gets updated. It is like trying to create a painting while the brushes, the paints, and even the techniques are constantly changing.
We have been playing with Apple's iPhone SDK for the past few years. Apple, more than any other vendor, has stepped up to provide both tools and online training for those interested in learning how to write software that will run on its devices. With each new release of the iOS toolkit, there are brand-new functions and changes to some older ones. Code which used to work may sometimes need to be updated to be compliant with the new way of doing things. Apple's free developer resources make it much easier to stay current.
There is also a lot of third-party resources available. Those interested can find a huge selection of primers, guides, and cookbooks on how to program. We have found the ones from O'Reilly to be the best of the lot. It is one of the reasons why we have quite the collection of their titles. The ones we like best from O'Reilly are from the Head First series.
Many programming guides take the step-by-step approach, but the Head First guides do much more than that. The authors of these books are not just imparting information, they are eager to help readers LEARN. They do that by incorporating proven techniques from cognitive science and learning theory (lots of diagrams, conversational tone, multiple ways of saying the same thing) to create a "multi-sensory learning experience." Of course, keeping up with Apple is difficult, even for active publishers such as O'Reilly. Just when we were working through the 2nd Edition
of the Head First guide for iPhone and iPad Development, Apple released iOS 5.
What does iOS 5 mean for us iPhone developers? From the developer's perspective, there are two big changes. First, UI development can now be done even more graphically via a feature call "storyboarding." Instead of creating individual files of the different screens and connecting them via code, Apple now lets you lay out all of the pieces on a big .storyboard file and connect the views visually. The approach makes it much easier to understand the overall flow of the UI logic. The second big change is that Apple has implemented ARC (Automatic Reference Counting) in Xcode 4.2. All the confusing retain/releases previously required have now been automated.
The trick to staying current in software development is to let go of the old ways and embrace the new. No, you don't have to use the new Xcode storyboarding feature. Yes, the old way of doing things may still work. However, Apple created this new approach so developers will have to do less work and make fewer mistakes. Why would anyone do it the hard way?
In truth, anyone can learn how to write programs, but not everyone can do it well. The problem may lie more with the teaching tools than with the student. Companies like Apple and authors like the HeadFirst folks are working to change that. [Permalink] - iOS Programming: Staying Current
NOTE: We got word from O'Reilly that the update to the Head First for iPhone and iPad programming will be available by September 2012. We look forward to checking it out.