I’ve just discovered ProgrammingBooks.org and I find it great. I’m impatient to start contributing to it as soon as they solve their user signup problem as it is not working well presently.
In the meantime, here are three books I bought relatively recently and which I find excellent:
The second edition of Programming Ruby is extremely interesting to read (the first version is available freely online). It describes the Ruby programming language of course as well as its standard library. Ruby is an extremely expressive programming language as it allows the programmer to solve complex problems very easily. I’ve already written about my fascination with that programming language. The metaprogramming aspects of Ruby will blow your mind away!
Linux Kernel Development fully describes (and explains the rationale behind) the various subsystems found in the Linux 2.6 kernel. It’s one extremely complex and specialized subject that has been made simple thanks to the pedagogical talent of the author. Incidentally, my students have indirectly benefited from that book in the sense that I know a lot more about the kernel than before. Consequently I regularly ask them to investigate sections of the Linux kernel (e.g. the scheduler or the process creation mechanism) and write reports for me…
The third book is also another book that I’ve read cover to cover. The Inmates are Running the Asylum has an obscure title (at first) and it’s only when the author explains its meaning that you realize that this book is a gem. The Inmates are us, programmers. And the Asylum is the software that we are always trying to write. The point is that we, programmers, design the user interface of a software in order to please us and not the real end-user. Consequently, the software becomes difficult to use for the majority and therefore is not successful. The author argues that one should always use a goal-directed design approach. Incidentally, the author is the creator of Visual Basic but he does not like to use it to design user interfaces… I’ve already written on that.