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

Everyone should learn how to code just as everyone learns basic arithmetic.


I remember being taught BASIC in elementary school as part of the standard curriculum, which was now a long, long time ago. And this was just a small rural school, literally surrounded by farms. My parents both talk of learning how to program on punchcards in high school. They struggle to use a computer, let alone program one, so I'm not sure it was of any real benefit to them.

Though once you've covered basic algebra, you're basically there. Coding itself is super easy. The more challenging problems come from understanding the nuances of your stack (which comes with experience) and understanding more complicated algorithms (which is rooted in higher level math). That all requires much more time and effort than an intro course in elementary school.


I might add that the real value and challenge of learning to code, beyond stacks and algorithms, which are domain specific, is the ability to abstract problems and find generic solutions.

IMO, that sort of skill rewires your brain in a way that helps you solve the root causes of problems, and not just patch the symptoms.


Totally agreed. Imagine a world in which Scheme is taught in elementary school as part of the standard curriculum.


Curious, but why scheme? FWIW I can only code in Python, and that not particularly well.


Yes, but imagine.

It would be a brave new world of child prodigies & parentheses, of Lambda symbols drawn on the wall in crayon & kids playing jump-rope games while singing songs about side-effects & mutable state :)


What would be the utility in doing this other than increasing the number of "coders"? I would make the argument that there are other, more practically applicable areas of study that would benefit the general population. Basic physics or even basic anatomy and physiology comes to mind.


What is the utility of teaching people arithmetic other than increasing the number of "mathematicians"?

This highlights an important aspect of the immaturity of software development, we lack the terms to even talk about it with very much detail. We don't put everyone who knows any amount of math in the same bucket, we don't even put people who know vector calculus and differential equations in the same bucket, we appreciate that there are many grdations of skill and differences between people who know a thing to some level of competence and people who use that knowledge intently in their occupation.

The same is true with programming. Just because someone knows the basics of programming doesn't mean they are a software engineer. It doesn't mean they are capable of building or working on large, sophisticated systems. It doesn't mean that they necessarily must take up programming as an occupation either.

Similarly, taking a wood shop class or learning basics of automotive maintenance doesn't make one a carpenter or a mechanic. But that doesn't make those skills useles either.


Yes, there is some utility in teaching the general population a skill but I don't believe that coding is the skill.

Don't get me wrong, it would make the jobs of those in technology a bit easier. But I think that there are better uses of resources.


One utility would be that software would be a lot less brittle and a lot more flexible since you would know that a significantly greater than 0% of your audience could use the sandboxed non turing complete language that allows intelligent communication of triggers to the application.

Another benefit would be limiting the space a user places on the possible actions of your program. By expecting less magical behaviour and constraints based on knowledge of basic limits of software; actions will be more robust, limitations more likely to be intelligently worked around till a fix is had and feedback may even be more meaningful and suggestive.


I couldn't have said it better than InclinedPlane.


I'm pessimistic that it would actually work, but I'd like to think it would teach people to think precisely.


let's say an end user of your app is having a problem getting it to work. would you rather that end user be a developer, or someone that doesn't know anything about development?


Computer programming should be offered as an AP similar to how AP Statistics is in high school. I ran out of math to take in High School - the logic of calc-based psychics and advanced calculus trend well with object-oriented programming.


AP Computer Science exists, they provided it at my high school. At the time, it was taught using C++. I believe they use Java now.

Maybe not the ideal choice of languages, but nonetheless, I did feel much better prepared than my peers when I started taking programming courses in college.


Besides that AP CS exists, if you are running out of APs then you should be taking classes at a local community college or even actual university. AP is already putting intro level college classes into highschool, it doesn't really make sense to just offer all college classes in a highschool.




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

Search: