Fog Creek Software
Discussion Board




Alternative degrees

I have a question regarding the debate on whether or not you should get a CS degree. How about degrees in other subjects? Is it possible that studying other subjects could be as useful for programmers as CS? I don't have an opinion, I'm just asking. A degree in any difficult subject proves you aren't lazy.
My degree is in linguistics because I think an understanding of how language works in general is at least as relevant to computer programming as mathematics. And if you consider math as a kind of language, then linguistics can actually help you understand math in general, as well as any form of information processing.
For example, Larry Wall's degree is in natural and artificial languages, so he is a type of linguist.
I had various other reasons for studying linguistics rather than engineering or math and CS (I'm good at language, not so good at math, soI got a linguistics assistanceship and therefore free tuition and a stipend).
I now have been programming as a job for 8 years. So would my resume be thrown out because of lack of a CS degree?
Are there others here with alternative degrees, and do you think it qualifies you as much as a CS degree?
I have tried to make up for my lack of CS education by reading CS books. I think I know a lot about the history of computers, how they work, and basic CS concepts such as data structures and algorithms. Although I've read a lot of Teach Yourself and For Dummies books, I also have some theoretical background.
In other words, I agree that a CS degree gives you some advantages, but there might be other ways to prove you're a good programmer.

PC
Saturday, December 14, 2002

Over the last 20 years I have worked with over 60 developers whose work I know sufficiently intimately to be able to judge their productivity and whose educational background I also know. Of these none of the top 20% have CS degrees but all of the top 20% (except one) do have degrees in something. These are mostly in physics or mathematics but the top all-round developer I have ever worked with had a degree in philosophy from a not so hot university. The one thing they had in common was that they pursued their degrees for the challenge, the insight and the knowledge they could acquire - not to 'get a job'.

Interestingly enough, none of the bottom 30% have CS degrees either - most of those have degrees in business, engineering, business college programming courses or nothing at all.

So you might say that requiring a CS degree gives you no more likelihood of getting a good developer but it does help you avoid getting a really bad one. If you are hiring for an entry level position looking for a CS degree might help but I don't hire entry level so it is a non-issue for me.

P.S. This is taken from my experience in the areas of scientific and business programming (no gaming, embedded, OS, etc.).

SM
Saturday, December 14, 2002

Linguistics, math, music, physics and cognitive science are all degrees that are well-regarded by many employers, especially when combined with your eight years of real life experience. You sound perfectly qualified to me.

X. J. Scott
Saturday, December 14, 2002

>>>How about degrees in other subjects? Is it
possible that studying other subjects could be as
useful for programmers as CS? <<<
This depends on your definition of a programmer. Most development programmers are creative and think; most big company maintainance programmers are drones. Also, what does CS teach you? You dont need a CS degree to program but it helps to at least have a technical/hardscience degree (and a name school matters) to get a job.

>>>Are there others here with alternative
degrees, and do you think it qualifies you as
much as a CS degree?<<<
I have a degree in mathematics and a degree in economics. Does this qualify me much as a CS degree, that depends on who is doing the qualifying.

B
Saturday, December 14, 2002

Follow up.
SAT scores matter more than a CS degree IMO.

B
Saturday, December 14, 2002

I dunno, but studies show that an MBA degree doesn't help your career at all (the real data doesn't start until the second page of this article):

http://www.business2.com/articles/mag/0,1640,41346,FF.html

J. D. Trollinger
Saturday, December 14, 2002

[SAT scores matter more than a CS degree]

Do employers ever ask your SAT scores?

PC
Saturday, December 14, 2002

Do employers ever ask your SAT scores?

Some do. Anyone can churn out a degree in 4 years from Diploma Mill University.

B
Saturday, December 14, 2002

Some of the guys I have interviewed with ask me about my non-CS degree (I have a BS in Mechanical Engineering). Even with 5 years experience, it kinda hurts.

Bob
Saturday, December 14, 2002

I guess I'm lucky, I have a BSEE degree and nobody has ever said a word about it once I switched to software.

Eric Moore
Sunday, December 15, 2002

So I guess music is out eh? :-)

Cheers,
BDKR

BDKR
Monday, December 16, 2002

It may be different here in Europe from the US, but most employers are more interested in your ability to do the job than what it says on a piece of paper.

So the more experience you have, the less the degree matters. So for entry level programmers, most jobs will look for CS or a degree with a significant programming element such as physics, maths or engineering. CS would certainly give you an edge as a graduate.

I think for experienced developers, the degree is far less important, but everything else being equal, an employer will probably pick the CS graduate.

I know quite a few developers who came from non-IT backgrounds. In most cases they started in a very different role, and got handed some minor development work, and gradually shifted careers.

James

James Shields
Monday, December 16, 2002

"So I guess music is out eh? :-)"

There are loads of programmers who are /were professional musicians.

