DEV Community

Amy Liu
Amy Liu

Posted on

What are the best books about programming that aren't cookbooks or 'how to code in X'?

Anything with a narrative? Light reading? Fun? Not just looking for technical tutorials.

Top comments (6)

Collapse
 
jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

The Phoenix Project is an amazing thriller that will catch your breath and make you understand how DevOps was born (from pain) and why

amazon.com/The-Phoenix-Project-aud...

Collapse
 
developerdoran profile image
Jake Doran

The Phoenix Project and its sequel The Unicorn Project are both great recommendations :)

Collapse
 
wizdomtek profile image
Christopher Glikpo ⭐

There are many great books about programming that go beyond the traditional "cookbooks" or "how to code in X" approach. These books delve deeper into various aspects of programming, providing insights, strategies, and practical advice to programmers at different skill levels. Here are some recommendations:

"Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin - This book focuses on writing clean, maintainable, and efficient code. It covers principles and practices that can help programmers produce high-quality code that is easy to understand and maintain.

"The Pragmatic Programmer: Your Journey to Mastery" by Andrew Hunt and David Thomas - This classic book offers practical advice on various programming topics, including code organization, debugging, and testing. It also addresses software design principles, performance optimization, and career development.

"Design Patterns: Elements of Reusable Object-Oriented Software" by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides - This seminal book introduces the concept of design patterns, which are proven solutions to recurring programming problems. It covers 23 design patterns and provides examples of how to implement them in code.

"Code Complete: A Practical Handbook of Software Construction" by Steve McConnell - This comprehensive book covers various aspects of software construction, including coding style, debugging, refactoring, and testing. It also discusses software development practices, team dynamics, and project management.

"The Mythical Man-Month: Essays on Software Engineering" by Frederick P. Brooks - This classic book explores the challenges of software development, including project management, estimation, and communication. It offers valuable insights into the complexities of software engineering and provides practical advice on how to manage large software projects.

"Refactoring: Improving the Design of Existing Code" by Martin Fowler - This book introduces the concept of refactoring, which is the process of improving the design and structure of existing code without changing its functionality. It provides practical techniques and examples of how to refactor code to make it more maintainable, extensible, and efficient.

"The Clean Coder: A Code of Conduct for Professional Programmers" by Robert C. Martin - This book focuses on the professional aspects of programming, including ethics, communication, time management, and career development. It offers practical advice on how to become a more effective and responsible programmer.

"Soft Skills: The Software Developer's Life Manual" by John Sonmez - This book addresses the non-technical skills that are crucial for software developers, such as career planning, productivity, communication, and personal development. It offers practical tips and strategies for improving various aspects of a software developer's life.

"Practical Object-Oriented Design in Ruby: An Agile Primer" by Sandi Metz - This book provides practical guidance on how to write clean, maintainable, and object-oriented code using the Ruby programming language. It covers principles of object-oriented design, code organization, and testing, and offers real-world examples and case studies.

"The Art of Debugging with GDB, DDD, and Eclipse" by Norman Matloff and Peter Jay Salzman - This book focuses on the art and science of debugging, which is an essential skill for programmers. It covers various debugging techniques and tools, including GDB, DDD, and Eclipse, and provides practical strategies for diagnosing and fixing software defects.

Collapse
 
amyliumaiyi profile image
Amy Liu

Is this ChatGPT?

Collapse
 
developerdoran profile image
Jake Doran

I'd second both Clean Code, The Clean Coder and The Pragmatic Programmer!

Collapse
 
arutonee profile image
arutonee

One book that I both enjoyed reading, and found useful was Seven Languages in Seven Weeks by Bruce Tate, which is a brief and surface-level overview of 7 different languages, each focusing on a different paradigm or concurrency model. It's a great book for learning the power of programming paradigms and ideas that aren't what you're necessarily used to. The book doesn't work very well for learning any new languages, but you may be able to take away some design ideas that can greatly improve the quality of your code. This is the book that made me leave JS and Python in favor of Elixir, Rust, and Haskell.