The following is a short collection of software related books I've read that I would recommend to others.
The Pragmatic Programmer
The Pragmatic Programmer</em> outlines the characteristics of a pragmatic programmer: fast adapter, inquisitive, critical thinker, realistic, and a jack-of-all-trades*.
The Cathedral and the Bazaar
An essay on software engineering methods, based on the observations of the Linux kernel development process and the experiences managing an open source project, fetchmail*.
Clean Code describes how to differentiate good code from bad code, how to format code for maximum readability, and how to chose descriptive variable, class, and function names.
Don't Make Me Think
Don't Make Me Think is a book about human-computer interaction and web usability. The book's premise is that a good software program or web site should let users accomplish their intended tasks as easily as possible*.
Design of Everyday Things
The Design of Everyday Things is about the design of simple objects, and why some objects please their users while others frustrate them.
Advanced Linux Programming
Advanced Linux Programming goes into depth on writing software for the GNU/Linux as well topics such as processes, threads, and interprocess communication methods.
Make Something People Love
"So, you want to learn how to make a product people love--that’s great! But stop right there. Before you can make something people love, you have to make something people want."
Presentation Zen illustrates to readers there is a better way to reach the audience through simplicity and storytelling, and gave them the tools to confidently design and deliver successful presentations.
The C Programming Lanuage
Written by the developers of C, this manual shows readers how to take advantage of C's rich set of operators, economy of expression, improved control flow, and data structures**.
Understanding the Linux Kernel
Understanding the Linux Kernel takes you on a guided tour of the most significant data structures, algorithms, and programming tricks used in the kernel**.
* credit: Wikipedia
** credit: Amazon