
Developers advise: a selection of popular books on programming, languages, algorithms
In today's article, we have collected some of the most popular books selected by the developers themselves - residents of Reddit, Quora, Stack Exchange, Stack Overflow and Hacker News.
Our selection includes works on popular programming languages, software design, work with Linux-systems, collections of practical tips for developers - from beginners to experienced ones. This collection combines the high ratings of the programmers themselves, whom these books helped at different stages of their career. / photo Marketa CC

Let's start with books that will be useful to those who take their first steps in development or want to “close the gaps” in basic knowledge.
This book answers the question of how the computer works. Here you will not find modern practices and programming tips, but you can delve into the basics and history of computing systems.
Craig Rowe, head of the Dootrix development team, admits that he only read the book because Joel Spolsky, the author of Joel on Software and one of the founders of Stack Overflow, called it a mast read. At first, Craig doubted whether to read the book, because it was published in 2000. But in the end I read and was satisfied: the book helped him fill in the gaps on topics missed during his studies, and the narration in the format of a sequence of historical events made it possible to read.
The approach to the narrative in this book is different from the traditional one. It is built in the form of a dialogue between the author and the reader, and the pages are divided not into paragraphs, but into columns with questions and answers. Hacker News users note that due to the informal style, the book is easy and not boring to read. The questions and answers in the book gradually become more complicated, so it certainly won’t be too easy to read - there is even a thread on the Stack Exchange with a discussion of how to read it correctly.
Another book about a computer device for readers of any level. It describes the general principles of computer operation in an accessible language. One of the authors of the WirelessMoves blog claims that only 30 minutes with this book allowed him to understand how CPU works - the blogger admits that, despite his experience and theoretical knowledge, this section was a kind of “white spot” for him. The specifics of the book will help to do the same even for those who do not know anything about electronics.
The book has many practical problems, the solution of which is not always given - some see this as another of its advantages. In addition to this book, Reddit users recommend paying attention to The Elements of Computing Systems .
This book has both fans and opponents. It will be about functional programming and how to think about programs correctly . It was originally written as an introduction to programming, so it is aimed primarily at beginners.
This book gained popularity due to the feedback of Peter Norvig, director of research at Google. Peter draws an analogy with cars: SICP is suitable for those who want to understand how a car works, what it consists of, and how to build a safe and reliable car, but are unlikely to please those who just want to learn how to drive.
This is not easy reading, the book requires concentration and thoughtful study. Due to its complexity, some even suitSICP Challenge: to pass it, you need to read the book to the end. If time is too expensive for you, you can pay attention to the short version of the book.
Programmer Philip Buuck claims the book is the most exciting book on data structures he has ever read. Steven Skiena, author of the book and professor of computer science at the University of New York at Stony Brook, explains the reader difficult things in plain language, and at the end of each chapter gives a lot of exercises.
However, the opinions of Stack Overflow residents about this book were divided : someone confidently recommends it to beginners, and someone advises only to look through the first 200 pages. By the way, Stephen Skien in 1988, together with his team, came up with and described a concept similar to the iPad in a competition to develop the computer of the future.
A fundamental monograph on the principles of operation of algorithms and data structures from an outstanding scientist in the field of computer science, professor, mathematician and programming ideologist Donald Knuth . This book is not easy to read, but according to residents of Hacker News and Stack Exchange , it is worth the effort. Bill Gates was ready to consider the resume of everyone who mastered this work. Gates himself took it "a few months in the strictest discipline."
This book will help those who are just starting to learn Linux. This is not a guide or reference. However, if you seek to understand the principles of operation of distributions, network subsystems or other components of Linux, the book will tell you about this in detail and deeply.
According to Phil Bull, an astrophysics researcher at NASA, the problem with many Linux books is that they are trying to grasp the immensity. Authors often rush about between general but superficial material and a description of the specifics of a particular distribution.
The author of this book managed to find a balance between data on the system as a whole and more detailed information. According to Frank Cleary, the developer of AppDynamics, the book helped him better understand how different Linux components interact and apply his knowledge to work.
According to Dave C, system administrator, developer and author of the YouTube channel tutoriaLinux , if you want to read only one book on system administration, you should choose this one. The book will be a good reference and will allow you to quickly find the information you need thanks to the convenient content.
Residents of Reddit note that she will prompt the necessary tools and teach how to manage popular server distributions. The author, teacher and engineer Evi Nemeth is knowndeep knowledge in the field of system administration and network technologies. In addition to working in IT and teaching, Evie was fond of yachting and went on her Wonderland yacht to different parts of the world. In 2013, she and her crew sailed on a Niña yacht in the direction of Australia and went missing somewhere along the way.
According to 95% of people who have commented on Amazon, this book is the best Linux reference. It talks about operating systems in general and Linux in particular, provides historical background, C code examples, and 200 exercises.
Author Michael Kerrisk ( by Michael Kerrisk ) - programmer and creator of the project Linux man-pages has been widely recognized for this volume (1500+ pages) work among Linux-developers. Federico Lucifredi, distribution manager for SUSE Linux Enterprise and openSUSE, calls this book the Linux programming encyclopedia.
And Jake Edge, a Linux developer and editor at LWN.net, saysthat, despite the impressive volume, the book is easy to read and in simple words explains most of the key points.

