Book Review: Pro Swift by Paul Hudson

29890513

Paul Hudson, the author of Pro Swift which is priced at USD 30, is an incredibly active indie developer/publisher in the Swift and iOS community. His website, hackingwithswift.com, has become a popular resource for Swift developers, especially those just starting out. Along with Pro Swift he has also published a number of other books including Hacking with Swift (an introduction to Swift based on tutorials from the website), and Objective-C for Swift Developers, which is exactly what it sounds like and is a book I reviewed not too long ago. In just the past year Paul has produced a staggering amount of resources and with each new release his books continue to improve and become better than the previous.

Pro Swift really targets anyone who is comfortable with all the topics you might find at the beginner level and is ready to move onto more complex, and powerful, aspects of the Swift language. It is a very practical book, and focuses on the how, though it does go into the why when it is applicable. If you are someone who is looking for lots of theory, or hoping to have concepts explained by using other programming languages as examples this is probably not the book you are looking (though it can’t hurt to check it out). But if you are new to programming and learning Swift as your first language then this book is going to be right up your alley. It is incredibly accessible as it builds on existing Swift knowledge, as opposed to bringing in broader object oriented programming concepts and paradigms.

About the book

To start with Pro Swift is also packaged with 70 videos that cover a lot (but not all) of what the book does. Although I have called this a book review I will also cover the videos as they are an important part of the overall Pro Swift package. There are 7 chapters to the book, each of which is a logical, self contained section: Syntax, Types, References and Values, Functions, Errors, Functional Programming, and Patterns. Each chapter is largely independent so if you really need to just skip ahead to Functions you could do that and probably be just fine. That said, the flow and progression of the book really does lend itself to working through it from start to finish, which is how I would approach this book on first read.

The language and tone of the book is very relaxed and fun. Code examples make reference to Taylor Swift, Star Wars, Bill and Ted’s Excellent Adventure, and many other pop culture references that I probably didn’t clue into. Descriptions and explanations are done in plain language as much as possible. The proper terminology is always used, but it doesn’t get cluttered with jargon. There is a good balance between not over or under explaining each of the concepts so you don’t get slowed down or left behind by the pace of the book.

The layout of Pro Swift (which is available in e-book form only), is fairly basic. There is no colour (except for any hyperlinks, which are in the standard blue). The text is not a personal favourite of mine and I am not sure how nice it would look on a non-retina screen. But, since I was viewing it on a retina screen I had no real issues with it. Code blocks are in a black, courier style font. I have commented in the past how digital programming books really should utilize colour code blocks since there are none of the additional costs that print editions incur. As I have learned from feedback on other reviews I have done, self publishing tools are often times limited in what they will allow, so colour code blocks might not be possible without substantial work.

And with Swift still evolving and changing on a regular basis, focusing on keeping the resources updated versus the books layout is probably a better use of time. This book is updated for Swift 2.2 and Paul has a great track record of updating very quickly when new version are released. The purchase of this book will include an update for Swift 3.0 which is really important as it leans heavily towards the practical side where syntax will matter a lot.

About the videos

There are 70 videos which cover, so far as I can tell, a majority of what is covered in the book. The format of the videos is a screencast of live coding in a Playground. Each video has a consistent size and position for the Playground window. This might seem like a small thing but it really is so much more enjoyable to watch when there is that consistency between each video. The actual code is in large enough text that I could watch on an iPad Air and read along with the code without any problems. One of the biggest pet peeves I have about screencasts is when the presenter is constantly making mistakes and correcting their code. The actual typing/pasting of the code in the Pro Swift videos is very smooth and accurate and really makes it a pleasant experience to watch.

The narration is done by Paul himself and is really well done. Even though he likely has a script in front of him it doesnt feel like he is simply reading off a piece of paper, or a notes app, or simply winging it at the other end of the spectrum. It feels very natural and polished. And Paul’s British accent really helps in making it easy to listen to and follow along with. There are a few moments where Paul coughs, or has to back track on his words, or you see the mouse move to click the stop record button. These are a bit distracting, but, again, if the tradeoff being made is a few edits get missed in the name of getting updates out quickly then this is something that I can overlook. And those instances occur in no more then a handful of videos so it is not as though it is happening every video. These videos really do add a lot to Pro Swift and could easily be marketed as their own, separate product, or as extended content. The fact that they are standard content is a huge bonus.

How effective is this book/videos?

This is hands down one of the best resources for learning Swift I’ve used. Being self taught, and with Swift being such a new language, it has often times been a struggle to even find “okay” resources. So it is genuinely exciting when I find something that is so effective and captivating that when I have finished I feel energized by all that I have just learned. So why is Pro Swift effective?

The best analogy for what this book will bring to you is to think of a big bucket of random Lego pieces. No instructions either; just the pieces. Now ultimately all those pieces can make something great. But before you can start building you need to know what pieces you have. So you empty the bucket, you look through all the pieces, understand what they can do, and what pieces they can interconnect with. And before you know it you can start to visualize how they could go together to create a house or spaceship or race car. Pro Swift is an organized way to go through that bucket. It explains what specific pieces of Swift can do, so that you can take your bucket of Swift pieces, and put them together into something great.

TL;DR

If you are teaching yourself Swift and looking for the next step after you’ve mastered the beginner level topics Pro Swift is where you should start next. This is going to give you a great foundation to build from as you work on mastering intermediate and even advanced level tasks in Swift. At USD 30 this is a great value! Even if your on a budget this is something that should be accessible to most people. This is a fantastic resource and one that I highly recommend.

If there was one downside to the book it would be that it wasn’t long enough. Whether it is a longer version of this book, or a third one in the series that focuses on even more advanced topics, I do hope Pro Swift gets followed up in the future. And it isn’t just my own self interest that drives that request. The single aspect that is most important about Pro Swift is that it is accessible to anyone who wants to learn, and is motivated to learn Swift, even if you have never programmed before. It is surprising how few resources out there really target this group of people well and it is to Paul’s credit that he has not only managed to write a book that a relative newcomer can understand, but at such a cheap price, has also made it a financial accessible resource too.

If you want to get in touch with Paul Hudson you can do so on Twitter @twostraws (he is a very friendly guy and always willing to answer any questions you might have). To get in touch with myself you can find me @third_beach (who is equally friendly, minus the cool British accent, and always willing to chat if you have questions about getting started learning Swift and iOS Development).