From: DF
To: Editor
Date: Tue, 26 Oct 2004
One of the questions that I have in the debate of “Theory vs.
Practical” is why is it cast as an either-or proposition? It would seem that a well rounded university
education would entail both. The best
way to ensure that one understands the theory is to implement it – and of
course, before you can implement something you need to understand what you are
implementing. A university that focuses
solely on one is giving less than half an education.
One of the most useful courses was Compiler Theory – where
you learned the theory and tested it by writing a compiler. Even though I have not been required to
write a compiler as part of my software development career the knowledge gained
about the fundamental under-pinning has been invaluable. I regret that as part of Database Theory we
didn’t write a database engine.
Of course I’m assuming that the purpose of a university is to
prepare one for a career of 30 to 50 years versus a vocational school preparing
someone for a job for 1 to 5 years.
I’ve told many people going for a Computer Science degree that there are
only two things they really need to learn:
(1) how to learn, and (2) a fundamental understanding of how software
works (theory). Everything else will
become obsolete overtime.
From: Fabian Pascal
To: DF
It's a matter of precedence: you must have a theory in order
to implement. The university should teach you how to apply the theory, but
should not turn into a vocational school. Which is what academia has been
gradually doing, as More
on the Myth of Market-based Education, and the weekly quote of 10/29
clearly demonstrate.
Ed. Comment: The point
is that such a "debate" is nonsense. The theory exists for practical
purposes. Trial and error, which is what we are forced into when there is no
theory—which is not the case in database management!—is certainly not more
practical (see, for example, Upside
Down and Backwards). Witness the mistakes the industry keeps repeating, e.g. hierarchic databases (XML).
Posted 1/14/05