I understand the theory of mining, blocks, secure wallets, etc.-- but do I? What are the "transactions" that I'm mining?? My program is searching what? And I am rewarded bitcoins for my mining BUT who do I benefit by this mining?
I cannot comment, so i will try to give a high level answer
you are mining "our" transactions: verifying the signature, checking if it's valid inputs that are in the current unspending transaction output set.
You benefit us as bitcoin users by verifying the validity of transactions, and your work makes it harder for an attacker who troes double spend.
What are the "transactions" that I'm mining??
Bitcoin is a currency so it is used for payment. People use bitcoin to pay for goods and services instead of using $ or EUR, or just transfer bitcoins to someones account for 'real' money. Each payment (bitcoin transfer from account to account) is done in transaction. For transaction to succeed it must be validated and included in the block and pushed onto blockchain (in other words mined). So you are mining other people's transactions.
My program is searching what?
Check What exactly is Mining?
And I am rewarded bitcoins for my mining BUT who do I benefit by this mining?
As said above for other's people transactions to succeede they must be mined by someone, so you are helping them in making transactions.