Computer Science Curriculum in College
Ludwig Feuerbach writes "As it's back to school for university students, including Computer Science undergraduates like myself, I look at my course schedule for this semester and I have courses with titles like: Theory of Computation, Numerical Analysis, Artificial Intelligence, Machine Learning, and History of Economics from Plato to Keynes. The first 4 courses are required in my CS program. I had thought nothing of it until I read an opinion piece by Dan Zambonini, who stresses the type of courses I'm taking are, essentially, useless for getting a job. He lists several CS courses useful for a job. Is he right? I tend to think that an university education should stress scientific topics over vocational ones, but since I'm just planning to get a job after I grad, am I in the right program?"
I never understand why people pay so much attention to articles like this. Dan Zambonini runs a small company that nobody has ever heard of which makes a content management system used by a bunch of people you've never heard of. I suppose that's a little better than Joel Spolsky, who makes software that *nobody* uses, but these guys really don't have much of a clue what kinds of jobs are out there in the companies that, you know, you may have heard of before -- they're too busy running their garage operations.
I've talked to recruiters from companies like Google, Microsoft, Symantec, etc. and while they do want someone who can actually sit down and write a program, if you are going to write software you are going to need to understand things like analysis of algorithms or else you are going to end up putting bubblesorts into production code and leaving users wondering why your search feature takes so much longer than your competitors'.
Of course, if you want to work in the database department for a large company and write software that moves tables of numbers around and is never seen by the outside world, then by all means go into MIS. But if you, like most aspiring programmers, want to release software onto the general market and you want to write something other than very basic utilities like "Windows Power Tools" or "Texteditor Extreme 5.3," you are going to have to have a foundation in computer science and a whole bunch of math.
I used to read Caltizzle. I was a lot cooler than you.
Geez, relax Mr. CS..
No, he doesn't. He specifically said he wants the "knowledge to see quickly if the standard Java libraries have this structure already built".
Okay I skimmed that part - however I've run into a bunch of newbie grads (myself included) who were all foaming at the mouth to reinvent the wheel when it comes to data structures and sorting algorithms. However, it would be far better in 99.99% of the cases to use the existing implementations (designed by CS brainiacs at Sun) or at least code to an appropriate Collection interface. And as for sorting, implement the Comparator interface, etc.
This is far better than finding some one-off MyDataStructure.java in your product's code-base, no matter how elegant it is.
Professional software engineering != computer science
Your hybrid is not saving the environment. Its purpose is to make you feel good about buying something.