If you want to start Linux application development for the Linux desktop, first of all realize principles for the programming are the same, whether it is developing a Linux application or a Windows application. If you have a little bit of programming experience, then you already know most of what you need.
If you want to work with Java, then you are already ready. The development environment and the codes are the same (this is why Java was developed.) and you can just download your favorite IDE and start working. If you want to work with C/C++, then you should check some documents on the Internet to see the differences for programming Linux. Again, the basics will be the same, but there will be some minor issues here and there.
Besides Java and C++, you have Perl, Ruby, Python and -to some degree- BASIC. Once you have decided on the language, you need to select a library for the visual elements.