Programming in Linux is not much different than programming on other platforms when you're on a high-level, which you are with C++. The language itself will work exactly like on any other platforms (if your compiler is standard-compatible), but each platform introduces some extra libraries (note: these libraries are not standard-C++-libraries) and it's here the differences are found. You'll have to find out what you want to do, then which library to use, and then use the documentation of the library. Most open-source libraries have tons of information and documentation available. If you want to get started with some advanced Linux programming, I've found a
link from my bookmarks which you may like. You can get the whole book for free.
You've two primary options when you're going to choose a GUI toolkit (library for GUI-programming) You can either choose to use the interface your desktop environment/window manager offers you (if it offers one), if you want to program for a single desktop environment only; or choose a toolkit which offers you functionality for multiple environments, without you'll have to think about which environment you're programming for. You can find many toolkits around on the internet, but the two I've liked the most is the toolkits
wxWidgets, and
GTK+. Both has language bindings for multiple language, so it doesn't require you to use C++.