In this section you'll find books, whitepapers and video courses that I have written or created.

Git WorkBook

title_pageThis book is your opportunity to sit down with git, and study the topic in useful units of skill, with practical exercises for each skill. I teach a lot of git, in formal classroom settings as well as rescuing people via IRC, and this book brings together everything I know about getting people up to speed with git. Each chapter teaches something new and ends with an affirmative statement for you to tick off to say what you learned!

With hands-on examples of how to solve real-world problems, and topics running the whole spectrum from installing git through to skills such as rebasing, using submodules and finding faults in a large repository, this text is your "level up" for all your git skills. The chapters are mostly pretty short, so you can just work through at your own pace on whatever time you can find, and the hands-on elements mean that you're sure to remember and understand the skills you're learning.

Intermediate PHP Video

Intermediate PHPCalling PHP developers everywhere, this course covers the things people most ask me, under a rather unremarkable title :) The full outline is on the site, but I've tried to bring in here some elements of new content, some under-used but excellent features of PHP - and all the supporting material you need to be able to pick up and use all of those features yourself. There are the best new features from PHP 5.3, 5.4, 5.5 and 5.6 here - plus a primer in OOP in case this isn't something you've had a chance to study from first principles before. Having a good OOP grounding helps so much with all the new developments in PHP that it was really important to me to include it.

I've also picked the best of things that make developers go "wait. Do that again?" and shared it here. There's commandline PHP, for scripts, the built-in webserver, and also for writing workers that can integrate with queues. For the neglected area of security, there are some really easy ways to make sure you're "doing it right" in your application, so both the new password functionality and the filter extension are here. And I've also included a section on using PDO for accessing databases - this is used internally in most frameworks now, but there are any number of reasons why you might like to write your code yourself (performance, for one) so understanding PDO can help a lot for database-driven applications.

You can get the course directly from oreilly.com

PHP Web Services: Book

PHP Web Services CoverPHP Web Services covers the theory behind web services, some specific examples of data formats and service types, then moves on to give good, solid advice on different aspects of writing kick-ass services. The advice is all hard-won, and I've aimed to share it in a way that's useful, approachable, and applicable to practical projects. I've included the tools and techniques that I'm using when doing this kind of work, particularly around debugging problems and monitoring exactly what's going on.

The book is available through O'Reilly here:
PHP Web Services on OReilly.com

PHP Web Services: Video

PHP Web ServicesIf you're more of a visual learner than a wordy one, then the video course might be a more useful way to view some of this content. I think the videos give me a chance to walk through the code examples in a more tangible way, and hopefully you think so too!

The course covers the tools we use to work with APIs: curl, streams and Guzzle (version 4) are my top recommendations for PHP and they're all shown, both in their own right and also for the later examples of other things. There is REST as well as the more traditional SOAP and RPC services, and both XML and JSON are covered. There's also some less-PHP content, covering how to debug APIs, using testing endpoints and tools such as commandline curl, Wireshark and Charles Proxy, and also a chapter on good API design, with recommendations of what works to make a kick-ass API.

You can buy the video directly from O'Reilly's site

N Ways To Be a Better Developer

nwaysThe book I needed something over 5 years ago in order to get my career started and also moving with momentum in the right direction! This self-published ebook is a joint effort with my friend and mentor Ivo Jansch, and is a work in progress. We started with the contents of our keynote "0x0F Ways To Be A Better Developer", and added many things that we'd had to discard in order to fit our talk into the allocated slot.

This book will continue to grow (updates are free, once you've bought it, you'll get new installments as we release them) as we find the time and inspiration to add to it - such a fun project and also I hope a useful guide for those starting their journey today or looking to move up a gear in career terms.

PHP Master: Write Cutting-Edge Code

PHP Master Cover ShotThis book, which I wrote with co-authors (and friends) Davey Shafik and Matt Turland, is a mid-level text for existing PHP Developers to raise their game still further. It's not a beginner text, but covers a nice selection of topics which are building blocks to being able to build advanced, robust applications.

There's a chapter on OOP, beginning at the very beginning and then taking a tour through the finer points of the language. Most importantly, it shows how and when to use the various features, and has working code examples to accompany it. To follow on, there's also a chapter on design patterns, also with real examples, and a later section on SPL which is a great way to build elegant object-oriented code in PHP.

One thing I often find myself working with developers on is their databases, data structure and also how to actually talk to the database efficiently. The book has a chapter that covers both aspects, how to normalise data and then how to work with it from PHP using PDO.

All in all, getting together with some peers to work out what we'd tell someone who isn't a beginner, but wants to learn and can handle some quite heavyweight technical ideas, was a lot of fun and personally I think the topics list covers it all quite nicely. I'm recommending this book to everyone looking for an up-to-date text bringing their development skills up a level in a good, all-round way.

OOP Video Course

learnableConsidering learning OOP for PHP? I made this video course for Learnable (who have plenty of other lovely courses too, the membership is a good deal IMO). It starts at the absolute beginning and aims to give you the tools and the vocabulary to start using and applying OOP principles to your own projects.

Source Control Whitepaper

I seem to write the same advice so often when I encounter organisations not using source control, that I thought I'd wrap up all my thoughts into one, pretty document that you can hand to your manager, technical lead, or whoever it is that you need to convince. This PDF (no registration required) is a short overview of the tools available, the benefits of source control in general, and some action points for actually making it happen. I am, of course, available for hire to help with source control implementation, but I hope the document also works on its own and is helpful.

Download PDF: You're not using source control? Read This!