3 ms·
It's not just algorithmic and logical thinking, both have been around for thousands of years. (Most prevalently after the rise of general writing.) I'm sure bot
by Jach 14y ago
It's not just algorithmic and logical thinking, both have been around for thousands of years. (Most prevalently after the rise of general writing.) I'm sure both Lady Ada Lovelace and Charles Babbage, being competent mathematicians, wouldn't have had much trouble following an insertion sort algorithm (since humans do this naturally already when sorting) for a pile of cards or be much fooled by the 'tricky' true/false Knight questions. When it comes to implementing these things on a machine (and building the machine, which nowadays is a freshman/sophomore CE project), though, they struggled immensely. And their struggles with the purely abstract side of things were not just from having a lack of expressive language, for even with the most expressive languages today concurrency and other parts of programming are still mentally challenging.
The reason computing is different from mere algorithms and logic is because programmers and machines face incredibly deep abstract and physical hierarchies and orders of magnitude for even the fairly mundane things. It's even further different in that programmers have perfect (or near-perfect with error correction) digital precision and control at immense scale down to whatever the relevant atom is (a bit, a microsecond) and the ratio between the upper bound and lower bound keeps increasing. Physicists have a similarly large order-of-magnitude gap to cross, but carbon nanotubes are state-of-the-art whereas programmers have been perfectly manipulating gigabytes of data for years.
Dijkstra called computers a radical novelty[1], his reasoning is why I dislike these poor metaphors and analogies about programming "being another tool in a toolbox of job-skills like plumbing or life-skills like tying a knot", or "learning to program is like learning how a car works", or even the notion that "learning to program should only be for the passionate, for those who enjoy it, or for those who want to make money with it." It was ridiculous and wrong when Socrates said similar things about writing, it's still ridiculous and wrong when people say it about programming.
[1] http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036...