Coding is vital, reading is fundamental
Author: Kostas Papanikolaou
Coding is vital, reading is fundamental
Creator of one of the world’s most popular book series ever published has described it better than most: “A reader lives a thousand lives before he dies . . . the man who never reads lives only one.” George R.R. Martin is a master of writing, and in a way he produces… code. The concept of code dates back to the 1300s when it was first used to describe the “systematic compilation of laws”. The word derives from the Old French word code that meant “system of laws, law-book”. In turn, it comes from Latin codex, earlier caudex.
Mankind has progressed dizzyingly, from using the word code to describe a set of laws, to using it to describe the sequence of commands used to create software and applications. The human mind is a marvelous thing that expands further and further. It does that through reading, experiencing, learning, experimenting, and solving. Reading is fundamental. It allows us to understand, and develop ideas. Programmers and software developers are people that are trying to both understand and explain the surroundings of the human species. They aim to develop ideas that will help us to better understand the world.
If you are a programmer, you are already aware that the struggles are many, the obstacles even more. You have already read hundreds if not thousands of pages about code, programming languages, coding principles, and more. There is a strong chance you have read one or more of the books that we have selected. We consider them to be the must-read books for a software developer/programmer in 2020.
Clean Code – Robert C. Martin
Considered the “Bible” of programming and coding. Clean Code is split into three different parts. In this study-turned-book, Martin describes pretty much everything there is regarding code and programming. He talks about principles, patterns, and practices for writing clean code. Martin also lists several case studies of increasing complexity, each one an exercise in cleaning up code. Cleaning up code means transforming a codebase that has some problems into one that is efficient. Finally, he describes the results and conclusions gathered while creating the case studies. The result is a knowledge base that describes the way humans think when they write, read, and clean code.
Code Complete 2 – Steve McConnell
Only one thing is better than providing practical guides: updating them! Steve McConnell has written what is considered to be the best practical guide in the history of programming. He not only published Code Complete, but he also updated it. Code Complete 2 is one of the best books any programmer and software developer could get their hands on. Leading-edge practices have been added, as well as hundreds of new and fresh code samples. These illustrate the art and science of software construction. McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. He captures the body of knowledge available from research, academia, and more, to create a great guide.
Don’t Make Me Think – Steve Krug
Human-computer interaction and web usability are the two main things that Steve Krug discusses in this book. The whole premise is that a well-built software program or website should allow its users to accomplish their intended tasks as easily and directly as possible. Krug points out that people are good at taking the first available solution to their problem, so the design should take advantage of this. Frequently, Krug mentions Amazon.com as an example of a well-designed website that offers high-quality interaction with its visitors, while growing in size and complexity each day. According to the introduction of the book, it is written to be read by an executive during a two-hour airplane flight.
The Mythical Man-Month – Fred Brooks
Fred Brooks and his book The Mythical Man-Month are proof that the way you approach is a subject within a book, directly affects how easy your readers will find it to understand your point. Brooks has recently revised and corrected the book, just like he mentions in it that programmers should always do with their code. In this book, the chapter “Plan To Throw Out” includes the principle that while the goal of a programmer is always to create something bigger, better, and faster, it is an axiom that whatever the result, it will eventually have to be discarded and reworked. Therefore, it is of vital importance that programmers “Plan to Throw Out”. This allows for the migration of users from one product, to the one that follows, as well as for meeting the schedule goals by setting reasonable milestones.
The Phoenix Project – Gene Kim, Kevin Behr, George Spafford
As a programmer/software developer, you are bound to work for someone, at least for the first years of your career. At some point, you may have to work for a company that requires you to create code and/or apps, and anything that could exist within your job description, regardless of the specialty. Therefore, it is of vital importance -and the same applies pretty much to every employee- to understand how the company you work for actually operates, and how it should operate. The Phoenix Project, co-written by Gene Kim, Kevin Behr, and George Spafford, approaches programming from this perspective. It is the story of a fictional doomed corporation that transitioned to being a “star”, showcasing how “wrong work” will negatively impact the performance of your company.
The Imposter’s Handbook – Rob Conery
More often than not, programmers and software developers are self-taught people. Their attraction to coding led them to start experimenting with it, and thanks to the beautiful nature of it, those who managed to understand it, eventually found jobs as programmers, even without degrees. However, studying something under tutors and experienced people on the subject is different. And can also be expensive. Rob Conery found the median solution to that, offering The Imposter’s Handbook to those self-taught programmers that want to fill knowledge gaps and walk through all the topics discussed and taught in a CS degree program. An excellent choice for novice and self-taught programmers.
The Art of Computer Programming – Professor Donald Knuth
This is high-quality, code-heavy, term-based programming at its best form. The Art of Computer Programming is the title Professor Donald Knuth decided to give to his book, a piece of text that is praised among the community and is considered to be one of the most difficult reads on the subject. Bill Gates, the founder of Microsoft, has been quoted saying “If you think you’re a really good programmer… read [Knuth’s] Art of Computer Programming… You should send me a resume if you can read the whole thing.” From basic programming concepts and techniques to the structural relationships between data elements ad how to deal with them efficiently, Knuth includes everything in The Art of Computer Programming.
These are just 7 out of the thousands of books, articles, journals, papers, studies, and researches written and published around programming. An ever-evolving world has ever-flowing information reaching its professionals, as well as readers who are interested (as long as they have some idea of programming since technical terms might make most of these books unreadable for non-programmers). Honorable mentions for must-read books also include Structure and Interpretation of Computer Programs (Gerald Jay Sussman, Hal Abelson, MIT Textbook), Agile Software Development (Robert C. Martin), Design Patterns (Erich Gamma, John Vlissides, Ralph Johnson, Richard Helm), and many more.