I'm perfectly OK with a non-compete agreement... as long as it pays me for my downtime. You think the information in my head is so valuable that you don't want me working for a competitor for three years after I leave? OK, pay me for three years. It's not worth that much to you? Well, how much is it worth?
How would you determine the cost of your downtime? If you're assuming that all you're going to do after you leave a company is become a wage slave at another one, then getting paid the same wage for a few years might be enough to compensate you. However, if you really aspire to start your own company that might become hugely successful (e.g. the next Facebook or Google), how would you be compensated for that? The poi…
If you're a programmer and are prevented from getting a new job right now, when it's a seller's market for talent, then you might be in a much worse situation in a year if the market changes.
Even getting 100% of your wage for that year could be a terrible deal.