This is a review of Oreilly’s excellent “Head First
iPhone and iPad Development, 2nd Edition”.
I own about two dozen different books about C and
C++ programming. I have spent several hundred hours
learning and doing C programming. I find it puzzling
that almost every college and university in America
seems to think that learning C or C++ is a 3-credit
endeavour. Learning C (without piling on any of C++)
is 9 college-level credits, in my opinion. C, we
are told, is very simple. Although it is true that
you can fit the entire language inside your head,
C is not simple. J Everyone should still start with
“The C Programming Language” by Brian Kernighan
and Dennis Ritchie. That book is not an easy read,
but always a great investment. It only scratches
the surface of topics like the stack, the heap,
and memory management. I remember reading Frantisek
Franek’s “Memory as a Programming Concept in C and
C++” and feeling betrayed–why hadn’t anyone told
me these things before? Ten years ago, it was sad
that universities were offering freshman classes like
“Computer Science 201: C++ Programming”. A 3-credit
course never has and never will make a C++ programmer
(or a C programmer for that matter). It is sad today
that Universities are offering Freshman classes like
“Computer Science 201: Java Programming”. Java and
C++ both sit upon C and should be taught after C,
especially in Electrical Engineering curricula.
If Computer Science departments want to skip C and
move directly to Java, as many currently do, then
they should commit to measuring their performance.
Find yourself any recent graduate of a Java-based
CompSci department and see if they “know” Java.
This context is why I was alarmed to see Oreilly’s
“Head First iPhone and iPad Development, 2nd Edition”.
This unlikely title is surprising to me because
there are two things that I already know about iPhone
1. It requires knowledge of Objective-C.
2. It requires knowledge of Apple’s frameworks.
Each one of these problems requires hundreds of hours
of effort to reach basic proficiency. Objective-C is
a superset of C and thus is very hard.
When I started reading “Head First iPhone and iPad
Development, 2nd Edition”, I knew almost nothing
about what Objective-C adds to C or about any
Apple frameworks. And so “Head First iPhone and
iPad Development, 2nd Edition” seemed like a good
book for me to read. I loved it. Undaunted by the
challenge, Dan and Tracey Pilone have delivered a
masterpiece of efficient learning. This book will be
useful to anyone involved at any level of iPhone/iPad
development. Even managers! Everyone reading the
book, like all Head First books, owes it to themselves
to follow along as advised. Do not resist! You must
have an Intel Mac nearby where you are reading.
You must register, get the SDK, Xcode, etc. Even
without expertise in Objective-C or Apple frameworks,
you can easily follow along with this book.
To learn iPhone/iPad development and build useful
apps, you will eventually need to learn Objective-C
and the frameworks that support Apple programming.
This is a 1000-hour effort (that’s 4 hours every
weekday for an entire year). The book does not make
that clear. As I was getting through the book,
I took a sideways, concurrently, to pull in more
Objective-C. To do so, I was using Oreilly’s “Cocoa
and Objective-C: Up and Running” and “Objective-C
Pocket Reference” hardcopies. Many iPhone/iPad
developers are using Apple’s online learning tools
and iTunesU and movies to get their skills.
If I were new to iPhone/iPad development, I would be
prepared to pay the 1000-hour minimum. And I would
start by spending 40 or 50 hours getting through
Oreilly’s excellent “Head First iPhone and iPad
Development, 2nd Edition”.