Levi Pearson wrote:
Paul Seamons <[EMAIL PROTECTED]> writes:
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.
Computer scientists are actually pretty picky about the words they use
to describe the difficulty of problems. You will never find a non-CS
person, or anyone else, solving an problem deemed impossible by CS
theory, because such problems are not computable. If it looks like
they did, then they only thought they solved the problem. They either
solved something else, or the solutions are wrong.
I like to think of myself as a computer scientist, and the one thing I
remember from my algorithms class all those years ago is that even if
finding the optimal solution requires exponential time, the algorithm
that is provably within 80% of optimal is polynomial. Close enough is
usually good enough (or provably optimal is usually not required).
MacGyverism seems to match perfectly with what Dr. Campbell taught me IMHO.
FWIW,
Barry Roberts
/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/