At least one of the reasons for a non-compete clause is to make sure you're not doing stuff on the clock for your employer, and then getting double-paid by a competitor for essentially the same end result but without the competitor having to pay for the whole process of getting that result. Like, if they're paying you to spend 40 hours a week learning about the key problems in their industry and designing and implementing solutions, and then a competitor hires you for 10 hours a week to re-implement those solutions (not paying for the learning/designing phases). So the competitor is getting the benefit of work you're doing that in some sense should belong to your main employer.
There might be something better than a non-compete clause for that sort of scenario, I just don't know what it is.