Ш is hard and makes next vowels more rough (if there is Я, Ё, Е, Ю or И):
- шапка (all right) — cap, hat;
- шаман (all right) — shaman;
- шатёр (all right) — (domed) tent;
- шишка (like a "шЫшка") — cone; bump, lump, knob;
- шёпот (like a "шОпот") — whisper;
- шесть (like a "шЭсть") — six;
- шустрый (all right) — agile, smart; quick, fast, rapid;
Щ makes next vowels more soft (if there is А, О, Э, У or Ы):
- щадить (like a "щЯдить") — to spare, to have mercy (on);
- щавель (like a "щЯвель") — sorrel;
- щепотка (all right) — pinch;
- щука (like a "щЮка") — pike; ling;
- щит (all right) — shield;
- щека (all right) — cheek;
- щупальце (like a "щЮпальце") — tentacle.
See the image. Щ turns the vowel sounds from top into low and Ш turns the vowel sounds from low into top. If to apply these letters to the vowels conversely then the vowel sounds are not change.
From my experience, along with qixyl's comment, ш is "sh," similar to the English "shushing sound" but significantly shorter. щ is similar, but with the tip of your tongue at the roof of the mouth, not flat out, but at the point like ballet shoes and high heels. This creates a soft "shi" sound.
Edit: not exactly a perfect point like ballet shoes, but actually with a little bit of flattening. There is just not enough room in the mouth for an actual perfect point.
That is only an approximation. Ш and щ sounds do no exist in English. You can produce Ш if you pretend you will say the English R, then say the "sh" of "shrimp", "shoe", "sheep", etc. Another way to see it is that the tongue should curl a little more towards the back of the mouth than where it is when you say SH in English.
I'm glad I looked at the discussion here, as otherwise I'd never have learned the spelling rule: "жи и ши пиши с и". It's a bit like what we learned in English concerning words like "ceiling" and "friend". It was "i before e except after c" ...but because it's English there are nice juicy exceptions like "weird" (maybe because of what it means)?!