|
Programming is an art! IT specialists, like artists, musicians and writers, are capable of creating beauty: code can impress and even change the course of life. However, unique code requires not only talent, but also continuous learning. We have compiled for you the TOP-10 books that every self-respecting programmer should read to be the best!
1. "Clean Code: Writing, Analyzing, and Refactoring"
by Robert C. Martin
The art of writing code is honed through trial and error for years. Sometimes you just want to save yourself from the hard work of many years and tame the unruly code a little faster - the mistakes and experience of other programmers will help us (or the social media marketing service book by the legendary Uncle Bob "Clean Code: Writing, Analyzing, and Refactoring"). This almanac contains invaluable information about code cleaning and software development, here you can also find detailed step-by-step instructions on writing and refactoring code.
Also, after reading the book, you will be able to implement the Agile methodology, one of the leading forms of SDLC (Software development lifecycle), in your software development projects and become a more determined and disciplined programmer than before.
The book consists of three parts:
⁃ the first sets out the principles, patterns and techniques for writing clean code, and also provides a large number of examples of its writing;
⁃ the second one describes practical scenarios of increasing complexity: each scenario is an exercise in cleaning up the code or transforming problematic code into code with fewer problems;
⁃ the third one “sums up”: it consists of one chapter with a list of heuristics and “code smells” collected during the analysis.
2. "Algorithms. Construction and Analysis"
Authors - Thomas H. Corman, Charles I. Leiserson
This book describes a wide variety of algorithms in simple human language, so that readers with different levels of training can successfully assimilate the information. The description of the algorithms is supplemented by pseudocode, which allows anyone with at least basic knowledge and experience in programming to implement the algorithm in the programming language they use. Strict mathematical analysis and an abundance of theorems are accompanied by a large number of illustrations, elementary reasoning and simple approximate estimates.
We recommend paying attention to the third edition of this masterpiece: firstly, it has been revised, and secondly, it contains new chapters, including those devoted to such an important topic as multithreaded algorithms.
Reviews of the book:
"This is a veritable bible in the field, a comprehensive textbook covering the entire spectrum of modern algorithms: from fast algorithms and data structures to polynomial-time algorithms for solving very complex problems, from classical graph theory algorithms to specialized algorithms for substring searching, computational geometry, and number theory. Not to mention the increasingly important van Emde Boas trees and multithreaded algorithms that appear in the third edition." ( Daniel Spielman, Yale University Computer Science Department)
"As a teacher and researcher in the field of algorithms for more than twenty years, I can confidently say that Cormen's book is the best textbook I have ever encountered. It is an intelligent, encyclopedic, and modern approach to the study of algorithms; our department will continue to use it as both an undergraduate and graduate textbook and a recommended reference." ( Gabriel Robins, University of Virginia Computer Science Department)
3. "The Structure and Interpretation of Computer Programs"
Authors - Abelson Harold, Sussman Gerald Jay
"The Structure and Interpretation of Computer Programs", also known as SICP, is one of the best books for learning the basics of programming. SICP is a universal programming textbook that is used as a basic programming course at the Massachusetts Institute of Technology. Here you will find both a description of various systems of program syntax and an analysis of the transition from a set of algorithms to program code. Significant space is devoted to the discussion of a set of "elementary programs" used as elements of the design of programs of higher levels of complexity, optimizing the ratio of their "weight" and efficiency.
Another book with a capital "K" from an experienced software engineer, Robert K. Martin, is devoted to the methods and tools with which you can achieve true mastery in software development. It tells not only about how to write clean code, but also about how to cultivate a qualified professional programmer in yourself.
The book is full of practical advice on all aspects of programming: from project assessment and writing code to refactoring and testing. This book is more than a description of methods, it is about a professional approach to the development process.
|
|