Best Computer Science School in Utah

Hans Fugal hans at
Thu Sep 27 08:15:24 MDT 2007

On Wed, 26 Sep 2007 at 09:12 -0600, Paul Seamons wrote:
> 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.

Nobody achieves the impossible. Fine craftsmen achieve the very
difficult with ease. Those who say it's impossible aren't the ones they,
or anyone else, needs to worry about. Good computer scientists spend
their days trying to do "the impossible" too—figuring out how to do that
which people have only dreamed of doing with computers in the past.

> 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).  

And for lack of knowing the problem even exists.

> > 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).

Of course, that is exactly what I meant. Nobody would argue that doctors
are unnecessary because we have nurses to take care of 80% of our needs.
Nobody would say that we don't need metallurgy or whatever it is that is
the foundation of scalpels just because we already have scalpels. Just
to clarify, I certainly don't propose that CS is more important than
craftsman programming, simply that they're distinct. All computing, even
MS Word word processing, is based on the principles of computer science
(among other disciplines i.e. computer engineering) and decades of
improvement. One needn't be a computer scientist to be a good
programmer, in fact it would get somewhat in the way; he might like
doing CS stuff more than writing code. :-) He does need a foundation,
though, just like all craftsmen need a foundation in theory. A CS degree
is a solid way to get that foundation, if somewhat inefficient. But then
college is that way by design anyway—the idea is that you learn more
than just a trade at college.

Hans Fugal ;
There's nothing remarkable about it. All one has to do is hit the 
right keys at the right time and the instrument plays itself.
    -- Johann Sebastian Bach

More information about the PLUG mailing list