Sonntag, 30. Januar 2011

Book Review: Learning iPhone Programming by Alasdair Allan

Summary


Alasdair Allan Book "Learning iPhone Programming" starts with a discussion of the pro and cons of native iPhone Apps. Since I'm quite new to iPhone programming I didn't know that the initial version of the iPhone didn't support native application. So I really liked that the author describes the history of native iPhone development in the first chapter. After this discussion the author describes how you can download and install xCode. After another chapter you already have created your first own application. The next chapter is a short but sufficient introduction to the Objective-C language and common design patterns. In the next chapters the author describes most of the iOS APIs that you need for your app develepoment, it also includes a description of networking and sensor API. And of course this book also describes how you can distribute your application via the app store. Another chapter describes which alternative platform exist for developing native app. This chapter describes the javascript based phonegap and discusses shotrly how mono and MonoTouch can be used to develop native applications. The book ends with an chapter that contains references to additional books or resources on the web.

Review


I think this book is a very good and concise introduction to native iPhone development. After reading the book I now know enough to start coding with xCode. I especially liked that the book concentrates on principles instead of covering every detail. So after reading this book I really have a good overview on how to create apps for the iPhone. I personally don't like the very short chapter on other native platforms. I think this chapter is the weakest of the book, either the author extends this chapter in the next edition or he should provide just a reference to those alternative platforms in the last chapter.

Samstag, 8. Januar 2011

Book Review: The Productive Programmer by Neal Ford

Summary


In his book "The Productive Programmer" Neal Ford suggests several ways to become a more productive programmer.
The book is divided in two parts. The first part titled "Mechanics" describes which tools can be used to improve your productivity. It starts with suggestions for every day tasks like launching applications quickly, automating file related tasks with build tools and ends with a more philosophical chapter about canonicality.
The second part titled "Practice" describes how you can change your daily development practice to become more productive. It covers well known practices like test driven design, static analysis, meta programming and polyglot programming. Additionally he discusses more unusual practices like "Question Authorities" and "Good Citizenship".
In his conclusion he states that the most important practice to become more productive  is to be aware of your own practices and the underlying patterns. And to keep on reviewing and improving them.

Review


The book is easy to read and contains a lot of good ideas on how to improve your productivity. Neal quite often refers to "The Pragmatic Programmer" book by Andy Hunt and Dave Thomas. Compared to this book he mainly provides more concrete advices and less philosophical ones.

Overall I think this book is a good read, although it provides not a lot of new insights for me. I like his ideas about typing more and using the GUI less, especially since I'm a visually oriented person and am always impressed by colleagues who seem to use the shell much more often than I do. He sure is right when saying that it's vital for a programmer to know his tools. I especially like his metaphor of the woodworker, who often uses throw away tools to do his daily work. And I think he's right in suggesting programmers to create more throw away tools to become more productive.
But on the other hand I quite often think that impressing people by how quickly one can solve a boring task is most important for consultants. Although I'm not a consultant, I think that I should improve my typing skills and my use of the shell. But improving in this area won't help me to become a better problem solver, I just will be able to solve some problems a bit faster.

Book page


The Productive Programmer