I am willing to start building some application for Ubuntu distribution of Linux. I am a Java developer and mostly deal with enterprise systems and some small website with PHP in my free time. I am willing to create some desktop applications for Ubuntu that I feel they are going to be useful but I don't know what programming language and how to it, can someone provide a guide on how to start ?
If you're looking to build GUI applications for the Ubuntu desktop, I would suggest you start by looking into the Qt Framework. Qt is cross platform, and also has the benefit of serving as the underpinning to the Ubuntu SDK.
Unfortunately, as you're a Java developer I'm not sure how you can write Qt in Java. There used to be a project called Qt Jambi, which provided Qt for Java. I believe it is now defunct. Perhaps someone else would like to comment on that. Qt does provide a number of other language bindings if you're willing to switch.
If you want to continue to use Java, perhaps you could look at Gtk as an alternate to Qt. Gtk has java-gnome language binding for Java which appears to be still in development.
Use Python! It's concise, and included as part of the platform. Many apps and tools are written in Python. You might start with this https://developer.ubuntu.com/en/desktop/examples/#snap-python. The advantage of this is that it will get you set up in launchpad to distribute to participate in the community and distribute your code. You might also read this question: Developing Unity compliant apps in Python - where to start?
For GUI API's there are many. Check out freedesktop.org and read about the difference between GTK, QT, KDE, Gnome, and Unity Desktop. GTK and QT apps run on any linux distro with those libs installed.
Java build once run everywhere. C The implementation of C++ in Linux.
But seeing as you already know Java, that is where I would start. With a java background C++ should not be too hard to pick up (I understand, but Watch out of garbage collection)
Chris