I had a former colleague ask me the other day if he should learn Cantonese or Mandarin. He was going to spend a few months in Hong Kong and southern China.
Here are my opinions. I'm sure there are many who might differ but this is how I see it today.
Hong Kong is a tricky one. A large number of people there can speak Mandarin given the difficult relationship between "mainland" China and Hong Kong, even locals who can speak it don't treat you the same as if you speak Cantonese. Many just aren't happy about aspects of how China now runs Hong Kong. But the way that I see it, is that resist as they might, they will be "integrated".
In the meantime, and probably for another generation, Cantonese is certainly where it's at. Already though, China makes all children in Hong Kong learn Mandarin.
People don't seem to understand how determined the Chinese government is to achieve standardisation. In the end, it's the only way you can run such a large country without anarchy. They even have a single time zone for the whole of China. I can't see any chance of them supporting 900 or so dialects going forward. It would probably scare the Cantonese speakers today to think about it, but I think that eventually Cantonese will be like Aboriginal languages are in Australia: more of a curiosity. Clearly, that will take some time.
Personally, I wouldn't put any effort into Cantonese but you might decide differently if you are intending to be in a majority Cantonese-speaking country for quite a while. You certainly get treated better by locals if you use at least some of their dialect. Same thing happens in Shanghai. Add some Shanghai-ese into your Mandarin, and they are so happy.
Another thing I've liked about learning Chinese is that the writing system is essentially the same for all dialects. So even when I see signs written in Hong Kong, I can still read most of it. I have no idea what the words are in Cantonese (although I can easily guess some), but I know what the sign means, and that's what counts the most.
The challenge with Chinese reading and writing is simplified vs traditional systems. In the 1950's and 1960's, the Chinese government decided to simplify the writing system as they had so many people that were illiterate. So they took a bunch of characters and made simplified versions of them. The simplified ones are now used widely. However, once again, Hong Kong is a hold-out. Most people in Hong-Kong or Taiwan still use traditional characters. So there are some characters that I have to stop to try to work out what they are.
The younger people in Hong Kong are learning Simplified characters. Other countries like Singapore have standardised on Simplified. Even in the middle of China, however, there are movements to try to reinstate Traditional characters as they are seen as more meaningful. I can't see that prevailing and simplified characters will be the future.
Most older Chinese writing that I see in Australia is Traditional as many of the Chinese that originally came here did so from Hong Kong, and many came before Simplified writing was introduced. Most new Chinese that you see in Australia is Simplified. That's what all the Chinese tourists and students tend to use. When I ride the trains in Melbourne, I used to predominantly hear Cantonese. Now I predominantly hear Mandarin, largely due to an influx of people from other areas of China, and particularly due to younger students.
I've been using a variety of methods for learning Mandarin over the years. My main effort at present is to attend 3 x 1 hour one-on-one lessons from Hanbridge Mandarin each week. (http://www.hanbridgemandarin.com)
I've got other posts that I'll update soon, on the other methods that I'm using, but the online lessons (my current teachers are from ShenZhen) have increased my abilities the fastest of any method that I have tried.
And I just speak to every Chinese person that I get an opportunity to do so.