Friday, March 5, 2010

On "Is a computer science degree a good goal?"

Dan Fink's "Is a computer science degree a good goal?" has gotten my wheels going. I think it's important to note this:
Computer Science ≠ Information Technology
Not only are these two disciplines not equal, neither is a subset of the other.

One of my most memorable culture shocks coming out of school into the Oracle domain was how many people didn't understand the difference between computer science, which is a specialized branch of mathematics, and information technology, which is a specialized branch of business administration. They both deal with computers (the IT major more than the CS one, actually), so of course there's risk that people will miss the distinction.

Over dinner Friday night with some of my friends from Percona, we touched on one of the problems. It's difficult for a technical major in school to explain even to his family and friends back home what he's studying. I remember saying once during my senior year as a math major, "I haven't seen a number bigger than 1 since I was a sophomore." I heard a new one tonight: "I got to the level where the only numbers in my math books were the page numbers."

It's difficult for people who don't study computer science to understand who you are or how the min/max kd-trees and deterministic finite automata and predicate calculus and closures that you're studying are different from the COBOL and SQL and MTBFs and ITIL that the IT majors are studying. It's easy to see why laypeople don't understand how these sets of topics arrange into distinctly different categories. What continually surprises me is how often even IT specialists don't understand the distinction. I guess even the computer science graduates soften that distinction when they take jobs doing tasks (to make a living, of course) that will be automated within ten years by other computer scientist graduates.

I agree with Dan and the comments from Tim, Robyn, Noons, Gary, and David about where the IT career path is ultimately headed in the general case. What I don't believe is that the only career path for computer scientists and mathematicians is IT. It's certainly not the only career path for the ones who can actually create things.

I believe that college (by which I mean "University" in the European sense) is a place where the most valuable skill you learn is how to learn, and that, no matter what your major, as long as you work hard and apply yourself to overcoming the difficult challenges, there will be things in this world for you to do to earn your way.

I really hope that the net effect of a depressed, broken, and downward-trending IT industry is not that it further discourages kids from engaging in math and computer science studies in school. But I don't want for so many of our kids today who'll be our adults of tomorrow to become just compartmentalized, highly specialized robots with devastatingly good skills at things that nobody's really willing to pay good money for. I think that the successful human of the future will need to be able to invent, design, create, empathize, teach, see (really see), listen (not just hear), learn, adapt, and solve.

...Just exactly like the successful human of the past.


Anonymous said...

I was not aware of the different definitions for computer science and information technology. First I thought, it's because I'm not a native English speaker, but then I read your definition and realized that: All topics except for COBOL and closure are part of my study "Bachelor of Science in Information Technology" at the University of Applied Sciences in Bern (Switzerland).
For me it looks like not all Universities or Countries separate this two studies. What do you think about this fact?
Nevertheless, I completely agree with you, that learning how to learn is the most important thing, when studying.

Joel Garry said...

You appear to have an extra space at the end of the link to Dan's blog.

I guess that puts me deep in the IT camp! :-)

word: messpl

Thomas A. La Porte said...

Cary, I always appreciate your insights, on matters technical and philosophical. In this post, I think your final two paragraphs nicely sum up the benefits of a classic liberal arts education.

Cary Millsap said...

@Joel, thanks for the heads-up on the link botch. I even noticed that %20 at the end but shrugged it off. Fixed now.

@danirey, I believe you. I shouldn't be surprised that different programs partition their subject matter along different boundaries. I'm glad if the IT program you're describing has theoretical material in it.

@Thomas, I think the final two paragraphs can be interpreted in just about as many ways as there are people willing to read them. I've known people who have contributed and earned very effectively from just about every college discipline you can name, including people who have bypassed "higher education" altogether. And I've known people who have failed to contribute or earn effectively from all those same educational backgrounds. I'm convinced the individual person's goals and determination completely define the result.

jametong said...

I think what student can learn from school is only a base for their entire working career. The main they can learn from school is how to learn.As a proverb from our China is "The teacher can take you into the entrance,Learn how deeply is deeply depend on yourself". Besides,we can only learn few years in school,but we can learn our whole life out of school.

Cary Millsap said...

@jametong Yes, I admire that attitude.

Unknown said...

Thank you for this blog. I have been asked many times by friends whose children are about to enter college and are choosing which courses to take. Since I come from an IT background, I normally recommend taking a business course rather than computer science. As an employer, I also find that IT and business graduates perform better in an environment where the focus is on delivering mainstream business applications and solutions

Unknown said...

Learning how to learn (and think) is critical in college. I majored in Computer Science and am currently in a management position in a non-technical field. What I learned in school about Algorithms, Differential Equations, and programming languages has been extremely helpful in my current role because of the critical thinking skills those courses helped me develop. Thanks for your insights!

robert said...

I have a degree in CS from a German university. Although the focus was on topics you put in the CS bucket we also did hardware, SQL and other IT topics. I believe, nowadays with teaching of software engineering and more orientation towards practical subjects the balance is much better. What I intend to say is this: it's probably different all over this planet. :-)

Unknown said...

Hi Cary,

Great note!

The kids today want the paycheck, but getting a CS or IT degree is "too hard".

I have two kids in grad school, and neither of them wants anything to do with being a DBA.

ahmed said...
This comment has been removed by a blog administrator.
Massimo said...
This comment has been removed by the author.