|
This author makes the point that general problem solving and programming are, in fact, the same thing, and you can't have one without the other.[1] I call foul on this: I bet programmers think in terms of loops, but because that's how they think. There are other ways to solve problems as well. And many of the problems the author outlines really aren't problems. My Android app crashes, or my form doesn't submit. Yes, there's code underlying those problems, but SO WHAT. Why should a layman care about memory management? Anyway, I find this a supremely short-sighted argument. But I think the crux of this whole series of discussions is around one question: Where on the spectrum of "things everyone should know" does "programming" fall? We all agree that there are hundreds, if not thousands, of things about programming on that list. Reading, arithmetic, critical thinking, civil rights, personal finance, health, history, etc. And in a world where many people are illiterate, in debt, oppressed, and so forth, shouldn't we focus on those problems first? [1] "If you don't know how to program, you filter out all parts of the world that involve programming. You miss the loops and divide-and-conquers of everyday life." |
As you your other point though, about general problem solving, I think I was unclear. When I said you miss the loops and divide-and-conquers of everyday life, I was just trying -- perhaps too lyrically for my own good -- that you are unable to categorize the world into categories you do not know and cannot recognize. You can't see that the operation you do for every page could be abstracted into a loop, exectuable by a computer. You don't see that you don't need to compare all of your friends to arrange them by height, say for a sweet picture, but you can quicksort them. (Ok this is about as contrived as you can get but programmers have a hard time thinking of places most people don't see programming but we do. Because we see it everywhere).
Finally, sure we should focus on illiteracy, debt, oppression etc. We are working, though, on a lot of these problems programmatically.