No matter of the industry, if someone wants to develop personally and professionally he/she needs to read. In our digital era when you might find a lot of readings, articles, videos, movies for your self-development, books still have the biggest impact on everyone and still have the biggest power to make you better.
#1 Clean Code
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. He teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer.
Readers of Clean Code will come away from this book understanding:
- How to tell the difference between good and bad code
- How to write good code and how to transform bad code into good code
- How to create good names, good functions, good objects, and good classes
- How to format code for maximum readability
- How to implement complete error handling without obscuring code logic
- How to unit test and practice test-driven development
This is a must for any software engineer, project manager, or systems analyst with a will of producing a better code.
#2 Introduction to Algorithms
Introduction to Algorithms is a book by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.
It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study.
The book contains comprehensive, rigorous coverage of fundamental topics in algorithms and data structures that any developer should know. To read it, you’ll need some basic familiarity with at least one programming language and concepts like recursion and basic data structures like arrays, and also some familiarity with discrete mathematics and what a proof is. There are also appendixes which cover other mathematical topics, like graph theory and probability. And the numerous exercises found in the book will help you test your understanding of the material in practice. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming.
So Simply developers think that Introduction to Algorithms is a must-read for any software developer.
#3 C++: How to Program
Deitels' "C++ How to Program" is the most comprehensive, practical introduction to C++ ever published-with hundreds of hands-on exercises, roughly 250 complete programs written and documented for easy learning, and exceptional insight into good programming practices, maximizing performance, avoiding errors, debugging, and testing.
The first edition of the book was published in 1994. To keep readers up-to-date with leading-edge computing technologies, now the Tenth Edition conforms to the C++11 standard and the new C++14 standard.
This book does way more than just teaching how to program, which otherwise would probably be boring to read. It has great insight on the programming practice and the examples and excercises show the true power of C++ and OOP. So, this book is highly recommended by Simply.
#4 Code Complete
Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade.
Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code.
#5 The Pragmatic Programmer
The Pragmatic Programmer by Andy Hunt and Dave Thomas cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users.
It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.
Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. It is a good guide for beginners who are new in the industry but some of experienced developers may find it usefull, too. The is written in a clear non-techie language and in a pragmatic way so that make your reading easy and enjoyable. Simply highly recommends industry beginners to take this as a must.
And here are some other books recommended by Simply developers that were not included in the top but were recommended and maybe you would like to consider to read:
- Clean Architecture by Robert C. Martin
- Thinking, Fast and Slow by Daniel Kahneman
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
- Modern Operating Systems by Andrew S. Tanenbaum
- The Coding Interview: 189 Programming Questions and Solutions by Gayle Laakmann McDowell
- Database Systems by Hector Garcia-Molina
- Programming from the ground up by Jonathan Bartlett
Also some professional short-readings are available for software engineers in our blog.
Have a nice read!
- Simply :)