Ultimate Reading List for Developers | 40 Web Development Books
Code: The Hidden Language of Computer Hardware and Software | Charles Petzold
Print Length: 400 pages
Publisher: Microsoft Press; 1 edition (October 11, 2000)
Publication Date: October 11, 2000
No matter what your level of technical savvy, you’ll love this book: it’s more of non-fiction rather than a pure programming manual. It’s a fantastically well-written and researched gem that will appeal to both the general public and experienced engineers. And although it was published almost 20 years ago, it still continues to be relevant and praised by many. Using ordinary objects and language systems like Morse code and Braille, the author introduces the readers to the secret inner life of computers, digital media, and the Internet, meanwhile explaining technologies, number systems, logic gates, machine code, and programming languages in a down-to-earth and comprehensible fashion.
Code Complete 2 | Steve McConnell
Print Length: 960 pages
Publisher: Microsoft Press; 2 edition (June 9, 2004)
Publication Date: June 9, 2004
Code Complete is one of those programming bibles every engineer ought to have. And although it’s almost 1,000 pages long, it deserves to be read and re-read multiple times. To paraphrase one of the reviewers, Code Complete is perhaps the first and the most important monumental encyclopedia on the best practices in building quality software, covering subjects like building classes, using data and control structures, debugging, refactoring, and code-tuning. Albeit not updated, this book is still among the best practical guides on programming.
2/ The most important books you should read as a developer are “Writing Solid Code” by McGuire and “Code Complete” by McConnel. They aren’t college textbooks, but more important than any textbook from college.
— Robᵇᵉᵗᵒ Graham (@ErrataRob) December 10, 2018
Working Effectively with Legacy Code | Michael Feathers
Print Length: 458 pages
Publisher: Prentice Hall; 1 edition (September 22, 2004)
Publication Date: September 22, 2004
Every engineer has dealt with the pains of legacy code at a point in time in their careers, others — have to deal with it on a daily basis; this book aims to help developers work more effectively and ease some of those hardships associated with large, untested legacy code bases. In this book, you’ll learn the mechanics of software change, from adding fixtures and fixing bugs to optimizing performance, techniques that can be used with any language, the methodology for writing tests to prevent problems in the future, procedures to identify problems, and approaches to handling application that don’t have any structure.
Clean Code: A Handbook of Agile Software Craftsmanship | Robert C. Martin
Print Length: 464 pages
Publisher: Prentice Hall; 1 edition (August 1, 2008)
Publication Date: August 1, 2008
In this book, you’ll be challenged to read a lot of code and think about it in terms of its readability, correctness, and cleanliness. More importantly, you’ll be asked to reassess your professional values, commitment to your craft, and the correctness of your code. Clean Code is divided into three parts: the first one describes the principles, patterns, and practices of writing clean code, the second — exposes the reader to several case studies of increasing complexity, and the third part — contains the list of heuristics gathered while creating the case studies.
The Algorithm Design Manual | Steven S Skiena
Print Length: 730 pages
Publisher: Springer; 2 edition (April 5, 2009)
Publication Date: April 5, 2009
This is an extensive 800-page book on algorithms which is not tied up to any particular programming language and that covers everything from an introduction to algorithm design to analysis and data structures to combinatorial search and heuristic methods. The second part of the book contains a catalog of algorithmic problems, numerical and combinatorial patterns, graph and set and string problems, computational geometry and other valuable additional resources where you can search for complementary information.
Introduction to Algorithms | Thomas H. Cormen et al.
Print Length: 1292 pages
Publisher: The MIT Press; 3 edition (July 31, 2009)
Publication Date: July 31, 2009
From “Introduction to Algorithms” — Thomas H. Cormen.
— Nezumi Ronin (@NezumiRonin) September 29, 2018
This is a hell of a book: a study book of more than one thousand pages and a broad range of algorithms. All chapters are self-contained and can be read separately from the rest of the book, in case you want to learn a particular algorithm. The book is also written in pseudocode, so you don’t really have to be professional in any specific programming language before embarking on reading this corpus callosum of a book. If you’re looking for a book on algorithms, search no more — pick this one.
The Art of Computer Programming (4 volumes) | Donald E. Knuth
Hardcover: 9998 pages
Publisher: Addison-Wesley Professional; 1 edition (March 3, 2011)
Four volumes, 10,000 pages, and hundreds (if not thousands) of computer science students who read the book. Some say — the collection is a masterpiece of programming knowledge with tons and tons of problems to solve and, quite thankfully, answers to those in the back. The collection comprises six books, all on algorithms: Fundamental Algorithms, Seminumerical Algorithms, Sorting and Searching, and Combinatorial Algorithms.
Refactoring: Improving the Design of Existing Code | Martin Fowler et al.
Print Length: 461 pages
Publisher: Addison-Wesley Professional; 1 edition (March 9, 2012)
Publication Date: March 9, 2012
In this book, Fowler shows where you search for refactoring opportunities and rework a bad design into a good one. Refactoring process comprises a few steps, each of which is simple, practical and applicable to any environment: moving a field from one class to another, pulling some code out of a method and turn it into its own method, pushing some code up and down a hierarchy. You’ll also find a catalog of more than 70 proven refactorings with pointers that teach you when to apply them; instructions for applying each refactoring; and examples illustrating how it all works.
Regular Expressions Cookbook | Jan Goyvaerts, Steven Levithan
Print Length: 612 pages
Publisher: O’Reilly Media; 2 edition (August 13, 2012)
Publication Date: August 15, 2012
Zero Bugs | Kate Thompson
Paperback: 180 pages
Publisher: Kate Thompson Books; 1 edition (March 11, 2015)
This is a relatively short book with a collection of stories meant to be read in any order. While quite entertaining, it does bring a certain value and fresh perspectives on the life lessons learned by Kate, who just happens to be a software engineer. The second part of the book is the collection of artifacts of the programming world with samples of Apollo 11 source code and whatnot. While at times the narrative is a little light-hearted, it’s not elementary by far.
Programming Pearls | Jon Bentley
Print Length: 256 pages
Publisher: Addison-Wesley Professional; 2 edition (April 21, 2016)
Publication Date: April 21, 2016
Design principles from Programming Pearls by Jon Bentley:
* Work on the right problem.
* Explore the design space of solutions.
* Look at the data.
* Use the back of the envelope.
* Build prototypes.
* Make trade-offs when you have to.
* Keep it simple.
— Computer Science (@CompSciFact) February 20, 2018
Programming Pearls is another highly-valued and praised book within the programming circles. The book is filled with descriptions of practical programming techniques, as well as fundamental design principles. While the latest issue dates as far back as 2016, the book still remains relevant with its focus on hardcore programming problems and workable solutions. In any case, if you want to have a timeless classic on your bookstand, then look no further — buy this book, a great resource for familiarizing yourself with a coding state of mind and reminding yourself of some basic programming principles.
Print Length: 120 pages
Publisher: No Starch Press; 1 edition (February 14, 2014)
Publication Date: February 14, 2014
Understanding ECMAScript 6 | Nicholas C. Zakas
Print Length: 353 pages
Publisher: No Starch Press; 1 edition (August 16, 2016)
Publication Date: August 16, 2016
Print Length: 474 pages
Publisher: No Starch Press; 3 edition (December 4, 2018)
Publication Date: December 4, 2018
You Don’t Know JS (6 book series)
–@YDKJS books by @getify
–@syntaxfm podcast by @wesbos & @stolinski
–@mpjme Fun Fun Function
–@codewars (challenge yrself)
— Nine Codes 🇧🇦 (@CodesNine) January 22, 2019
Envisioning Information | Edward R. Tufte
Hardcover: 126 pages
Publisher: Graphics Pr (May 1, 1990)
Although this book is as old as the world, it’s still a must-read for every designer. This book is rife with illustrations and displays of high-dimensional complex data. You’ll find maps, charts, scientific presentations, computer interfaces (even if they are from the 90s), graphs, tables, guidebooks, and everything else you’ve been and have not been meaning to see. The topics covered are diverse as the universe: color and information, layering and separation, micro and macro designs, multiples, narratives, and whatnot.
Visual Explanations | Edward R. Tufte
Hardcover: 156 pages
Publisher: Graphics Press (February 1, 1997)
Another fantastic book by Edward R. Tufte that describes design strategies — the proper arrangement in space and time of images, words, and numbers. With this book, you’ll learn how to depict quantitative evidence logically succinctly and effectively. Visual Explanations is the third volume of Tufte’s indispensable series on the information display. Visual Explanations centers on dynamic data–information that changes over time; Tufte himself said that the book was about verbs, dynamics, and changes.
The Visual Display of Quantitative Information | Edward R. Tufte
Hardcover: 200 pages
Publisher: Graphics Pr; 2nd edition (January 2001)
The Visual Display of Quantitative Information is the first book in the Tufte’s classic series on displaying information, the one that primarily centers on charts and graphs that display numerical information. Here, Tufte presents a detailed analysis of how to display data for precise, effective, and quick analysis, elaborates on his guidelines on maximizing the “data-ink” and minimizing “non data-ink,” shows mind-blowing graphics, and explain why pie charts are always a bad idea.
Beautiful Evidence | Edward R. Tufte
Hardcover: 213 pages
Publisher: Graphics Pr; Third Printing edition (July 1, 2006)
Edward R. Tufte’s next masterpiece that suggests many new designs and provides analytical tools for assessing the credibility of evidence presentations. Many reviewers complained that this is the least informative book in the whole Tufte’s series on envisioning and presenting information — what seems to be the culprit is that what appears in this book has already been said by Tufte in the others, hence — it’s repetitive and a little boring at times.
The Design of Everyday Things | Don Norman
Print Length: 370 pages
Publisher: Basic Books; 2 edition (November 5, 2013)
Publication Date: November 5, 2013
This is one of my favorite books on design and not just web design, but everything else beyond and far away from a computer screen. Norman argues that the problem with the design is that it disregards the needs of users and the fundamental principles of cognitive psychology. The author suggests a very clear and concise way of dealing with design mistakes: next time you do something — make it visible, exploit natural relations between function and control, make intelligent use of constraints. The Design of Everyday Things is a fantastic book that has already enlightened many and become a sort of a designer’s bible. You’ll learn why some products satisfy customers and others frustrate them. It’s conceptually interesting but at times even annoyingly so; however, if you’re into design, then this is one of those few books you won’t do without.
About Face: The Essentials of Interaction Design
Print Length: 588 pages
Publisher: Wiley; 4 edition (August 13, 2014)
Publication Date: August 13, 2014
As some reviewers have noticed, if you’re looking for a designer’s best friend, then this is a book for you. This is the fourth edition of a timeless classic, updated for smartphones and tablets, so don’t think it’s all dotcom design, but there’s, in fact, plenty of information on mobile apps, touch interfaces, screen size considerations, and more. You can sleuth the web design blogs for tidbits of information, or you can buy this book — the choice is yours, but we think it’s well worth investing into the copy for the state-of-the-art interface recommendations and incredibly practical examples.
Designing Web Usability | Jakob Nielsen
Paperback: 432 pages
Publisher: New Riders; 1 edition (December 30, 1999)
A book from the 90s, yet, some still find this book valuable to read, especially if you’re relatively new to design. The subjects covered include cross-platform design, response time considerations, multimedia implementation, navigation strategies, accessibility, and even writing for the web. It’s dated, have not yet been republished, so think twice before committing.
Don’t Make Me Think | Steve Krug
Print Length: 210 pages
Publisher: New Riders; 3 edition (December 23, 2013)
Publication Date: December 23, 2013
Super simple explanation of why affordances matter, from Steve Krug’s Don’t Make Me Think
Cognitive load for no real purpose (or worse purely aesthetic purpose) is hostile design pic.twitter.com/grcSH3HmVG
— Garry() (@garrytan) August 26, 2018
This is a great book and not that much dated (only like six or seven years dated, not twenty, thank Goodness!); however, the first edition saw the light of day as early as in 2000. Don’t get discouraged though, the book has been updated since then, and includes fresh perspectives on the principles that made Don’t Make Me Think a classic plus the completely new (well six years ‘new’) chapters on mobile usability. It’s not only a fun read but also a valuable resource on everything usability: from designing a website to a newsletter. Having read all the reviews, I bought the book.
Design Patterns: Elements of Reusable Object-Oriented Software | Erich Gamma et. al.
Print Length: 416 pages
Publisher: Addison-Wesley Professional; 1 edition (October 31, 1994)
Publication Date: October 31, 1994
Another book from the 90s, an ageless classic. This time, it’s four designers presenting solutions to commonly occurring design problems: you’ll find 23 patterns to create more flexible reusable designs without the need to recreate the design solutions themselves. The authors start from describing what patterns essentially are, how to use them to create software; then they continue to name, explain, evaluate, and catalog recurring designs in object-oriented systems.
Rapid Development | Steve McConnell
Print Length: 672 pages
Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
Publisher: Microsoft Press; 1 edition (July 2, 1996)
Publication Date: July 2, 1996
As one famous blogger has put it: ‘technology changes, but people don’t.’ I could not have said it better about this book — although the book is from the 90s, some of the principles and strategies outlined in the book are still relevant. In this book, you’ll find overall strategies, specific best practices, and valuable tips to shrink and control development schedules and keep projects moving. You’ll be introduced to the so-called ‘rapid development’ strategy, ‘rapid-development’ practices, and real-world case studies.
The Pragmatic Programmer | by Andrew Hunt, David Thomas
Print Length: 352 pages
Publisher: Addison-Wesley Professional; 1 edition (October 20, 1999)
Publication Date: October 20, 1999
The key idea of this book is that you should program the structure and methods in code, and provide the detailed implementation as data; however, some of the parts of the book might not resonate with current practices or bring little if no value at all, especially those that cover teamwork, discipline, and pragmatism, or programming methodologies, the latter being a little weak and indecisive.
The Inmates Are Running the Asylum | Alan Cooper
Print Length: 283 pages
Publisher: Sams Publishing; 2 edition (February 24, 2004)
Publication Date: February 24, 2004
This is an entertaining read about how talented people create bad software. The authors argue that in order to fix the good people-bad software premise, engineers and managers need to find some sort of medium where technology would work exactly as average people think. Turns out — that’s a difficult thing to accomplish. People say that while this book is quite smart at times, it’s quite stupid at the others, like attacking Microsoft management practices that nobody really cares about anymore.
Head First Design Patterns | Eric Freeman
Print Length: 694 pages
Publisher: O’Reilly Media; 1 edition (October 25, 2004)
Publication Date: October 1, 2004
If you’re still not sure what a design pattern is, then this is the exact book to find out. This book shows you the way road-tested patterns are used by developers to create flexible, functional, and reusable software. Instead of dry theoretical language, you’ll be exposed to programming concepts in a simplified and humorous manner. If you’re interested in what exact patterns are covered by the book, check out lynda.com for a video tutorial that comes with the book.
Agile Software Development, Principles, Patterns, and Practices | Robert C. Martin
Print Length: 771 pages
Publisher: Prentice Hall; 1 edition (July 20, 2006)
Publication Date: July 20, 2006
This book is a series of case studies illustrating the fundamentals of Agile development and Agile design. You’ll learn everything from the very basics of agile development to UML models, test-proven strategies, design patterns, and more. This book is for you if you are a C# programmer or a Visual Basic or Java programmer learning C#.
Dreaming in Code | Scott Rosenberg
Print Length: 418 pages
Publisher: Crown (January 16, 2007)
Publication Date: January 16, 2007
Software Is Hard – quote from Donald Knuth, opening of Dreaming in Code by Scott Rosenberg, blog by Kyle… http://tumblr.com/xc6hxqsde
— Ryan A Boyles (@theRab) September 8, 2010
Dreaming in Code is about the history of software development and how software development teams work (or don’t), why the reuse of software modules rarely works together, why we need or (don’t need) an open-source development, how to manage people in the industry and what to expect and not to expect from them, and many other theories and methods and practical advice weaved around a captivating drama of the real story. Dreaming in Code is actually two books mixed together: one a story of a failed development project, and the other one — the author’s musings on better ways of developing software.
The Clean Coder | Robert C. Martin
Print Length: 244 pages
Publisher: Prentice Hall; 1 edition (May 13, 2011)
Publication Date: May 13, 2011
This is a spinoff of the previously mentioned Clean Code book by Robert C. Martin, which is packed with practical advice on coding, testing, and refactoring. It’s more of an attitude sort of book rather than technique: Martin shows how to approach software engineering with self-respect, face difficult situations with clarity, understand complex or ambiguous concepts, and finally write cleaner code.
Patterns of Enterprise Application Architecture | Martin Fowler
Print Length: 558 pages
Publisher: Addison-Wesley Professional; 1 edition (March 9, 2012)
Publication Date: March 9, 2012
Martin argues that irrespective of technological changes, there are still the same basic design ideas that can be adapted and applied to solve common problems.There actually two books in one: the first part of the book is a short introduction on developing enterprise applications; the second part is a detailed reference to the patterns themselves. Read this book if you’re a Java or C# programmer.
Clean Architecture | Robert C. Martin
Print Length: 430 pages
Publisher: Prentice Hall; 1 edition (September 12, 2017)
Publication Date: September 12, 2017
Compared to some of the books here, this book is relatively new, having been published in 2017. Robert Martin, aka Uncle Bob, writes yet another book on the best and core programming practices, covering essential software design principles for addressing function, component separation, data management, programming paradigms, and reasons why designs and architectures go wrong and what to do about it. Reviewers often notice that even if the publication date says 2017, a lot of what the book says is very basic and doesn’t seem like a book written in 2017.
Accessibility for Everyone | Laura Kalbag
Paperback: 166 pages
Publisher: A Book Apart (2017); 2017
— Emma Brillhart (@emmabrillhart) May 20, 2019
This is a wonderful book I’ve seen people reading and recommending on Twitter. If you haven’t yet realized the scope of the problem and its potential implications, then this book will explain the accessibility and impairment challenges, acquaint the readers with important laws and regulations, as well as offer the basic yet effective strategies of addressing accessibility issues on the web. By the end of this book, you’ll gather a solid set of best practices of the Ethical Design Manifesto. I think this book deserves a standalone article, so I’ll cover it in the nearest future.
The Mythical Man-Month | Fred Brooks
Print Length: 336 pages
Publisher: Addison-Wesley Professional; 2 edition (August 2, 1995)
Publication Date: August 2, 1995
The Mythical Man-Month is a collection of essays by Fred Brooks, an ex-project manager from the IBM who managed a ton of complex projects including development of the System/360 computer family hardware and the initial development of the Operating System/360 software suite. The main argument of the book was that large projects suffer management problems different from small ones due to the division of labor, and therefore it was critical to concentrate on the conceptual integrity of the product and strive for unity between making a great product and managing large projects. After it’s initial publication, the book still continues to be popular among managers and developers due to its extremely positive and helpful practicability and valuable advice.
Becoming a Technical Leader
Print Length: 304 pages
Publication Date: January 13, 2011
We’ve written a blog post on technical leadership, so if you’re interested, give it a read. This book, though, is a personalized guide to developing leadership skills in a technical environment with all its idiosyncrasies and particularities. The book is full of insights, anecdotes, and thought-provoking exercises at the end of each chapter.
The Passionate Programmer | Chad Fowler
Print Length: 232 pages
Publisher: Pragmatic Bookshelf; 1 edition (May 28, 2009)
Publication Date: January 8, 2013
This book addresses programming as an entrepreneurship endeavor: to succeed in programming, the author argues, one needs to take charge of their career and drive it in the right direction. The book delves into the software development career one step at a time by advising on the best practices to build, market, and sell yourself. Fowler explains why the choice of technologies and business domains should not be accidental, but rather deliberate and well-thought. The book is filled with anecdotes from the author’s life and hypothetical examples meaning to illustrate Fowler’s point. Reviewers generally comment on the lack of depth of the book, but yet still recommend it for inspiration.
Peopleware | Tom DeMarco
Print Length: 273 pages
Publisher: Addison-Wesley Professional; 3 edition (July 15, 2013)
Publication Date: July 15, 2013
I’d add that, at least based on the work reported in Peopleware, there was much less variation between programmers at the same company as between programmers at different companies – the argument was to improve the environment, not hiring “10X”. https://t.co/8B0isxeNDe
— Joelle Maslak 🏳️🌈 (@jmaslak) July 13, 2019
Peopleware is a classic that has had a profound impact on software engineering management practices and has long been a national bestseller. To put it shortly, Peopleware is about managing and treating employees. Although the first edition was published as early as in 1987, the book is more relevant than ever: it’s not about methodologies or project management per se, but about leading people, creating teams, preventing toxic workplace culture, motivating creatives and removing obstacles for your employees’ professional growth.
Soft Skills: The Software developer’s life manual | John Sonmez
Paperback: 504 pages
Publisher: Manning Publications; 1 edition (December 29, 2014)
We’ve already written about the importance of showing off your soft skills during the interviews, but soft skills go way beyond the initial interview process and extend to your web development career as a whole. John Sonmez’s book on soft skills addresses multiple ‘soft’ topics, such as career and productivity, personal finance and investing, fitness and relationships, and many more. You’ll learn how to build your person developer brand, how to learn quickly, how to balance between fitness routine and work, how to retire early, and how to stay sane while doing all of the above. John has a blog, which we’ve covered earlier in web devs blogs; John has somewhat distinct personality that makes him stand out among the other web devs, you really have to see for yourself and check his blog to understand what I’m talking about here, but yeah, you’ll know what I mean.
Demystifying Public Speaking | Lara Hogan
In case you’re preparing for a tech conf or just want to improve your public speaking skills in general, this book is definitely for you. Lara Hogan helps you to identify your fears and face them effectively, moreover to actually start working on them and pull through your anxieties. You’ll get practical tips from the beginning and ending of your presentation to gathering and distilling feedback. After reading this book, you’ll feel prepared more than ever.
What books have we missed? Any ideas?
And as a bonus, here’s the ultimate reading list from Itel for both hardware and software devs:
Also published on Medium.