One thing that was noticeable was that most of the books were not strictly about software development. That is because although technical proficiency is necessary to software development it is not sufficient. There are many other skills necessary to software development that if done poorly can greatly reduce the chances of a successful outcome to your software project and by successful I mean producing a product or service that is valuable to the stakeholders.
One of those areas of concern is a cluster of overlapping disciplines variously called User Experience, Interaction Design, Usability or Human–Computer Interaction. Which brings me to number 2 on my book list.
This book blew my mind when I first read it. Don Norman highlights the importance of good design by showing how frustrating and counterproductive bad design can be. And how in contrast good design enhances our experience.
He tells an anecdote of sitting outside a bank watching as customer after customer struggled with doors that had been designed to be pretty rather than usable. He shows how the user's internal mental model of a product determines the expected behavior of the product. If that expected behavior differs from the product's real behavior, it can cause usability issues.
He also gives many examples of affordance showing how a well designed door handle will make it obvious which direction the door needs to be pushed or pulled to be opened While a badly designed door may leave the user confused about which side the hinge is on and which side should be pushed.
He also shows examples of the Japanese concept of Poka-yoke or mistake proofing (a concept that predates the book by 40 years) describing cables that can only be inserted the right way or toys that can only be assembled the correct way.
Although the book discusses physical products, the principles apply equally to software whether it is the form of a traditional desktop application, website or mobile app. Given how frustrating many applications, apps and websites can be, a greater focus on design can only be welcome. This book changed how I approached software. While it was my first design book it was not my last. Other design books I would recommend would be -

This was another book that just blew me away when I first read it. Tufte's examples of charts and maps are just amazing. His advice about de-emphasizing what he termed administrivia and emphasizing the data was eye opening. As was his discussion of the differences between lines and boundaries.
This book had and still has an enormous influence on how I design software.

The title says it all. Making the case for being clear, simple and obvious rather than being cute and clever.
The book mentions affordance and mental models and many other concepts that are also in The Design Of Everyday Things, but it is a far easier read and the examples are related to websites rather than physical products. The book is a demonstration of the principles it advocates, being an example of clear, easily understandable communication.

One page of text and one page of illustrations for each of these principles, concepts and tips. This is a collection of bite sized nibbles rather thn a hard to digest meal. It gives you a lot to think about and reenforces many of the same concepts as the other books in this list.

Gives a framework for using visual thinking and freehand sketching for ideation and communication. There are lots of tips and tricks on visually presenting information, on sketching, visually modelling and organising information to provide clarity.