The way you're phrasing things is inviting a pissing contest where it's unwarranted. A proper CS degree and a proper CE degree do not differ that much in their mental rigor. The former is higher level than the latter, but for the most part it's turtles all the way down. CE certainly gets messier where physics get involved, but it's not fundamentally a different kind of thinking from software engineering, you're just operating at different level of abstraction where the constraints are different.

Saying that CS is about "this is the best way to code this type of algorithm" is insulting. CS is not about coding at all actually. It's more about "these are the best known algorithms for solving such and such mathematical problems". The coding part is what you figure out on your own in the labs. There is a significant machine architecture component as well, where you learn how the mathematical models map to physical hardware, and what your constraints are.

> I feel it's that very ability to piece all of that knowledge together on our own while forming highly complex (and scalable ;)) systems that separates C.E. from C.S. Note that separation does not imply one is better than the other, only different.

So what is it that you think software engineers do? Retype BASIC programs out of Byte Magazine? You disingenuously state that you're not making a value comparison, yet that can be the only purpose of such a god-like description of the field of CE "in comparison to" but without a description of CS.

> And another personal example, I've designed a web-based multidimensional database application framework that allows me to create nearly any web app within minutes to days (depending on the scope)... highly scalable... and the database is entirely of my own design, works flawlessly, and benchmarks put it ahead of mysql. Again, this isn't a competition... I'm just proving a point that I didn't need 20 years of education... just needed a mental map of a computer's internals. Because specific theories have not been ingrained into my head (just cold hard facts)... I'm able to think outside of the box and sometimes (definitely not every time!) design a better system with a little more effort (because I have to make it up as I go, based on the knowledge I have).

Wow. This is the height of hubris. Did you proof this? I have news for you; you are not making world-changing breakthrough software based on your intimate knowledge of hardware (if you are, by all means show us the code!). There is plenty to think about anywhere along the abstraction ladder, and the point where you hope to make a dent will get diminishing returns the further you move up or down the ladder—just ask the assembly programmer who got replaced by a web developer when the ROI for bit-flipping optimizations crossed over the very low threshold of having read Javascript for Dummies.

I dunno, maybe I just got trolled, in which case well-played. But if you really think this way you need to meet some world-class programmers and get some of your code reviewed to get some perspective on how "flawless" it really is.

If there's a salient point trying to claw its way out of your post, I think it's that there are more crap CS programs than crap CE programs simply because there's a market for crap programmers whereas hardware has to be reasonably well-engineered from the get-go since it's more expensive, rarer, and is created pretty much exclusively by companies for whom hardware is their core competency.