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