Best Computer Science School in Utah

Paul Seamons paul at seamons.com
Wed Sep 26 09:12:41 MDT 2007


> However, let it be no mistake that the worst 
> competent programmers I've ever seen are all (very good) engineers.

I agree.  Except for the competent part.  Many of the engineers in my field of 
study were terrible with anything computer related - even though computers 
were essential to the degree.

> Engineering is not Computer Science

And hence the different names/colleges/text books/occupations/spelling/etc.

> and the Engineering Discipline by 
> itself ill-prepares one to be a competent computer scientist.

Most of my thread spoke about programmers rather than computer scientists.  
I'd argue in a similar vein that the Computer Science discipline ill-prepares 
one to be a competent programmer.  This takes us to the "science vs craft" 
debate.  Knowing theory is great in theory.  Tackling a problem and solving 
it when it shouldn't have been possible - but only because you didn't know it 
was "impossible" is even better.  This is where "non-CS" types seem to 
excel - their code may not be beautiful, and they may have poor 
optimizations, and they may have screwed up an easy algorithm or design 
pattern - but they solve the problems none-the-less (not all "non-CS" types, 
but some).  It has more to do with MacGyverism than anything else.

> Of course, some of the almost-worst programmers (competent or no) that I
> have seen have a CS degree, so take it with a grain of salt. (Notice I
> didn't say they were computer scientists)

Agreed.

> Remember that computers are permeating everything.

I should've noticed.  Rats.  :)

They are permeating everything AND becoming usable by people without any CS 
knowledge.

> Computer programming 
> isn't the hard part. Software engineering isn't even the hard part.
> There are and will always be experts in a field writing excellent
> programs for their field that don't have a formal CS background.

I've seen plenty of these types.  They usually make a bundle of money because 
they are able to write niche software that fills a gap nobody else can fill 
(for lack of in-depth experience).  It may not be extensible, well thought 
out prose, but it works.

> Computer Science, on the other hand, is a field of its own and for good
> reason. Many people have no idea that there is a field of Computer
> Science; they think it means "learning to program and/or be a great
> programmer/software engineer".

I think this is the problem.  Most people seeking a CS degree are really 
seeking to learn how to program or how to be a software engineer.  Little do 
they realize that that isn't what CS is trying to teach.  CS will get them 
closer to their goal than most disciplines.

> It is a bit mystical, and it's not easy 
> to explain to the layperson

Agreed.

> but it's a necessary foundation for 
> computing nonetheless.

Hmmmmm.  I find the word "computing" a little fuzzy here.  I think there are 
plenty of use cases that show people who have gotten much done while 
computing without any CS foundation at all - unless the using of existing 
tools which were built with a CS foundation counts (but that is as useful as 
saying a Surgeon wielding a stainless steel scalpel needed the "necessary" 
foundations of metallurgy and manufacturing).  We should to careful not to 
elevate the tools above the accomplishment (though those who accomplish  
great things should acknowledge the existing tools/foundations they built 
upon).

Ok.  Moving along.  I think I've accomplished nothing here.

Paul



More information about the PLUG mailing list