So I'm done with my school obligations for the day (finally) ... and as usual, I'm too tired to do much of anything else.
Work tomorrow, which means more hacking on Java software. (Yuck.)
It's funny ... I spend all this time learning about computing theory, math, chemistry and whatever else, yet the vast majority of the software out there is relatively "boring" by comparison -- sure, you have the occasional Fast Fourier Transform, but for the most part, the "important" things in software are things like scalability, usability, etc. Chemistry is largely irrelevant as far as software is concerned. Of course, there are software applications inside the field of Chemistry, but as a general rule, I don't need to know Chemistry to write good software. Calculus is the same -- it's useful for certain things, but not data-structure-like things. Computers just aren't continuous, and trying to get them to operate on real-world data in a continuous (as opposed to discrete) way seems ... well, it seems silly. Like, pound-in-screw-with-hammer silly.
They do teach us about efficiency (for things like scalability) ... but they don't go into a lot of depth beyond, "this is big-O notation (or whatever notation -- there are six of them, I think), and here's how to evaluate the theoretical efficiency of an algorithm". They never discuss profiling, for instance.
Profiling tells me things like the fact that my graphics lab spends almost 30% of its time in std::set::find(). That, in turn, tells me why my program is so damn slow. (I think I'm going to try an std::list instead and see if that helps. A set is probably overkill for a collection of only 8ish items.) This is something I never would have figured out without the use of a profiling tool. I didn't learn about profiling tools in school, either -- I learned about them (as I learn about so many things) in the open source world.
Anyway, that was a bit of a digression. The point is, it seems like my time in school could be better-spent learning all those things I've had to pick up on my own (of which profiling is just one example -- I count Perl and autoconf/automake in that list as well).
I can see why they teach GE classes (I'm lumping anything not-Computer-Science in the GE category). But ... seriously, what's the point of learning this now, if I'm just going to forget it all after 6 months of working in an entirely unrelated field? OK, I've been "exposed" to it ... that's great. (It's especially good for people who--unlike me--don't know what they want to do with themselves.) But being "exposed" to something is a far cry from having actual, useful knowledge in that subject which allows you to get work done.
I'm sure countless students before me have complained about this, and it's quite possible that countless more will complain after I'm long gone. And I'm sure there's probably a "good" reason (for some arbitrary definition of "good"). But "there must be a reason" (or, "Because I said so", coming from a prof/admin/industry person) isn't an acceptable explanation.
...on an entirely unrelated note, I really hope my ear infection isn't resistant to antibiotics. Although it's starting to act like it might be -- it died away for yesterday and most of today, but it kinda feels like it might be coming back. Not good.