In my opinion these are best two books on the subject. Stevens' book is classic and have been updated quite recently (3rd edition came out 3 years ago), LPI is very extensive and have some specific Linux info not present in Stevens' book and is clearly influenced by Stevens book.
How strongly do you recommend these books? Unfortunately I'm a college student without much cash to toss around, but I can scrape together enough for a book if it'll make me a better programmer in the long run.
If you want to learn what's one layer beneath the hood of most higher-level language environments, they are well worth the investment. And IMO this stuff is worth learning. One day, you will be glad to know it when you use strace to successfully debug why your application doesn't work, while the rest of your coworkers tear up more code in befuddlement :-)
The Linux Programming Interface: http://www.amazon.com/Linux-Programming-Interface-System-Han...
Advanced Programming in the UNIX Environment: http://www.amazon.com/Advanced-Programming-UNIX-Environment-...
A not-too-distant third choice, Linux System Programming: http://www.amazon.com/Linux-System-Programming-Talking-Direc...