For those of us who insist that Cantonese is a very difficult language and impossible to learn in a few months, I offer to you this observation: Indonesians who work in HK as maids to the locals train only three months in Cantonese and are then deployed to HK to work. Three months! Sure their accent is off here and there and they have no idea with most of the idioms, but they get by just fine.
On the other hand, the Filipino maids would be in HK for over a decade and still speak hardly more than a few words in Cantonese.
What's the difference? It's not time spent in HK. It's not education. More Filipino maids are college graduates than the Indonesians. It's not the population of the locals they interact with. The answer is it's the lack of choice: The Filipino maids speak English, whereas the Indonesians don't. They have no crutches that help and at the same time limit them.
FWIW.
Immersion is always the best way to learn, but that not usually a realistic option for westerners in hk. work is usually in native language/english, and outside of work will be very difficult considering the amount of english spoken here.
Filipino maids who work for a non english speaking family pick up just as much cantonese as the indonesian maids. To clarify, these maids learn about 300 words related to shopping, cooking, and cleaning. They speak almost exclusively to either old people, children, or shop keepers.