This is one of the guides which has been written as part of Linux Documentation Project. The current URL is:

The essential guide for getting to grips with programming on Linux.

Kudos to Sven Gold, Sven van der Meer,Scott Burkett and Matt Welsh for taking the time to write it.