Here is a non-exhaustive list of books that have influenced how I think about software.
- RESTful Web Services - Leonard Richardson - THE book on REST
- Clean Code - Robert C. Martin - The book on how to write code sensibly, vital for new programmers
- 97 Things Every Programmer Should Know - Kevlin Henney - Tips and tricks, similar to Clean code but much more bit-size. Perfect toilet reading
- Don't Make Me Think! - Steve Krug - If you're going to be doing software development closely with UX people you need to understand what they actually do. This explains it in a very practical way, unlike the Design of Everyday things, which is a bit more abstract
- Agile Estimating and Planning - Mike Cohn - Understanding why we play planning poker, the principles of why agile ceremonies are the way they are
- The Lean Startup - Eric Reis - The importance of continuous deployment and experimentation based software development ('cause we do Alpha, Beta, Release, and release early and release often)
- Head First Design Patterns - Eric Freeman - Solid and simple reference guide for design patterns
- Exploring CQRS and Event Sourcing - Dominic Betts, Julian Dominguez, Grigori Melnik, Fernando Simonazzi and Mani Subramanian - Vital reading if you need to do anything more complicated than CRUD processing
- Domain-driven Design - Eric Evans - How to model business processes in software. "The Blue Book"
- Eloquent Javascript - Marijn Haverbeke - A comprehensive introduction to Javascript. EJ is also available as an ebook which includes inline examples and challenges.
- Head First Java - Kathy Sierra - A very user-friendly introduction to Java.
- Transcending CSS - Andy Clarke - Great book on CSS and web design.
- Web Development with Node and Express - Ethan Brown - Nice introduction to Node, Express, MongoDB and how they work together.