Hacker News new | ask | show | jobs
by basseq 5151 days ago
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."

1 comments

Ah, yes. You are absolutely right that I pooched the Android memory example. Laymen might not care and it might not help them. I think a better example might be someone copying information off a website. I've seen this happen a lot. Someone will have to print off name tags for an event but there's only 10 people per page. Copy. Next page. Etc. If they understood, say, the idea of scraping, they'd see a simple batch scrape and save hours if not days.

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.

It sounds to me like you're arguing less for programming and more for a) a basic algorithms class, b) an understanding of technology applicability to real-world problems, and c) the need for better tools to automate daily tasks.

You have to be a pretty good programmer to write a multi-page scraping script fast enough that it beats the tradeoff of just doing it by hand. Or you need to solve the problem another way. I guess that's what I'm getting at... the problems you're highlighting are real, but I don't think the solution is "learning about programming."