/ photo Wall Boat PD
Getting to know C ++ is logical, following the advice of its creator: Björn Straustrup. The author described in detail in his book the fundamental features and evolution of the language. The first edition of the book dates from 1986. Since then, the book’s popularity has only grown: it has been published 4 times (the last in 2013) and translated into 20 languages.
Peter Lee ( by Peter Lee ), the head of Microsoft Research, is especially recommended to pay attention to a book for those who want to refresh their knowledge of C ++. In addition, Lee notes a good presentation of material, which allows you to quickly and efficiently find and learn everything you need. It is worth considering the physical dimensions of the book (if you prefer the paper version): a volume of 1300 pages is not very convenient to read in transport or in between cases.
Reddit users believe that the book is worthwhile and useful, but they caution that it is quite difficult to master it in its entirety and advise using the book mainly as a reference. Additionally, at this link you can find a selection of books on C ++ for any level of language proficiency.
On one hundred and fifty pages of this book, the authors managed to fit a lot of worthy advice. John Kurlak of Facebook, regrets not having read it when he first encountered JavaScript, because the volume and presentation of the material are good for beginners. According to John, the book will be useful if you want to learn design patterns at the stage of acquaintance with the language. The book is traditionally included in the lists of the most popular: 178 references on Stack Overflow and 639 on Reddit .
This book is recommended not only to Java developers, but also to those who want to understand multithreaded programming in general. Residents of Stack Overflow claim that the book helps to learn the basics of multithreading, thereby saving many hours when creating multi-threaded applications. Since the book reveals the basics, it is more suitable for beginners.
Peter Cooper, developer and author of Beginning Ruby , read this entire book in just 24 hours. According to him, the book is addictive in the manner of writing: it seems that one of your friends wrote it.
In contrast, from his previous book Design Patterns in Ruby this author Russ Olsen (Russ Olsen) sees no specific design patterns in Ruby, and Ruby style and the essence of the whole. Code inComplete developer and author Jake Gordon recommends this book to advanced Ruby programmers who want to make sure they are on the right track.
This classic textbook is also sometimes called K&R after the first letters of the authors' names. The first of them - Brian Kernighan ( Brian Kernighan ), scientist, one of Unix developers, co-author Languages AWK and AMPL . Second - Dennis Ritchie ( of Dennis Ritchie ), physicist, mathematician, creator of C and one of the leading developers of Unix.
Residents of Reddit note that the book can be your only tutorial on C, because it gives an exhaustive idea of the structure and features of the language. And the programmer Mike Taylor (Mike Taylor) compares this book with the Beatles group: it is popular and its popularity is absolutely deserved.
Users of all thematic sites recommend reading this book. For example, in this thread on Quora, it is recommended by almost every user. It authors - Robert Cecil Martin ( by Robert Cecil by Martin ), known as Uncle Bob, a software developer, writer and co-author of Agile Manifesto. This book has been mentioned on Stack Overflow 256 times, and has helped many people rethink their approach to work.
Drew Hoover, developer of Atomic Object, notes that despite his age, the book contains thoughts and ideas that do not lose their significance. Some, however, scold the book for being too categorical - that's why Clean Code is recommended to experienced programmers.
This book can be found in almost every selection of materials for the developer. And not just like that. Its author Steve McConnell ( by Steve McConnell ), CEO of Construx Software, twice received award Jolt Excellence for outstanding books about software development.
One of the founders of Stack Overflow Jeff Atwood ( Jeff Atwood ) notes that reading this book means that you like your job, you seriously feel about it and want to improve. And blogger and developer Jason Roell believes that regardless of experience, development environment, or project size, this book will stimulate thinking and help improve code.
Osman Ahmed Osman, Lead Quora Engineer, claims that on his first day at Google he was given this particular book as a code-writing guide, and it helped him a lot. Among the minuses, one can note the volume - 900 pages cannot be read quickly - and the gradual obsolescence of some of the principles mentioned in the book.
The most popular book on Stack Overflow tells you what to do with legacy code - legacy code that is not updated but used. Eli Bendersky writes that “the book contains tricks that are just as awful as the code they are intended to be finalized.” As Eli notes, 400 pages of the book contain little “water,” and reading it “linearly,” from beginning to end, is difficult and not always useful. It is more convenient to use the book as a collection of recommendations for working with various problems of the legacy code.
This book describes the solution to problems of object-oriented programming and offers 23 templates for creating flexible and elegant solutions on their own. Due to its long name, it is sometimes called the “book of the gang of four” (book by the Gang of Four ).
Residents of Stack Exchange call it canonical in terms of learning design patterns. And users of Stack Exchange recommend starting familiarizing themselves with patterns from the book Head First Design Patterns: A Brain-Friendly Guide . Despite the ambiguous cover , many say that it is easy to read, which is especially important when getting acquainted with the topic.
This book is already 40 years old, but it is still read, discussed and included in the list of favorite books of programmers. The secret to popularity is simple: technology is changing, but people are not. Frederick Brooks ( Frederick Brooks ), author and scientist in the field of computer science is known for having led the development of OS / 360 to IBM and outlined in his book "Brooks's Law": if the project does not fit into the time frame, the addition of the workforce keep him even more. The book will be useful to everyone who manages projects and thinks about productive work.
Under the cover of this book you will find transcripts of 80 hours of interviews with 15 programmers, each of whom has achieved significant success in their field (among them are Peter Norwig and Donald Knuth, already mentioned today). They will talk about how they studied programming, what tools and languages they use in their work, how they eliminate errors in code, what they think about the future of programming, etc.
The book gives a lot of different points of view and is marked by positive reviews from well-known developers. Joel Spolsky notes that she is not only useful, but also truly fascinating.
And what books useful to programmers would you recommend?
Tell us about it in the comments!
PS Here are a couple more selections from our blog on Habré:
PPS And some related materials from our corporate blog:
Our selection includes works on popular programming languages, software design, work with Linux-systems, collections of practical tips for developers - from beginners to experienced ones. This collection combines the high ratings of the programmers themselves, whom these books helped at different stages of their career. / photo Marketa CC

