Best Computer Science School in Utah
paul at seamons.com
Wed Sep 26 12:08:47 MDT 2007
> 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.
Hoisting theories to fact. These are the problems I am talking about. CS
proofs are one thing, but theories are another entirely. History has many
examples in all fields where great advances because theories were ignored
(but more cases exist where failures were made because good theories were
> If it looks like
> they did, then they only thought they solved the problem. They either
> solved something else, or the solutions are wrong.
Quite likely. But the person didn't spend a lot of time caring about the
theory. They just did their job and solved the problem - and they may run
into scalability problems soon, but in the meantime they are raising venture
capital on their product that is already to market.
> Your argument seems to me equivalent to saying that lack of training
> in physics gives you a better shot at designing physically impossible
My fault in using too much hyperbole with words such as impossible. My
argument is closer to saying that lack of training sometimes allows one to
focus on the problem rather than become mired in details (you may not cover
every edge case, but that's ok some of the time).
> Despite your words, no one is going to successfully build a
> perpetual motion machine, because such things are impossible.
And there is a proof to back it up (well in this case a law), not a theory.
> There are plenty of problems in computing that are varying degrees of
> hard, though, and a particularly bright, but untrained, guy might find
> a solution to a problem hard enough that trained CS guys don't want to
> spend time on. In general, this is vanishingly unlikely.
I'm not talking about untrained people setting out to solve specialized
problems. This is extremely unlikely and most of the time it is absurd.
I am talking about programming. I am not talking about CS theories. An
untrained programmer like myself has a near 0 possibility of solving an
unsolved CS problem. But I have tackled plenty of programming problems.
> I think your paragraph above is self-rationalization that your choice
> of study was superior,
I stopped talking about Engineering in my first post. Though I used
Engineering as a good path to follow, my other ramblings were more about
non-CS people than they were about engineering people.
My first post said that the choice of field of study was tied to what somebody
wanted to do with their life. If someone wants to be a programmer and has no
knack for programming, then CS would be superior because learning about the
tools can help you learn better how to use them. If they want to be a
programmer and already have an aptitude for programming already, then I'd say
any degree that encourages plenty of math would be adequate.
I generally try to stay out of discussions such as my editor is better than
yours, or my programming language is better than yours, or my degree is
better than yours. I simply don't care. I have a job to do. And the tools
I have chosen let me do it to a degree that satisfies me.
I know that you understand more about software and are most likely a better
programmer than I am. I think that that says more about you and your
abilities than it does about a CS degree. I don't feel inferior just because
I don't know as much about CS.
> and that CS really wasn't worth your time. Maybe it wasn't worth your time
to learn, but it's a very important field.
Actually, I've always wished I'd double majored or at least minored in CS. I
guess an ounce of hindsight...
> I think it's more akin to requiring the surgeon to learn all sorts of
> things like biology, biochemistry, etc. when they could really perform
> surgery just as well if a competent surgeon just showed them how to do
That wasn't my example. My example wasn't about the procedure the surgeon was
going to use. It was about his tool the scalpel. He doesn't need to know
how the tool was made (manufacturing). He doesn't need to know about how the
ore for the tool was chosen, mined and purified (metallurgy). Those are the
things the tool maker needed to know. The surgery procedures, the anatomy,
the chemistry, the biology are all the surgeon's craft. He better know
> There is a great deal of work to be done still in the theory of
> computer science. It informs the creation of new and better tools
> that will lead to more reliable, more powerful hardware and software.
Hooray! (that is a real hooray - no sarcasm here - everybody loves better
> Without computer science, we'd still be programming in assembly
> language or primitive Fortran. Sure, people with no training would
> still be able to solve problems, but they wouldn't be anywhere near as
> impressive as they are now.
Ding ding ding. Yes. My points exactly. We have tools (higher level
languages) that have abstracted the science away that let us solve complex
problems. Ah, we are finally on the same page.
> It is, as Hans said, an essential foundation to computing. There are
> certainly jobs in the computing world that don't require learning it,
> but someone had to learn it to enable those jobs.
Let me quote my last post:
> > (though those
> > who accomplish great things should acknowledge the existing
> > tools/foundations they built upon).
I'm grateful for the tools. I always want better and better tools.
Yes. We need better tools. I am grateful for computer science that helps
give us more tools.
I'd rather make cabinetry than make wood working tools. I'm grateful that
somebody created tools to help me more easily make a cabinet. Sometimes I
wish I had the resources to make a wood working tool because I think it is
interesting. I know there are people who still hand craft (hand powered
tools only) cabinetry, but I'm glad that I don't have to. I can use the
higher order tools to get my job done quickly. Would you rather create a saw
or cabinetry? I'm glad that there are people who do both.
In programming sometimes I find a tool lacking and I start looking for a
solution. In these cases I've wished a had more CS experience so I could
better create my own tool. But for the most part I use my database without
working about database engine design, I use my webserver without worrying
about tcp or protocol or network, I use my language of choice without
worrying about compilers or assembly, I use my objects without worrying about
object theory, and so on and so on. Sometimes I have to worry about these
things, but I'm glad that in my job as a programmer, most of the time I don't
have to worry about my tools, I just have to know how to use them.
It is the MacGyverism thing all over again.
Generally, CS is the creation of tools that the creation of tools from
existing tools. Programming is the using of tools.
More information about the PLUG