Another free book (OPL w/no options) I'd recommend is Advanced Linux Programming. It's provides a fairly gentle introduction to some of the peculiarities of developing for Linux-based systems (such as the difference between Linux threads and pthreads) and working with GCC et al.
If you're interested in learning new languages, you might take a look at the
"How to Think Like a Computer Scientist" series from Green Tea Press. They're
free-as-in-speech, licensed under the GNU Free Documentation License.