Some people suggest the Godel/Bach theory that this is because musicians have a special talent for programming. Al Stevens, in "Programming from mystery to mastery" gave the more likely explanation why musicians such as himself were so common in programming. They got married, had kids, and programming was the only job they could get into that put bread on to the table.

And on a totally unrelated point, does anybody have the source code to the book by Stevens? The copy I have has it on 5 1/2 " floppy, and although the sysadmin at work has promised a drive lurking in the storeroom, it does seem a hassle to have to install it for one disk.

Stephen Jones
Monday, December 16, 2002

" My degree is in linguistics because I think an understanding of how language works in general is at least as relevant to computer programming as mathematics. And if you consider math as a kind of language, then linguistics can actually help you understand math in general, as well as any form of information processing.
For example, Larry Wall's degree is in natural and artificial languages, so he is a type of linguist."

This spiel might just work in an interview if the HR guy is showing signs of not being in the mood to work things out, but the truth is that all computer languages and natural languages have in common is the name. In every other respect they are antithetical.

In fact you could make out a good case for linguistics being useful training because it teaches you how computers DON'T work.

Stephen Jones
Monday, December 16, 2002

I have to disagree with you on that.

PC
Monday, December 16, 2002

stephen jones is missing the mark on this thread. linguistics and computer science have been closely aligned since computers came into being. 


Monday, December 16, 2002

philosophy degree makes best developers, seriously

wht?
Monday, December 16, 2002

Actually basketweaving is the real degree to get if you are truly serious about your work. Have you heard of DreamWeaver? One of our products. Or perhaps you are starting to learn about our latest creation -- Aspect Oriented Programming. It's coing to change *everything*.

Director of The BasketWeavers Guild
Tuesday, December 17, 2002

Can anybody tell me how natural language resembles computer languages in anything but name.

Sure, there's been a lot of comparative studies, but what have they yielded.

Remember all the AI work that went on trying to teach computers to play chess; thirty years work and more and by 1990 there still wasn't a program that could beat the average club player. Now they can beat the world champion but it was brute force that won the day; Moore's law not improvements in logic.

Sure linguistics can provide insights that may prove  useful, but so can any other field of human endeavour. And as far as Philosophy goes just look at the amount of Math in many philosophy courses.

Stephen Jones
Tuesday, December 17, 2002

All I know is that I headed off to art school and came out the other side with a programming job. It was offered to me not because I was an experienced programmer, but because (apparently) I showed great aptitude for it. As it turns out that was true. Five years later I'm still at it, and surprisingly enough... I like it! This statement "Most development programmers are creative and think; most big company maintenance programmers are drones" really appealed to me. As a development programmer, I am relied upon for my creative thinking skills, many of which I'm positive come from my art background.

SS
Tuesday, December 17, 2002

[Can anybody tell me how natural language resembles computer languages in anything but name.]

In essence they are the same thing -- information systems. It could be a hive of bees exchanging information about where to find flowers by dancing. Language is a system for exchanging information, and that definition holds whether the system is natural or created by humans.
It would be hard to go into detail about all this (want to read my thesis?). As a simple example, a command in a computer language causes something to happen in a particular context. Similarly, a statement in a natural language has intended (and unintended) effects in a social system.
The most notable difference between natural and artificial languages is that natural languages are horrendously complex while artificial languages must be relatively simple.

PC
Tuesday, December 17, 2002

My first degree was in art also and my first jobs were in art. I feel that programming is just as creative. One big difference is that I used to feel appreciated as an artist but now the only appreciation I get is the paychecks. People do not see or appreciate the creativity that goes into programming.

PC
Tuesday, December 17, 2002

" In essence they are the same thing -- information systems. It could be a hive of bees exchanging information about where to find flowers by dancing. Language is a system for exchanging information, and that definition holds whether the system is natural or created by humans."

When you reduce things to this level the similarity means nothing.

The bees dance is very like a computer language. It is giving clear unequivocal directions (based on relative postion to the position of the sun if I remember correctly). In each case it translates into a decision as to the way to go, and can be loosely compared to a computer language that will compile into a discrete series of bits.

Human languages are not just more complex versions of the same, as we could say that Visual Basic is a higher abstraction of Machine Language. They are a completely different ball game.

They are ambiguous. They are created by the user and change dynamically. You can't make malloc mean "allocate me only sixteen bytes" or "open me a new window", however much you use it in that context, but if a community of users use a phrase in a certain context then the meaning changes. If you want to simplify the number of classes in a computer language you can't just not use some and watch how others take over their place, nor can you make a computer language object oriented simply by starting to use it that way, but the grammar and phonetics of a language change precisely in that way.

Anyway, email us a copy of your thesis. We might disagree but we are still speaking the same language.

Stephen Jones
Wednesday, December 18, 2002

" People do not see or appreciate the creativity that goes into programming "