About computer device and development in general
Let's start with books that will be useful to those who take their first steps in development or want to “close the gaps” in basic knowledge.
This book answers the question of how the computer works. Here you will not find modern practices and programming tips, but you can delve into the basics and history of computing systems.
Craig Rowe, head of the Dootrix development team, admits that he only read the book because Joel Spolsky, the author of Joel on Software and one of the founders of Stack Overflow, called it a mast read. At first, Craig doubted whether to read the book, because it was published in 2000. But in the end I read and was satisfied: the book helped him fill in the gaps on topics missed during his studies, and the narration in the format of a sequence of historical events made it possible to read.
The approach to the narrative in this book is different from the traditional one. It is built in the form of a dialogue between the author and the reader, and the pages are divided not into paragraphs, but into columns with questions and answers. Hacker News users note that due to the informal style, the book is easy and not boring to read. The questions and answers in the book gradually become more complicated, so it certainly won’t be too easy to read - there is even a thread on the Stack Exchange with a discussion of how to read it correctly.
Another book about a computer device for readers of any level. It describes the general principles of computer operation in an accessible language. One of the authors of the WirelessMoves blog claims that only 30 minutes with this book allowed him to understand how CPU works - the blogger admits that, despite his experience and theoretical knowledge, this section was a kind of “white spot” for him. The specifics of the book will help to do the same even for those who do not know anything about electronics.
The book has many practical problems, the solution of which is not always given - some see this as another of its advantages. In addition to this book, Reddit users recommend paying attention to The Elements of Computing Systems .
This book has both fans and opponents. It will be about functional programming and how to think about programs correctly . It was originally written as an introduction to programming, so it is aimed primarily at beginners.
This book gained popularity due to the feedback of Peter Norvig, director of research at Google. Peter draws an analogy with cars: SICP is suitable for those who want to understand how a car works, what it consists of, and how to build a safe and reliable car, but are unlikely to please those who just want to learn how to drive.
This is not easy reading, the book requires concentration and thoughtful study. Due to its complexity, some even suitSICP Challenge: to pass it, you need to read the book to the end. If time is too expensive for you, you can pay attention to the short version of the book.
About Algorithms
Programmer Philip Buuck claims the book is the most exciting book on data structures he has ever read. Steven Skiena, author of the book and professor of computer science at the University of New York at Stony Brook, explains the reader difficult things in plain language, and at the end of each chapter gives a lot of exercises.
However, the opinions of Stack Overflow residents about this book were divided : someone confidently recommends it to beginners, and someone advises only to look through the first 200 pages. By the way, Stephen Skien in 1988, together with his team, came up with and described a concept similar to the iPad in a competition to develop the computer of the future.
A fundamental monograph on the principles of operation of algorithms and data structures from an outstanding scientist in the field of computer science, professor, mathematician and programming ideologist Donald Knuth . This book is not easy to read, but according to residents of Hacker News and Stack Exchange , it is worth the effort. Bill Gates was ready to consider the resume of everyone who mastered this work. Gates himself took it "a few months in the strictest discipline."
About the intricacies of Linux
This book will help those who are just starting to learn Linux. This is not a guide or reference. However, if you seek to understand the principles of operation of distributions, network subsystems or other components of Linux, the book will tell you about this in detail and deeply.
According to Phil Bull, an astrophysics researcher at NASA, the problem with many Linux books is that they are trying to grasp the immensity. Authors often rush about between general but superficial material and a description of the specifics of a particular distribution.
The author of this book managed to find a balance between data on the system as a whole and more detailed information. According to Frank Cleary, the developer of AppDynamics, the book helped him better understand how different Linux components interact and apply his knowledge to work.
According to Dave C, system administrator, developer and author of the YouTube channel tutoriaLinux , if you want to read only one book on system administration, you should choose this one. The book will be a good reference and will allow you to quickly find the information you need thanks to the convenient content.
Residents of Reddit note that she will prompt the necessary tools and teach how to manage popular server distributions. The author, teacher and engineer Evi Nemeth is knowndeep knowledge in the field of system administration and network technologies. In addition to working in IT and teaching, Evie was fond of yachting and went on her Wonderland yacht to different parts of the world. In 2013, she and her crew sailed on a Niña yacht in the direction of Australia and went missing somewhere along the way.
According to 95% of people who have commented on Amazon, this book is the best Linux reference. It talks about operating systems in general and Linux in particular, provides historical background, C code examples, and 200 exercises.
Author Michael Kerrisk ( by Michael Kerrisk ) - programmer and creator of the project Linux man-pages has been widely recognized for this volume (1500+ pages) work among Linux-developers. Federico Lucifredi, distribution manager for SUSE Linux Enterprise and openSUSE, calls this book the Linux programming encyclopedia.
And Jake Edge, a Linux developer and editor at LWN.net, saysthat, despite the impressive volume, the book is easy to read and in simple words explains most of the key points.

