Why does a keyboard have two shift buttons?

The keyboard has the two "shift" keys because we use them to reach upper case letters (and other "upper" characters), and we need to reach upper case letters using either hand. A finger on the hand that is not typing the letter will be reaching for the "shift" key to bring up the upper case letter. The characters @, # and $, and ^, &, and *, are all reached using the number keys in combination with the "shift" key. For the first three, the left hand is typing the character while the pinkie finger of the right hand is using the "shift" key. For the latter three characters, the right hand is typing them while the pinkie finger of the left hand is using the "shift" key.