Skip to content

The canonical and partly opinionated list of books that every software engineer should read in their lifetime.

License

Notifications You must be signed in to change notification settings

martineso/swe-essential-books

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Software Engineering: Essential Books 📚

The canonical and partly opinionated list of books that every software engineer should read in their lifetime.

I have unsuccessfully resisted the urge to give any form of categorization for these books since it won't be a perfect one. For readability, I yielded to providing an approximate categorization, don't take any offense if something doesn't feel in the right place.

CS Fundamentals

  • The Algorithm Design Manual - Steven S. Skiena | ORLY
  • The Art of Computer Programming (TAOCP) - Donald Knuth:
    • The Art of Computer Programming, Vol. 1: Fundamental Algorithms | ORLY
    • The Art of Computer Programming, Vol. 2: Seminumerical Algorithms | ORLY
    • The Art of Computer Programming, Vol 3: Sorting and Searching | ORLY
    • The Art of Computer Programming, Vol 4A: Combinatorial Algorithms | ORLY
    • The Art of Computer Programming, Vol 4B: Combinatorial Algorithms | ORLY
  • Design Patterns - Gang of Four | ORLY
  • Grokking Algorithms - Aditya Bhargava, Jed Limke | ORLY, AMZN
  • Introduction to Algorithms - CLRS | AMZN
  • Mathematics for Computer Science - E. Lehman, T. Leighton, A. Meyer | AMZN
  • Readings in Database Systems - Joseph Hellerstein & Michael Stonebraker | AMZN
  • Structure and Interpretation of Computer Programs - H. Abelson, G. Sussman, J. Sussman | MIT, AMZN
  • Types and Programming Languages - Benjamin Pierce | AMZN

Systems

  • Computer Networking: A Top-Down Approach - James F. Kurose, Keith W. Ross | AMZN
  • Operating Systems: Three Easy Pieces - R. Arpaci-Dusseau, A. Arpaci-Dusseau | AMZN
  • Site Reliability Engineering: How Google Runs Production Systems - J. Petoff, N. Murphy, B. Beyer, C. Jones | GOOGLE, AMZN
  • Systems Performance - Brendan Gregg | ORLY
  • TCP/IP Illustrated - R.Stevens, et al.:
    • TCP/IP Illustrated, Vol. 1: The Protocols | ORLY, AMZN
    • TCP/IP Illustrated, Vol. 2: The Implementation | AMZN
    • TCP/IP Illustrated, Vol 3: TCP for Transactions, HTTP, NNTP and the Unix Domain Protocols | AMZN

Software Craft

  • Apprenticeship Patterns - Dave H., Andy T. | ORLY
  • Beautiful Architecture - D. Spinellis and G. Gousios | ORLY
  • Beautiful Code - Andy Oram and Greg Wilson | ORLY
  • Code Complete - Steve McConnell | ORLY, AMZN
  • Clean Architecture - Robert C. Martin | ORLY
  • Clean Code - Robert C. Martin | ORLY
  • Clean Coder - Robert C. Martin | ORLY
  • Clean Craftsmanship - Robert C. Martin | ORLY
  • Programming Pearls - Jon Bentley | ORLY
  • Refactoring - Martin Fowler | ORLY
  • Software Engineering at Google - T. Winters, T. Manshreck, H. Wright | ORLY
  • Writing Solid Code - Steve Maguire | ORLY

Uncategorized / Broad

  • The Art of Doing Science and Engineering: Learning to Learn - Richard Hamming | AMZN
  • Coders at Work - Peter Seibel | ORLY
  • Designing Data-Intensive Applications - M. Kleppmann, B. Lange | ORLY, AMZN
  • [?] How the Internet Happened: From Netscape to the iPhone - Brian McCullough | AMZN
  • Modern Software Engineering - David Farley | ORLY, AMZN
  • The Mythical Man-Month - Frederick P. Brooks | ORLY
  • The Pragmatic Programmer - David Thomas, Andrew Hunt | ORLY
  • Pattern-Oriented Software Architecture Volume 1: A System of Patterns | ORLY, AMZN
  • A Philosophy of Software Design - John Ousterhout | ORLY
  • The Practice of Programming - Brian Kernighan & Rob Pike | ORLY, AMZN
  • Programming Language Pragmatics | AMZN
  • The Psychology of Computer Programming - Gerald Weinberg | AMZN
  • Righting Software - Löwy Juval | ORLY, AMZN
  • Software Engineering, Vol. 1: Abstraction and Modelling - Dines Bjørner | AMZN
  • Software Engineering, Vol. 2: Specification of Systems and Languages - Dines Bjørner
  • Software Engineering, Vol. 3: Domains, Requirements and Software Design - Dines Bjørner
  • [?] Technology Strategy Patterns - Eben Hewitt | ORLY, AMZN
  • Working Effectively with Legacy Code - Michael C. Feathers | ORLY

👏 Thanks to the Contributors: Alloys Mila, Anthony Nandaa, Brian Muthui, Brian Ogutu, Chrispine Chendo, Deveroux Martin, Dmitry Vostokov, Elton Maiyo, Haim Kilov, Ishuah Kariuki, Jacob Chencha, Karanja Mutahi, Kemunto Ochwang'i, Miles Obare, Robert Simiyu, Richard Mulandi, Stephen Ng'etich

Other Listings:

Here are other listings around the world, there could be some overlaps with what we have up here.

About

The canonical and partly opinionated list of books that every software engineer should read in their lifetime.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published