(I'm going to repost the answer I gave for a dulilngo question of similar nature)
When you first encounter a foreign language, you also encounter sounds that you are not used to. That your ears aren't used to. At first, someone tells you that you said the word wrong and you get frustrated because you can't even hear the difference. Then you gradually get more exposed to the language and your ears learn to associate those strange sounds with speech. Exposure is key here.
The next step is to actually produce those sounds yourself. The problem: your muscles aren't used to it. After all, you have spent your entire life training them to speak your native language. Out of habit, they want to arrange themselves in a way they're used to. At the beginning, you have to force them consciously. Have you ever experienced, when you speak in a foreign language for a while, a feeling of the inside of your mouth getting tired? (It's a really weird feeling...)
Now the question is: how to train your mouth to produce sounds it has never produced before? Most people just stop at "this sound is like English... in the word ..." but this method doesn't always work, especially as sometimes there is no equivalent. Then, what's the alternative?
When I was learning how to pronounce Japanese, I struggled with /r/, /d/ and /h/, and it helped me a lot to be consciously aware of how exactly they are made. What I mean is the actual position of my lips, tongue and teeth in my mouth and the way the air was behaving when I was speaking.
First, this is what your mouth is made of:

Let's get a bit more technical. This is the terminology related to producing sounds when it comes to your oral cavity:

Let's get to the point. Many foreigners struggle with Polish s, ś and sz, and their "sisters" c, ć and cz.
For example, Polish sz is often compared to English sh /ʃ/ , as in sh
rew, and Polish cz to /t^ʃ/, as in chi
mpanzee,. But they're different. English /ʃ/ is made when the blade of the tongue actively touches the back of the alveolar ridge:

These kinds of sounds are called palato-alveolar, and aren't present in Polish. In English there are:
/ʃ/ sh
rew
/ʒ/ meas
ure
/t^ʃ/ chi
mpanzee
/d^ʒ/ lodg
er.
Polish sz is made when the blade of the tongue actively touch the front of the hard palate (post-alveolar):

Notice how the tongue behaves: it curves further back and is less "flat" than during English sh /ʃ/. This makes the sound harder.
/ʃ/ sz
częście, sz
ukać
/ʒ/ ż
aba, ż
eby, rz
eka.
Side note: sz
is voiceless (you use only your mouth, your voice cords don't vibrate), ż
/rz
is voiced (you use your voice cords).
Polish cz is produced when the tip of the tongue actively touches the alveolar ridge:

Notice how the tongue behaves: you touch just the tip a bit behind your teeth, when in case of English ch /t^ʃ/ the tongue is "flatter" and touches a little further back. Your tongue will be in the same position when you pronounce English:
/s/ s
nake
/z/ z
ebra
/t/ t
iger
/d/ d
og
/ɾ/ bett
er.
In Polish, your tongue will be in the same position when you say:
/t^ʃ/ cz
ekać
/d^ʒ/ dż
entelmen
/l/ l
al
ka
/r/ r
ak
So, to sum it up, when pronouncing Polish cz you set your tongue in the English s or z position and try to change the flow of air to produce the correct sound without flattening your tongue or moving it further back as it's used to doing during English ch /t^ʃ/.
Side note: cz
is voiceless, dż
is voiced.
The similar, softer equivalents of English sh /ʃ/ and ch /t^ʃ/ are Polish ś and ć. They are produced when the blade & center of the tongue actively touches the front of the hard palate (alveolo-palatal):

/ɕ/ ś
nieg
/ʑ/ ź
le
/t^ɕ/ ci
ało
/d^ʑ/ dź
więk
/ɲ/ ni
emodny.
Side note: the difference between ć
and dź
is that the first is voiceless, the second is voiced.
Even Polish s is a bit different and more "whistling", because in Polish you actually touch the tip of your tongue to your upper teeth and just behind them (as opposed to English when you only touch your alveolar ridge and leave your teeth alone):

Those consonants are called post-dental and include:
/s/ s
tały
/z/ z
mienny
/t^ɕ/ c
ały
/d^ʑ/ dz
won
I don't think English has them, except maybe when someone is trying to impersonate a snake...
Side note: the difference between c
and dz
is the same as that between ć
and dź
: the first is voiceless, the second is voiced. The same goes for s
(voiceless) and z
(voiced).
Some useful links:
Polish Alphabet & Pronunciation
Wikiversity: Polish language/Alphabet and phonetics
Wikibooks: Polish/Polish pronunciation
Forvo