Book Reviews
The following are books that I have found particularly useful in my professional development and thinking about solving problems. I will add additional books from time to time as I complete them. I read a lot, but not everything I read has an immediate impact on what I do, but sometimes over time and contemplation, some of the material I gain from reading becomes more apparent.
The Pragmatic Programmer (ISBN: 978-0-201-61622-4)
This book has been a great read and has really enhanced how I program and think about application design. Since reading this book, I often find myself referencing the principles learned from it and/or referring others to read it for their professional development. If you do not code, I would still say it is also a valuable read because it hones in on the thinking and design principles of problem solving. This is one of the few books that I would definitely read multiple times and reference often. Though it reads pretty well and is engaging throughout, I would suggest reading a little at a time and then go about your work thinking about what the authors are writing about and begin practicing what they discuss. The “Don’t Repeat Yourself” principle should be a constant concept you think about while you program. Though more beneficial for programmers, this would be a good book for managers/supervisors of programmers as well.
From Mathematics To Generic Programming (ISBN: 978-0-321-94204-3)
This book was also a great read, but stylistically different from The Pragmatic Programmer. The lessons learned throughout this book will persistent across different programming languages because its focused more on how you think about programming. There was a lot more math discussed throughout the book, which might be a turn off for some, but it is with great purpose since a lot of programming really follows the structures of abstract mathematics, especially if you can generalize your code enough for re-use in other functional areas. Whether you are a math person or not, it is still a good read. Throughout the book, the author provides examples in C++, but that should not dissuade anyone if they don’t program in C++, of various algorithms and elaborates on the process of generalizing them for a purpose. The craft of generalizing how you write code can be very useful whether you are just starting to code or you are an experienced coder who is looking to maybe improve your skills and thinking about generalizing your coding practices. The art of generalizing code it something that does take time and experience, but why not learn about it early on in your development? During each chapter the author also introduces historical math figures you have contributed to the structures in the abstract algebra arena. This book would justify a second reading and keeping around but likely will not be a multiple reading type.