Here is a list of recommended books for software programming. However, it's worth noting that the best books for software programming may depend on the specific language or framework you're interested in learning, as well as your level of experience and familiarity with the subject matter. Here are 100+ books that cover a range of programming languages and topics, in no particular order:
- The Pragmatic Programmer by Andrew Hunt and David Thomas
- Code Complete by Steve McConnell
- Clean Code by Robert C. Martin
- Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
- Refactoring: Improving the Design of Existing Code by Martin Fowler
- Head First Design Patterns by Eric Freeman and Elisabeth Freeman
- Effective Java by Joshua Bloch
- Java Concurrency in Practice by Brian Goetz
- The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie
- Learn You a Haskell for Great Good! by Miran Lipovaca
- Programming in Lua by Roberto Ierusalimschy
- Eloquent JavaScript by Marijn Haverbeke
- JavaScript: The Good Parts by Douglas Crockford
- Secrets of the JavaScript Ninja by John Resig and Bear Bibeault
- Python Crash Course by Eric Matthes
- Fluent Python by Luciano Ramalho
- Python for Data Analysis by Wes McKinney
- Learning Python by Mark Lutz
- Think Python by Allen B. Downey
- The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan
- Learning Go by Jon Bodner
- Go in Action by William Kennedy, Brian Ketelsen, and Erik St. Martin
- Rust Programming by Example by Guillaume Gomez and Antoni Boucher
- The Rust Programming Language by Steve Klabnik and Carol Nichols
- Rust in Action by Tim McNamara
- Beginning Perl by Simon Cozens
- Programming Perl by Larry Wall, Tom Christiansen, and Jon Orwant
- Perl Cookbook by Tom Christiansen and Nathan Torkington
- Beginning Ruby by Peter Cooper
- The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto
- Ruby Cookbook by Lucas Carlson and Leonard Richardson
- Practical Object-Oriented Design in Ruby by Sandi Metz
- Beginning PHP and MySQL by W. Jason Gilmore
- Head First PHP & MySQL by Lynn Beighley and Michael Morrison
- PHP and MySQL Web Development by Luke Welling and Laura Thomson
- Mastering Regular Expressions by Jeffrey E. F. Friedl
- The Art of UNIX Programming by Eric S. Raymond
- Effective DevOps by Jennifer Davis and Katherine Daniels
- Continuous Delivery by Jez Humble and David Farley
- Site Reliability Engineering: How Google Runs Production Systems by Betsy Beyer, Chris Jones, Jennifer Petoff, and Niall Richard Murphy
- Agile Estimating and Planning by Mike Cohn
- User Story Mapping by Jeff Patton
- The Lean Startup by Eric Ries
- The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
- Test-Driven Development by Kent Beck
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
- Domain-Driven Design by Eric Evans
- Implementing Domain-Driven Design by Vaughn Vernon
- Building Microservices by Sam Newman
- Release It! by Michael
- "Head First Design Patterns" by Eric Freeman and Elisabeth Robson
- "The Clean Coder: A Code of Conduct for Professional Programmers" by Robert C. Martin
- "Code Complete: A Practical Handbook of Software Construction" by Steve McConnell
- "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans
- "Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
- "Agile Estimating and Planning" by Mike Cohn
- "The Art of Computer Programming" by Donald E. Knuth
- "The Pragmatic Programmer: From Journeyman to Master" by Andrew Hunt and David Thomas
- "Patterns of Enterprise Application Architecture" by Martin Fowler
- "Working Effectively with Legacy Code" by Michael Feathers
- "Refactoring: Improving the Design of Existing Code" by Martin Fowler
- "Test Driven Development: By Example" by Kent Beck
- "Growing Object-Oriented Software, Guided by Tests" by Steve Freeman and Nat Pryce
- "Code: The Hidden Language of Computer Hardware and Software" by Charles Petzold
- "The Mythical Man-Month: Essays on Software Engineering" by Frederick P. Brooks Jr.
- "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- "The Psychology of Computer Programming" by Gerald M. Weinberg
- "The Elements of Computing Systems: Building a Modern Computer from First Principles" by Noam Nisan and Shimon Schocken
- "Clean Architecture: A Craftsman's Guide to Software Structure and Design" by Robert C. Martin
- "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin
- "Agile Software Development: Principles, Patterns, and Practices" by Robert C. Martin
- "Software Craftsmanship: The New Imperative" by Pete McBreen
- "Growing Agile: A Coach's Guide to Agile Testing" by Samantha Laing and Karen Greaves
- "Software Architecture in Practice" by Len Bass, Paul Clements, and Rick Kazman
- "The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations" by Gene Kim, Patrick Debois, John Willis, and Jez Humble
- "Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation" by Jez Humble and David Farley
- "Effective Java" by Joshua Bloch
- "Java Concurrency in Practice" by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea
- "Programming in Scala: A Comprehensive Step-by-Step Guide" by Martin Odersky, Lex Spoon, and Bill Venners
- "The C Programming Language" by Brian W. Kernighan and Dennis M. Ritchie
- "C++ Primer" by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo
- "Effective C++: 55 Specific Ways to Improve Your Programs and Designs" by Scott Meyers
- "The Go Programming Language" by Alan A. A. Donovan and Brian W. Kernighan
- The Art of Computer Programming by Donald E. Knuth
- The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- Cracking the Coding Interview: 189 Programming Questions and Solutions by Gayle Laakmann McDowell
- Data Structures and Algorithms in Java by Robert Lafore
- Java Concurrency in Practice by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea
- Code Complete: A Practical Handbook of Software Construction by Steve McConnell
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs by Scott Meyers
- The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts
- The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks Jr.
- The Elements of Computing Systems: Building a Modern Computer from First Principles by Noam Nisan and Shimon Schocken
- Test Driven Development: By Example by Kent Beck
- Patterns of Enterprise Application Architecture by Martin Fowler
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
- The Architecture of Open Source Applications, Vol. 1 and Vol. 2 edited by Amy Brown and Greg Wilson
- Learning Python, 5th Edition by Mark Lutz
- Programming Python, 4th Edition by Mark Lutz
- Fluent Python: Clear, Concise, and Effective Programming by Luciano Ramalho
- Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython by Wes McKinney
- Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes
- Python Cookbook: Recipes for Mastering Python 3 by David Beazley and Brian K. Jones
- Learning JavaScript Design Patterns by Addy Osmani
- JavaScript: The Good Parts by Douglas Crockford
- JavaScript: The Definitive Guide by David Flanagan
- Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke
- jQuery in Action by Bear Bibeault and Yehuda Katz
- Learning PHP, MySQL & JavaScript: With jQuery, CSS & HTML5 by Robin Nixon
- Head First HTML and CSS: A Learner's Guide to Creating Standards-Based Web Pages by Elisabeth Robson and Eric Freeman
- HTML and CSS: Design and Build Websites by Jon Duckett
- Web Design with HTML, CSS, JavaScript and jQuery Set by Jon Duckett
- Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics by Jennifer Niederst Robbins
- Beginning PHP and MySQL: From Novice to Professional by W. Jason Gilmore
- Programming PHP by Kevin Tatroe, Peter MacIntyre, and Rasmus Lerdorf
- Professional ASP.NET MVC 5 by Jon Galloway, Brad Wilson, K. Scott Allen,
- Code Complete, 2nd Edition by Steve McConnell
- The Art of Agile Development by James Shore and Shane Warden
- Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Elisabeth Robson, Bert Bates, and Kathy Sierra
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, and William Opdyke
- Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
- Agile Estimating and Planning by Mike Cohn
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble and David Farley
- The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition by Frederick P. Brooks Jr.
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann
- Peopleware: Productive Projects and Teams, Third Edition by Tom DeMarco and Timothy Lister
- The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
- Test-Driven Development: By Example by Kent Beck
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability by Steve Krug