I have both MechE and CS degrees. The big difference I see is that MechE is one course that builds on top of another on and on. Quite a rigorous progression that is hardcore on math and physics. To self teach MechE you have to work yourself through that progression which is a huge commitment.
OTOH what most people consider “CS” is more like “the ability to program”. You can get competent enough to be dangerous with a few classes and side projects.
Note that isn’t actually being competent at CS - that is quite a lot more work which just isn’t needed in practice for a lot of work that needs done.
I've heard the saying: Any idiot can make a bridge stand up. It takes an engineer to make the bridge barely stand up.
I want a class on making the bridge stand up for idiots (like "let's write this bridge in python, and build it with cob"). I don't care if I spend twice as much on wood and hay and mud or titanium or whatever. I live in the SF Bay Area, so I can't afford the mechanical engineers I can actually hire to design my crappy little bridge, and the ones I can actually hire are incompetent. Also, I don't want to buy more tools.
(To be clear: If you're a MechE in the SF Bay Area and reading this site then I can't afford your time.)
Love that! Reminds me of playing Civilization games. Sending in my catapults to smash the enemy city to pieces! I always tried to time the discovery of mathematics with transitioning my economy to a war footing!
Look around at the scout troops near you; it is possible that a scout is building a trail bridge for their Eagle scout project. Volunteer with the troop and you've got your class.
While I agree with that I think one glaring difference is also the money. To really learn you want to test out different designs and stuff. For MechE, this can cost A LOT. For example to build a complex device that does something interesting the prototype parts can easily costs as much as a capable laptop or more. And the first one probably won't work ...
Still, it's a shame I think that the open source community is so week because there is very advanced software out there, e.g. France has open source SW that was used to design nuclear reactors. But the community is just not there.
Programming might be what people think of with CS, but what separates a coder from someone more like a software engineer is algorithms, data structures, OSes, and networking. Once you get past toy problems, you'll have to work with all of those. That said, I agree that none use particularly hardcore math day-to-day.
OTOH what most people consider “CS” is more like “the ability to program”. You can get competent enough to be dangerous with a few classes and side projects.
Note that isn’t actually being competent at CS - that is quite a lot more work which just isn’t needed in practice for a lot of work that needs done.