I don't know if things are different outside of Canada, but isn't this precisely what a computer engineering or software engineering diploma is for? That's what I'm doing and it's definitely different from CS - very applied, a lot of low-level programming (assembly, VHDL, embedded C), making a game with Java calling C++, source control is always used, etc.
Software Engineering is more of what Joel is describing, and more schools are starting to offer it as a major, with as much focus going to various project management methodologies as algorithms and data structures.
Personally, I was already a programmer when I took my first University CS courses and realized quickly that while I love programming, CS isn't where my interests lie. I took the CS courses that were most relevant and wound up getting a business degree.
I do wish there were more programs available serving the middle ground between the v-school ghetto and the ivory tower.
I agree, it is possible to be a professional software engineer without a CS degree (some of the best fit that category), but that's a non-traditional road. More to the point, it's exceedingly rare for someone to intentionally avoid earning a CS degree if they plan, prior to attending college, to become a software developer.
> ...nor good computer science programs.
This may well be true, and that is pretty unfortunate.But, frankly, if all you want a job developing software, I'd suggest interning instead of getting a degree. You'll certainly be more qualified than your peers for most jobs four years on.
And, for what it's worth, I'm currently hiring for a Jr Developer. I want someone smart who we can train. A CS degree wouldn't hurt, but it's certainly not a prerequisite.
Any (career?) suggestions in general? I have a strong background in CS (I made prodigious use of ocw.mit.edu), and I feel competent at a practical level.
At this point, I'm just trying to pick a particular language to master while learning something esoteric on the side.
The vast majority of computer science students pursue a CS degree because it has become a prerequisite for being a professional software engineer. NOT because they have a desire to become a computer scientist.
The simple fact is that if you do not have a 4-year college degree you will find it immensely harder to work as a software engineer in the industry. It's silly to pretend otherwise.
The vast majority of today's CS programs do a disservice to all of their students. They are neither good engineering programs training students for industry (for which they currently serve as a proxy) nor good computer science programs. A recently minted graduate of a Chemistry or Physics program (from an accredited US 4-year college program) is, on average, much more versed in the relevant scientific findings and research techniques of their field than a CS graduate. They are so poor precisely because the vast majority of CS graduates do not go on to do CS research or utilize their CS knowledge but instead become software engineers.