Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Had the exact same thoughts running through my mind as I was reading this - "you are missing the point of why you should strive to give kids the opportunity to learn this!".

Learning to "think like programmers" is essentially teaching kids to think like engineers, in other words, recognize complex systemic interdependencies and understand that things usually form a system that has it's own rules, constraints, etc. When you start to understand these relationships, it helps you immensely even outside the realm of tech. For example, the Monarch butterflies are not having such a good decade. Why? Well, the system that enabled their migration (the prevalence of milkweed) has been modified extensively by humans, and now is at the breaking point where there may not be clear avenues for the butterflies to continue their migration patterns. This is a gross oversimplification of course, but the point is that now we can look at the other "nodes" in the system that will be impacted by lack of migration. Birds could be impacted, which in turn impacts whatever feeds of those birds, etc., etc.

Computers offer some of the more understandable and finite systems that we can learn, yet offer incredible flexibility, illustrating how complex things can get. Learning to speak in these languages helps with that understanding.

Also, I don't think anyone is advocating learning assembly or what not. When most people talk about "learning to code", it's picking up a higher-order language that does a lot of the complex things for you. It's not the same as teaching real computer science. It's basic comprehension and knowing how these systems form.



Exactly. Process tracing is applicable to everything.

My personal favorite, that I'm always painfully reminded of when reading political news, is the ability to hold multiple interrelated systems in your head at once and check that they're mutually consistent. There's so much unintentional doublethink out there that I think could be significantly improved if people would just stop and walk through their own thought processes in a logical manner. It's not the only way to think, and it's not appropriate for absolutely everything, but it is a good sanity check for many, many domains, and it's frustrating when people tend to look at me funny and end the conversation when I try to, for example, explain that two ideas cannot possibly be held at the same time because they're contradictory when taken a step down the line.

Come to think of it, the concept of a sanity check itself is something that I got from programming and use in everyday life.


Yeah, politics could definitely use a lot more of "sanity checking" and "unit testing" ;)

But in all seriousness, it's shocking how many people turn a blind eye to inconvenient contradictions/conflicts.


Here is a good article giving non-programmers 5 reasons to learn how to program: http://blog.learnstreet.com/5-reasons-you-need-to-learn-to-p... Personally, I like point 5 the best: "Programming is fun".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: