Yes, to the OP, if I was going to learn to program for Linux and you already know how to program in at least a couple of languages, then I would go over to www.waysmall.com and buy a gumstix. Then have a ball developing some embedded apps. You can practice your C/C++.
I developed some embedded apps for microcontrollers with C++ and with the speed of the processors compared to the speed of the world around them, the overhead isn't too significant (unless you are dealing with large amounts of data, like vision). We used gcc and with the right optimization settings, you can get a simple Hello World down almost as small as the C version. However, russotto is right, anything with templates (which of course includes STL) will bloat your code (we had more trouble with memory than speed). BUT, with the rapid developments in onboard memory in the microcontrollers, this may be a mute point now and in the future.