It's amazing what Pete Goodliffe managed to compile in the 558 pages of this book on software development (subtitle The Practice of Writing Excellent Code) which was published back in 2007.
The author takes the long road of not only explaining how software is made but also detailing which individual skills and techniques are needed to produce software which is of high quality in all aspects. He tackles software-related topics like architecture, maintainability, documentation, performance, optimization, source-code management, but does not miss the opportunity to highlight the importance of communications and that great teamwork is paramount to producing great software.
I especially liked the way every chapter is structured like a course: following a short overview, we are taken from the fundamentals of every topic to the state of the art, and closing with a set of tasks and questions to get the reader thinking, in parts alone but also as a team.
The book has aged well, everything is still relevant today and I can highly recommend this book for any aspiring software developer. It is also a great workbook if you are developing an internal apprenticeship program or software developer curriculum.
It may be the best software developer compendium available today.