<p>
You should do what you love, and you’re fortunate in that you’ll be able to find jobs doing it (MechE). Not everybody is so lucky.</p>
<p>
Programming is a valuable skill for any STEM major (at least) to have. You certainly don’t need formal academic training to learn to program, although as jwxie pointed out, taking formal classes can help motivate you if you find it hard to get started yourself. That being said, a full minor in CS isn’t necessary to learn to program, and a (decent) minor in CS will include lots of things having nothing to do with programming.</p>
<p>
It doesn’t hurt to plan early. You have lots of options available to you. Really, the sky’s the limit:
- BS in MechE
- BS in MechE w/ minor in CS
- BS in CS
- BS in CS w/ minor in MechE
- BS in MechE & CS (double major)
- BS in MechE & BS in CS (dual/double degree)
- BS in MechE w/ Master’s/PhD in CS
- BS in CS w/ Master’s/PhD in MechE
- etc.</p>
<p>Also note that there are some special programs scattered around at various places (mechatronics, robotics, etc.) that could synergistically combine elements of CS and MechE, and which might serve as very strong indicators of potential for jobs in both fields.</p>