I agree 100%! I think it's mostly because they don't have ANY understanding of what we do.

SS
Wednesday, December 18, 2002

[I think it's mostly because they don't have ANY understanding of what we do.]

The other day a user told me he can't see why every time he requests something it's such a big complicated deal for us. All he wants to do is click a button and make something happen, after all. 

PC
Wednesday, December 18, 2002

[Human languages are not just more complex versions of the same ... They are a completely different ball game.]

Wrong. Human languages are logical and follow strict rules. They are not ambiguous. Yes every statement depends on context, but the same is true of computer languages.
The context of natural language is far more complex than of computer languages. And a natural language is an open evolving system, whereas a particular computer system might be closed and stable.

PC
Wednesday, December 18, 2002

"Wrong. Human languages are logical and follow strict rules."

A meaningless statement, and wrong in so far as it has any meaning.

Human languages may follow rules, in fact that is one of the definitions of language, but there is nothing logical about the rules that they follow except a posteriori.

"Yes every statement depends on context, but the same is true of computer languages.
The context of natural language is far more complex than of computer languages."

You're playing word games. Statements in computer language don't change according to context. "Go to ..." will always send the program to whatever comes next. In English if you say "Stand by me" the interpretations are innumerable.

"And a natural language is an open evolving system, whereas a particular computer system might be closed and stable."

There is no "might be" about it. A computer language is always closed and stable; it's sole purpose is to produce a collection of bits.

There are two independent things you are claiming, both of which are false. The first is that there is a clear parallelism between natural languages and computer languages. The second is that the study of linguistics is more useful for programming than the study of basketweaving , English Literature, or Iron Age Archaeology. The only proof you give of either is wish-fulfilment.

Stephen Jones
Wednesday, December 18, 2002

Stephen, you aren't thinking straight; statements in computer languages mean different things in different contexts. Different methods in different classes can all have the same name and can all behave differently. And the same method in one class can behave differently depending on what calls in, what information it's passed, etc.
The similarities between natural and computer languages are too obvious to question. Computers are not good and understanding natural language mainly because of the vast amount of cultural background knowledge we all possess and take for granted.

PC
Wednesday, December 18, 2002

Dear PC,
                I'm thinking perfectly straight. Natural languages have ambiguity. That is not the same as meaning different things in different contexts. Ambiguity is meaning different things in the same context. Put that in your code and you'll get fired.

                You are taking the reductionist point of view: that computer languages can be decompiled and so could natural languages if we had access to all the more complex levels of compilation. I disagree. Natural languges work to an inherently different schema. Natural languages ocurred incredibly late in evolution - it is quite possible that humans are the only species with the genetic capacity for them - and are intimately tied up with our way of thinking. And our way of thinking is very different from a computers. We find calculations that a computer can do in nanoseconds to be frighteningly difficult and most of the human race never even gets round to them. Yet such things as recognizing a face we do trivially, and yet  with years of AI research and the application of Moore's law computers are just getting round to recognizing an iris. You could say this is cultural; the human brain actually appears to have a special location for recognizing faces. However I think this is interpreting cultural in much too loose a sense.

You are suffering from what is technically called "realization". That is to say the delusion that an analogy is not simply that, an analogy, but rather something with an independent existence. You can find analogies between natural languages and computer languages "too obvious to mention", but they are simply that , "analogies" and not "similarities". And I believe that there are just enough of them to confuse.

Even if natural languages were just a much more complex version of human languages you would still have not a shred of evidence that studying linguistics is of the least use for programming  - unless you count understanding jargon dealing with dubious concepts of even more dubious efficacy worthwhile job preparation :)

The claim that Art is a useful background for prpegramming because programming is creative and that is what art college is all about is an even more extreme example of your thesis and if someone hadn't been serious about it I would have used it as a reductio ad absurdum.

To sum up a degree in an unrelated subject does show things to an employer. It shows that you may have intellectual curiosity and that you may have been using problem solving in your field. But nothing more.

Stephen Jones
Thursday, December 19, 2002

It just bugs you for some reason that a non-CS degree could be useful for programming. You obviously don't know the history of cognitive science and AI.
On a practical note, the Perl language was designed by a linguist, which partly accounts for its success. I don't see how you can discount or deny that.
You just can't stand people without a CS degree thinking they can understand CS, or that their broader perspective can sometimes be an advantage.
As another example -- the first computer scientists were psychologists (Simon and Newell), not mathematicians. Mathematicians used computers to compute.
I admit the usefulness of art experience is less direct and obvious. But you must be able to see that an artistic programmer is less likely to create hideous interfaces.
I think that having varied experiences and knowledge is especially valuable for people who are more creative and less satisfied with doing things the same old way.
Most likely you are not a creative type of person.

PC
Thursday, December 19, 2002

*  Recent Topics

*  Fog Creek Home