The zh, ch, sh, r, q, x and ü sounds
Pinyin uses the Latin alphabet, which is exactly why it catches people out: plenty of familiar letters stand for unfamiliar sounds. The letter c sounds like a breathy ts, q is close to an English ch, made with the tip of the tongue tucked down against the bottom teeth and the lips spread, and x sits near a light sh. For the retroflex group zh, ch, sh and r, the front of the tongue lifts and bends a little backwards, toward the hard palate. For ü, the lips round as if to whistle while the tongue stays where it would be for i.
The trouble lies in near pairs. The j, q, x series sits close to zh, ch, sh, and z and c sit close to zh and ch. Learners tend to collapse each pair into whichever sound their first language already has, so 四 (sì, four) and 十 (shí, ten) end up sounding identical to a listener. One spelling rule adds to the confusion: after j, q, x and y the two dots over ü are dropped, so ju, qu and xu are still said with rounded lips.
Practice works pair by pair. Say zi, zhi, ji, then ci, chi, qi, then si, shi, xi in front of a mirror while watching the lips, then record the set and compare it with the audio from a pinyin chart. Aspirated sounds (p, t, k, c, ch, q) can be checked with a tissue held in front of the mouth: it flutters when there is enough breath and stays still for the unaspirated partners b, d, g, z, zh and j. The sounds are settled when a learner reads a new pinyin word from the dictionary and matches the audio on the first try.
Drill pinyin in pairs of similar sounds, with a mirror, a tissue and a recording, until zi, zhi and ji are three clearly separate sounds.