Apparently i still don't understand mining. Isn't mining finding the nonce for the next block and that nonce is dependent on the previous block? So as soon as there is a new block, nonce searching has to start all over?
The search space for a valid block is effectively infinite, so you have no "progress" to lose.
More newbie questions... Does everyone have the same transactions? Why do we have different merkle roots if we have the same transactions?
I wish everyone had the coinbase transaction that pays to my account like I do. But other people insist on sending the mining rewards to their accounts. Also, miners include some randomized information in the coinbase transaction that acts like an extra nonce. Everyone has basically the same transactions (not including the mining reward transaction) but pool operators and solo miners can pick and choose which transactions to include.
As a miner how do I get transactions? How often will I get more transactions?
People who want their transactions mined into blocks broadcast them over the Bitcoin network. You'll get a constant stream of transactions as they're created.
Do I have to recompute the merkle root each time I get a new transaction and then restart the nonce? This sounds like a job for Sisyphus.
No, you don't have to. You might want to if the transaction fee is significant. You'll have to compute a new merkle root when you run out of nonces to try anyway, so you might as well include any new transactions with non-zero fees if there's room.