Codeweaver’s Recommended Reading list for Developers
Academy Leader Paul Boocock has put together a list of Codeweaver's Recommended Reading from books, blogs, papers, websites or wherever else if it's worth a read. If you have any suggestions then please comment below.
As this is the first recommended reading list, I felt I should include some classics that all developers would benefit from reading and where better to start than...
Clean Code A Handbook of Agile Software Craftsmanship - Robert C. Martin
Find book on Goodreads
An important read for all developers, Uncle Bob walks readers through an number of concepts and ideas to help you write better and cleaner code. Most of the concepts are simple and easy to apply however at times it's not the easiest of reads with lots of code samples to get through but I strongly recommend you stick with it. As the book progresses some of the examples are really worth your time and are more real world than many of the problems presented in other books.
The Pragmatic Programmer - Andrew Hunt and David Thomas
Find book on Goodreads
The original book from the Pragmatic Bookshelf series of books. Reading this book will likely reinvigorate the programmer inside you. This book really focuses on the core processes and dodges many of the language specific concepts that other books confuse the message with. Ever wonder how to produce working and maintainable code? This book will likely point you in the right direction towards achieving that.
Head First Design Patterns - Eric Freeman and Elisabeth Robson
Find book on Goodreads
I probably should have listed the original and controversial design patterns books by the Gang of Four but I find the Head First books fun to read. They differ from the normal text book with lots of images and varied formatting, although a little tricky to follow at times well worth it for the entertainment value. As for design patterns, whatever your feelings towards them, they are valuable concepts to be aware of that when applied correctly and confidently can help towards creating a robust system.
The Cucumber Book Behaviour - Driven Development for Testers and Developers - Matt Wayne and Aslak Hellesoy
Find the book on Goodreads
This month we've found ourselves taking the foray into Specflow (A.K.A Cucumber for .NET). The Cucumber Book comes well recommended from a number of peers and offers a solid introduction to Behaviour Driven Development. It will take you through how to specify tests in a way that define your specification, allowing you to bridge the gap between domain experts and software developers. If you have any familiarity with Ruby, that will certainly help with this book but it's not essential as there are many other lessons to learn and most samples can easily be ported to SpecFlow for .NET.
Why Functional Programming Matters - John Hughes
Why does Paul keep going on about Functional Programming? This paper will perhaps help you see why. A challenging read that's very academic but even if you just read the introduction and conclusion you will likely still take away some ideas that can be applied to your programming style.
Why I Don't Do Code Katas - John Sonmez
Reading an argument against something I've enjoyed doing and found useful is always interesting. John Sonmez puts together a argument against Code Katas with some good points on how our skills improve. I still find Katas particularly useful as learning tools to get certain points across but it raises the point that if we do perform katas they must have meaningful value with different challenges or constraints each time we practice them. The comments on this site are also worth reading and they mostly disagree with John's point of view.
What's all this nonsense about Katas? - Uncle Bob
Conversely to the article above, Uncle Bob puts together a solid argument as to the importance of Katas and what they are all about. A little old but still very relevant!
Something a little different
The Power of Habit Why We Do What We Do, and How to Change - Charles Duhigg
This is definitely my read of the month. I've enjoyed this book cover to cover and found it truly fascinating. Charles Duhigg presents a compelling book that is not only easy to read but also thoroughly enlightening. I feel that all developers and companies can take something from this book to become better at what we do. Rather than me trying to convince you, why not let Charles do it himself?
As always there's tons of material and projects that pop up online or that we've recently just found， here are a few of my favourites that look particularly interesting.
CodeProject Functional Programming in C#
In my effort to get us to think more functionally when we code, often hard when the OO principles are so ingrained, above are a few websites that will help towards that goal. Also, make sure to read the classic paper by John Hughes linked in the New Ideas section above on why functional programming matters.
John Hughes Interview from QCon 2010
I found this whilst looking around to see if John Hughes had written anything newer regarding Functional Programming (the answer to which is yes!). It was quite a good interview (I listened rather than watched) and John mades some solid points regarding Functional Programming. I especially like his opening about how people never quite know how to sell the benefits of Functional Programming.
Thimble by Mozilla
For building Web Apps with realtime functionality. Whilst I haven't had the opportunity to take this for a test drive yet， it looks very interesting for high performance applications that would benefit from a WebSockets implementation.
Procedural Dungeon Generation
The game developer in me got rather excited about this blog post that I stumbled across on Reddit this month. A former colleague and myself once had a great (at least we thought it was) game idea revolving around randomly generated dungeons. Maybe one day something will come of this...