(This post has affiliate links)
Developers are knowledge workers and as such it pays to invest in the knowledge they work with, but how do you know which sources of knowledge are the best? Historically books were hard to produce and distribute so you could trust any that made it into your hands. Nowadays any wannabe guru can pump out an eBook and have it on Amazon in a day. Luckily for you, I’ve compiled all the most highly recommended books a developer, especially a CakePHP developer, could want! With the holidays right around the corner, why not give the gift of knowledge to your favorite cake-loving developer!
PHP: The Right Way (free)
Required reading for the serious PHP programmer.
PHP: The Right Way is a response to all the pre-PHP 7 tutorials that espouse poor security practices and confuse newcomers. It covers everything from modern PHP code style to Dependency Injection. By the way one of the lead CakePHP developers did a talk about Dependency Injection in CakePHP, you can check it out along with other great talks here!
For the PHP elder in the group who was around for PHP 1.0.
Modern PHP is by Josh Lockhart, the same person who wrote PHP: The Right Way. In this book, he goes deeper into the new PHP language features and best practices. You really can’t go wrong learning more about the current PHP ecosystem given the upcoming release of PHP 8.0.
For the not-so-clean coder.
Clean Code is not about PHP in particular, but as developers, we rarely have the opportunity to use only one language, I’m not even sure we’d want to if we could. Give your team the gift of a workable code base this year! Learn the principles, patterns, and practice of writing clean code and you’ll be paying yourself back in a less stressful development environment.
Clean Code PHP (free)
For the not-so-clean (PHP) coder.
If you read through Clean Code and find yourself wanting more PHP specific advice then you should check out Clean Code PHP! In this GitHub repo, you’ll find examples that you can use in your day-to-day development to make life a little easier.
For the team architect.
Head First Design Patterns should be standard reading for any developer using an object-oriented language! In this book, you’ll learn design patterns that are useful in languages from Java to Python. I personally own this book and can’t recommend it enough!
For the developer stuck with a code base older than their parents.
Legacy code is something you’ll encounter as a PHP developer. CakePHP developers in particular may find themselves working on some Cake 1.x application whose issues are only solved by random forum posts from 2009. This book won’t make you an overnight expert in whatever ancient codebase you’re working with, but it will make the task of modernizing it a little less daunting.
For the developer making sure the code base doesn’t become legacy.
Refactoring is a more general version of Working With Legacy Code. This book will help you achieve the ultimate task for any developer working in a team. Writing code that other people can understand! You can write anonymous functions all day in PHP, but they won’t seem very cool when the new hire has to ask you about them a dozen times.
For the container n00b.
Containerization is quickly becoming a very popular buzzword among development teams but what does it actually mean? If you can answer that question this book may not be for you but I’m willing to bet there are a few developers on your team who break your docker-compose file every other week that you’d really like to teach a lesson. Instead of losing your cool on the intern why not actually teach them a lesson and make them read a book!
For those at the start of their career looking to be the best.
The Pragmatic Programmer is a book you’ve probably heard of if you’ve ever Googled ‘best programmer books’, and for good reason. It is one of those books which everyone talks about but few read. If you do read and implement the advice within you’ll find that you’ll be writing code that you’re proud of in no time.
For the team member who can’t communicate.
The technical side of software development is all fine and good, but being able to effectively communicate and navigate human interactions is a different beast entirely. One that will do you good to learn more about if you struggle or not. Pop quiz hot-shot, you’re writing a B2B communication platform that handles millions in daily revenue, how do you tell your boss that adding Microsft’s Clippy shouldn’t take priority over transaction handling? You shoot the hostage, duh. Seriously, get this book if you don’t know what to do to get ahead in your career.
For the know-it-all that manages to bring up the singularity in every conversation.
This book isn’t necessarily about development, but it is a very good book I think more people should read. MIT teaches a whole course on this book and all the coolest big-brained nerds recommend it. If you’re not interested in exploring what it fundamentally means to be ‘intelligent’, then this isn’t the book for you, but if it does oh boy is this book for you.
Did I miss your favorite book? Did I include your least favorite book? Let me know in the comments below!
Don’t forget to subscribe for more posts on CakePHP! Tutorials every Tuesday and bonus posts on Thursday. Check out this week’s tutorial on creating a paginated real-time AJAX search.