I try to read a lot of books and get as much exposure to new ideas as possible. Below I have listed some of my favourites books in no particular order. Also please leave a comment on books you think I may want to read or just share your thoughts etc.


Objective-C Programming – Aaron Hillegass & Mikey Ward

Although Swift is now chosen for a lot of new projects if you are going to maintain older iOS or OSX projects an understanding of Objective-C is a must. This book gave me a great start to understanding not jut the how but more importantly why the language works like it does. For example the first few chapters feature a refresher/intro to C. The book also works through examples for each topic so you can practice what you learn.

On a similar note the following books from the Big Nerd Ranch also helped me greatly.

iOS Programming

Android Programming 


Code Complete – Steve McConnell

An oldy but one of my absolute favourites. When I got my first job as a software developer the lead developer for the team recommended I tried Code Complete and although it was a big read it changed my thoughts on software development immediately. The main reason I like this book is that rather than narrow down on a certain technology it gives a sweeping overview of the craft as a whole, giving helpful advice on a huge range of topics. Pretty much the first book to show me that there is so much more to software development than writing code.


iOS Animations by Tutorials – Marin Todorov

If you want to learn more about animations in iOS this book is great. It covers a lot of ground, from simple UIView animations up to 3d looking animations with Core Animation. There are also some interesting sections on animating Autolayout constraints in there too which I found particularly useful.

The book does require a knowledge of Swift and iOS to get the most out of it but nothing overly complex outside the realm of UI. Every chapter works on an already partially complete app with the source code available to download so you can work through the examples. Challenges at the end of each chapter also allow you to think a bit for yourself and test what you have learnt.


Conceptual Blockbusting – James L. Adams

I read this book in a book club and it was brilliant; bringing quite a lot of excitement to everyone. With anecdotes, exercises and a deep understanding of the theory the author tries to help the reader identify and overcome the blocks that can occur in creative thought. I would recommend reading this with another person though, as when you try to solve an exercise it makes the point that the author is trying to make clearer when you discuss your thought process and outcome with other people.


The Pragmatic Programmer: From Journeyman to Master – Andrew Hunt  & David Thomas

I thought this book was excellent butI won’t dwell on it as it is already well established as a must read. I consider it (rightly or wrongly) to be a more compact and friendly version of Code Complete. If someone new to working in software development asked what book to read I would say this one every time.


The Design of Everyday Things – Don Norman

I almost didn’t put this one in as some parts of the book were quite drawn out ( I have heard the first edition is much shorter) but it did make me rethink how I worked on UI and user experience. Plus when doing design work it can be useful to know some terms such as affordances and signifiers. The big downside to this book is that you may never look at doors the same way again.