Few English words are spelled phonetically, making it difficult to learn how to spell correctly. Some reasons why English spelling is so difficult may be:
English is a mix of several languages, and people would sometimes use the same words, but with different pronunciations. As dictionaries did not exist, people that could write spelled words however they wanted.
An English peasant hearing the French word ‘couvre-feu’ would write it the way he pronounced it: ‘curfew’.
Some scolars were ashamed of English’s vulgar and uncultured origins, and tried to make it look more like latin. This could explain the presence of some silent letters, like the B in ‘debt’. It was added to make the work look more ‘Latin’, and was never pronounced.
When the printing press was invented, the men who used to put the letters into the presses (typesetters) were not only foreign immigrant workers (Dutch) but also they were paid by the number of letters they used. It was in their best interests, therefore, too add letters to words! This may explain (but is not sure) difficult words like ‘through’, ‘thorough’, ‘taught’ etc, although it’s more likely that they are variants of Germanic words that actually had the ‘gh’ pronounced (‘ch’ is quite common in German).
Please don’t take these explanations too seriously, they are just things that I have heard but I haven’t done any real research into the subject.
The video above is a good general guide. It goes a bit fast, so use the pause button and take a few notes!