Code complete by Steve McConnell
This book is the biggest book, which i have read about programming as craft and mindset!
Author Steve McConnell did in my opinion something impossible: he was able to gather many very important methods, procedures and programmer mindset techniques, after completing this book you will call yourself a senior developer, because you will know much more that you knew about programming before!
As programmer we on continuous journey, we have success projects and we have failed projects and it’s never a straight journey. This book address many such familiar programmers experiences , I will mention here only few topics which I found very useful to me and maybe in your case, you will find other topics more important, but one thing is assure this book contains real practical knowledge about programmers profession!
I will go further and say reading the book is like looking to a huge library knowledge and experiences and at the same time see many different angles.
Let me describe some details of this book which I personally found very useful:
Definitely this book was written by very experienced C++ programmer, but there tons of references to other language like Java , Visual Basic and others.
This book discuss how to structure and how to communicate with your code to other fellow programmers.
Even more, this book give you some advises on how to solve typical legacy problems and how to work with abstractions.
This book is not a book for newbies or novices, because it handles after the fact when you as programmer learned your basics.
Author present good and bad examples of the code and describe why it’s good and why it’s bad.
I liked the part about how some code refactoring can’t bring any improvement, because of the compiler optimization.
Another topic of fixing defects was pretty eye opening to me, somehow I already knew some points, but this book gives a definitive answer about this topic!
Then there were topic about different types of building of project, that in some cases, the project structure is very different and can be problematic and communication in team is very crucial.
This picture from this book describes how complex a communication between teams can possible look like:
Summary: This indeed very interesting book and anyone who involved professionally in programming must read it, without any exceptions!
For newbies and novices as I said early it would be overkill, but as soon as you reach maturity in your programming experience you plan the time and read this book, all topics are independent and reading topic after topic can be sometimes hard , but if you have time then do it.
For more mature programmers, well they get ideas, that there not only code , that eventually you have human interaction which drive project success.
Author of this book , done great job after each chapter you get summary and bullet points , there lots of comparison tables too.
For people in manager position with programmers background, after reading this book they would better understand the nature of programming projects, this book have the whole chapter about managing teams.
My final thoughts on this book: it is a must read, after reading this book you will understand more about IT field of work and be a better professional.