Starting Linux for a Programmer

Hi all
I am application Programmer.
In my college(2 yrs back) i have learnt Unix i.e commads, shell scripts, Filesystem,I reffered to a book by "Sumitabha Das".
I want to learn Linux.
But i cant understand where should i start from and which book to refer to.
Most of the books these days eg. Ubuntu explains you the Interface and various tools that are available.
But i want to Learn Linux from a Programmers point of view,understand the details of the System.
Please let me know if you are familiar with a nice book or any other reference from where i can start.

I'd recommend Linux From Scratch. It's something between a distribution and a book, but it certainly won't go easy on the learning curve.

I'd advise to use some distribution for advanced users (ArchLinux or Gentoo) to force yourself to use text configs and quickly understand system components.

If you'd like to know how does the kernel work: check Linux Kernel Development, by Robert Love.

And last thing is just to write a code for Linux.