English is a frustrating language. There are no ways around it.
It is difficult to learn and learning how to read/write in an entirely different issue than learning how to speak it. One of the most frustrating parts is that there is no one-to-one sound-letter correspondence.
What I mean by this is that the sound (aka phoneme) and letters (aka graphemes) do not always match. I often hear complaints such as, "I thought 'oo' means a long-o sound."
A notorious example of this is "ghoti", which can be a far-fetched way to read "fish".
ghoti = fish
*yup, you read that correctly
Here's how it works.
gh, pronounced 'f' as in cough or rough
o, pronounced 'ih' as in women
ti, pronounced 'sh' as in nation or lotion
Now obviously, this is an extremely exaggerated example. gh=f only at the end of a word after ou- or -au at the end of certain words. ti=sh only in the middle of a word if followed by -on or -al. The point is that you cannot depend on the way things are spelled to know how to pronounce it (unless you are relying on the international phonetic alphabet).
This brings us to homophones. Homophones are two or more words having the same pronunciation but different meanings and spelling. You will continually need to pay attention to how people pronounce their words to figure out what words are homophones because spelling is not always reliable.
Check out a few of the following homophones below.
Zimmer, B. (2010, June 25). Ghoti. The New York Times Magazine, p. MM14. Retrieved from http://www.nytimes.com/2010/06/27/magazine/27FOB-onlanguage-t.html?mcubz=0