One big reason is that the English language actually stems from several other languages. Each language has its own pronunciation and spelling rules, so children have to learn more than one sound for many letters. Think about the letters ‘ch’. What sound does it make in the word 'chip'? What sound does it make in the word 'chord'? What sound does it make in the word ‘charade’? These two letters, when put together, make different sounds because ‘chip’, ‘chord’, and ‘charade’ originate from three different languages.
The most basic words in our language stem from Anglo-Saxon. These consist of many of our everyday words (baby, chip, dog), as well as words that are considered sight words ('said', 'what', 'the', etc). Many sight words do not sound the way they are spelled, and they are in even the most basic picture books, so it is important for children to be able to read and spell these words at an early age. Compound words, such as 'flashlight' and 'firefly', are also Anglo-Saxon.
A large chunk of our language originates from Latin. These consist mainly of words that have prefixes, roots, and suffixes, such as 'attractive' ('at' is the prefix, meaning 'to', 'toward', 'tract' is the root, meaning 'to pull', and 'ive' is the suffix, meaning 'causing', 'making'). In essence, the word ‘attractive’ means ‘causing to pull toward’. ‘Chord’, mentioned in my above example, is also Latin.
Yet another language that we get some of our English words from is Greek. Many of our math and science words are Greek, such as ‘photosynthesis’ and ‘graph’ (‘ph’ is a Greek grapheme).
Then there are the languages that we "dip" from. Some of our words, such as musical terms, are Italian. Some other words are borrowed from French (‘charade’) and Spanish. See below: