C : Gaby is written in C and this is the only language I daily use. It is certainly be possible to write plugins in C++ and it is sure you could write a plugin which would load and execute Python or Perl code (but this is another story). A side note about C : I prefer Linux Coding Standards to GNU ones; therefore : indent -kr -i8 *.c
GLIB : things like GString's and GList's are often used as well as some other convenience functions but you don't have to worry about GHashTable, GTree, ...
GTK+ : I'd say 'tutorial + testgtk' but this could be less, or more.
Gnome : may be useful in some cases.
Important: Memory allocations (malloc, strdup, ...) are done using the GLIB library (g_malloc, g_strdup, ...). This allows to call g_mem_profile to know about memory status.