/ photo Wall Boat PD
About programming languages
Getting to know C ++ is logical, following the advice of its creator: Björn Straustrup. The author described in detail in his book the fundamental features and evolution of the language. The first edition of the book dates from 1986. Since then, the book’s popularity has only grown: it has been published 4 times (the last in 2013) and translated into 20 languages.
Peter Lee ( by Peter Lee ), the head of Microsoft Research, is especially recommended to pay attention to a book for those who want to refresh their knowledge of C ++. In addition, Lee notes a good presentation of material, which allows you to quickly and efficiently find and learn everything you need. It is worth considering the physical dimensions of the book (if you prefer the paper version): a volume of 1300 pages is not very convenient to read in transport or in between cases.
Reddit users believe that the book is worthwhile and useful, but they caution that it is quite difficult to master it in its entirety and advise using the book mainly as a reference. Additionally, at this link you can find a selection of books on C ++ for any level of language proficiency.
On one hundred and fifty pages of this book, the authors managed to fit a lot of worthy advice. John Kurlak of Facebook, regrets not having read it when he first encountered JavaScript, because the volume and presentation of the material are good for beginners. According to John, the book will be useful if you want to learn design patterns at the stage of acquaintance with the language. The book is traditionally included in the lists of the most popular: 178 references on Stack Overflow and 639 on Reddit .
This book is recommended not only to Java developers, but also to those who want to understand multithreaded programming in general. Residents of Stack Overflow claim that the book helps to learn the basics of multithreading, thereby saving many hours when creating multi-threaded applications. Since the book reveals the basics, it is more suitable for beginners.
Peter Cooper, developer and author of Beginning Ruby , read this entire book in just 24 hours. According to him, the book is addictive in the manner of writing: it seems that one of your friends wrote it.
In contrast, from his previous book Design Patterns in Ruby this author Russ Olsen (Russ Olsen) sees no specific design patterns in Ruby, and Ruby style and the essence of the whole. Code inComplete developer and author Jake Gordon recommends this book to advanced Ruby programmers who want to make sure they are on the right track.
This classic textbook is also sometimes called K&R after the first letters of the authors' names. The first of them - Brian Kernighan ( Brian Kernighan ), scientist, one of Unix developers, co-author Languages AWK and AMPL . Second - Dennis Ritchie ( of Dennis Ritchie ), physicist, mathematician, creator of C and one of the leading developers of Unix.
Residents of Reddit note that the book can be your only tutorial on C, because it gives an exhaustive idea of the structure and features of the language. And the programmer Mike Taylor (Mike Taylor) compares this book with the Beatles group: it is popular and its popularity is absolutely deserved.
About the intricacies of work and self-improvement
Users of all thematic sites recommend reading this book. For example, in this thread on Quora, it is recommended by almost every user. It authors - Robert Cecil Martin ( by Robert Cecil by Martin ), known as Uncle Bob, a software developer, writer and co-author of Agile Manifesto. This book has been mentioned on Stack Overflow 256 times, and has helped many people rethink their approach to work.
Drew Hoover, developer of Atomic Object, notes that despite his age, the book contains thoughts and ideas that do not lose their significance. Some, however, scold the book for being too categorical - that's why Clean Code is recommended to experienced programmers.
This book can be found in almost every selection of materials for the developer. And not just like that. Its author Steve McConnell ( by Steve McConnell ), CEO of Construx Software, twice received award Jolt Excellence for outstanding books about software development.
One of the founders of Stack Overflow Jeff Atwood ( Jeff Atwood ) notes that reading this book means that you like your job, you seriously feel about it and want to improve. And blogger and developer Jason Roell believes that regardless of experience, development environment, or project size, this book will stimulate thinking and help improve code.
Osman Ahmed Osman, Lead Quora Engineer, claims that on his first day at Google he was given this particular book as a code-writing guide, and it helped him a lot. Among the minuses, one can note the volume - 900 pages cannot be read quickly - and the gradual obsolescence of some of the principles mentioned in the book.
The most popular book on Stack Overflow tells you what to do with legacy code - legacy code that is not updated but used. Eli Bendersky writes that “the book contains tricks that are just as awful as the code they are intended to be finalized.” As Eli notes, 400 pages of the book contain little “water,” and reading it “linearly,” from beginning to end, is difficult and not always useful. It is more convenient to use the book as a collection of recommendations for working with various problems of the legacy code.
This book describes the solution to problems of object-oriented programming and offers 23 templates for creating flexible and elegant solutions on their own. Due to its long name, it is sometimes called the “book of the gang of four” (book by the Gang of Four ).
Residents of Stack Exchange call it canonical in terms of learning design patterns. And users of Stack Exchange recommend starting familiarizing themselves with patterns from the book Head First Design Patterns: A Brain-Friendly Guide . Despite the ambiguous cover , many say that it is easy to read, which is especially important when getting acquainted with the topic.
This book is already 40 years old, but it is still read, discussed and included in the list of favorite books of programmers. The secret to popularity is simple: technology is changing, but people are not. Frederick Brooks ( Frederick Brooks ), author and scientist in the field of computer science is known for having led the development of OS / 360 to IBM and outlined in his book "Brooks's Law": if the project does not fit into the time frame, the addition of the workforce keep him even more. The book will be useful to everyone who manages projects and thinks about productive work.
Under the cover of this book you will find transcripts of 80 hours of interviews with 15 programmers, each of whom has achieved significant success in their field (among them are Peter Norwig and Donald Knuth, already mentioned today). They will talk about how they studied programming, what tools and languages they use in their work, how they eliminate errors in code, what they think about the future of programming, etc.
The book gives a lot of different points of view and is marked by positive reviews from well-known developers. Joel Spolsky notes that she is not only useful, but also truly fascinating.
And what books useful to programmers would you recommend?
Tell us about it in the comments!
PS Here are a couple more selections from our blog on Habré:
- 33 independent blogs on UI design, web development and programming
- Weekend Reading: 22 independent blogs on development, information security, testing and game dev
PPS And some related materials from our corporate blog: