This is an extension to Be the Next Version of Yourself I wrote a while ago. Here, you’ll find mainly language and platform-agnostic learning resources to help you become a better software craftsman.
I have roughly categorized the links in this document into sections, but they are in no particular order.
All of those links below point to the books’ **Goodreads ** profile so that you can read what others have to say about them and decide whether to read them yourself.
User Experience
- About Face 3: The Essentials of Interaction Design
- Designing Interfaces: Patterns for Effective Interaction Design
- Designing Web Usability
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
- Emotional Design: Why We Love (or Hate) Everyday Things
- The Design of Everyday Things
- The Design of Future Things
- The Humane Interface: New Directions for Designing Interactive Systems
Information Architecture
- Envisioning Information
- Information Architecture for the World Wide Web: Designing Large-Scale Web Sites
Marketing
Microservices and System Design
- Beyond the Twelve-Factor App Exploring the DNA of Highly Scalable, Resilient Cloud Applications
- Designing Data-Intensive Applications
- Domain-Driven Design: Tackling Complexity in the Heart of Software
High Scalability
Data Structures and Algorithms
- Cormen, Introduction to Algorithms
- Skiena, Algorithm Design Manual
- Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science
- Knuth, The Art of Computer Programming
Testing
- Test Driven Development: By Example
- The Art of Application Performance Testing: Help for Programmers and Quality Assurance
Software Craftsmanship
- Clean Code: A Handbook of Agile Software Craftsmanship
- Code Complete
- Coders at Work: Reflections on the Craft of Programming
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
- Dynamics of Software Development
- Hackers & Painters: Big Ideas from the Computer Age
- Hacker’s Delight
- Implementing Lean Software Development: From Concept to Cash
- Peopleware: Productive Projects and Teams
- Programming On Purpose III: Essays On Software Technology
- Programming Pearls
- Rapid Development: Taming Wild Software Schedules
- Refactoring: Improving the Design of Existing Code
- Rework
- Soft Skills: The Software Developer’s Life Manual
- The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
- The Clean Coder: A Code of Conduct for Professional Programmers
- The Demon-Haunted World: Science as a Candle in the Dark
- The Mythical Man-Month: Essays on Software Engineering
- The Passionate Programmer
- The Pragmatic Programmer: From Journeyman to Master
- The Self-Taught Programmer: The Definitive Guide to Programming Professionally
- Working Effectively with Legacy Code
- Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
Productivity and Personal Development
- This is What Happens When You Move Out of Your Comfort Zone
- What You Focus on Is What Becomes Powerful
- The Checklist Manifesto: How to Get Things Right
- How to Ask Questions the Smart Way
- How to Read a Technical Paper
Timeless Classics
- Bruce Lee: Be Like Water
- Are Your Exceptions Silent
- Execution in the Kingdom of Nouns
- Making Wrong Code Look Wrong
- The Best Code is No Code at all
- The Broken Window Theory
- The Joy of Deletion
- Up the tata without a tutu
- Why I hate Frameworks
- The Absolute Minimum Every Developer Must Know About Unicode
- The Joel Test: 12 Steps to Better Code
- Being Technically Savvy Isn’t Enough
- Don’t Be Afraid to Break Stuff
- Fail Early, Fail Often
- Egoless Programming, You Are not Your Job
- The Multitasking Myth
- The First Rule of Programming: It’s Always Your Fault
- Code Tells You How, Comments Tell You Why
- We Make Shitty Software With Bugs
Have Fun 📖
That’s all for now. Enjoy your bedtime reading list.
And until next time… May the source be with you 🦄.
Section Contents
▶ Resources Every Developer Must Read: No Exceptions