When two words are written differently, have different meanings, but are pronounced the same, we call them homophones. When words have different meanings, but are pronounced almost the same with the exception of one phoneme, we call them minimal pairs.
|Differentiating ship from sheep can be as|
difficult as telling sheep apart.
Some of the most complicated minimal pairs for non-native speakers are those with similar-sounding (but not identical) vowels. While it is quite easy to differentiate between bat and cat, hearing the difference between feet and fit is much more difficult.
It's not just vowels that can be problematic. When consonants sound quite similar, like the letters b and p in English, you can often mishear or mispronounce them, like in the words tap and tab. The letters t and d can also be difficult to distinguish when speaking and listening to English, as in the words bat and bad, for example.
Making mistakes with minimal pairs is to be expected and it often doesn't get in the way of communication, which I believe to be the most important thing when learning a language. However, I can also imagine how it might be embarrassing if one of the words in the minimal pair is a curse word. The difference between beach and bitch and sheet and shit is a nightmare. Of course, there's also can't, which can unfortunately sound like a word I wouldn't dare to type.
Minimal pairs can also be very problematic if the differentiating phoneme doesn't exist in your language. This usually means that you will find it difficult to either hear the difference or to pronounce the difference when you're speaking.
Sadly, I don't think there's a quick fix to getting minimal pairs right other than practice. However, there are a number of useful resources and websites to help you along the way, such as www.shiporsheep.com, which is one of my personal favourites.