Resources.
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