Live data from Hacker News

Everybody does not need to learn to code.

slate.com

51–60 of 77 posts

Re: Everybody does not need to learn to code.

#51

The ability to program is the literacy of the millennium. One thousand years ago "Everybody [did] not need to learn to read", yet today, many countries have a near 100% literacy rate. However, I don't think we need to force today's programming languages upon people. Let's invent the printing press of programming languages, making the cost of learning to program much easier. (IFTTT is working on this.)

The best example of this are spreadsheets. There are plenty of people who don't think they can program and don't think they have any need to program, but will write some really insane things in Excel. They just don't realize what they are doing is programming, poorly. The great advantage of computers isn't "better TVs", it is that they are "compute-ers", and anybody who has an office job has a real use for one.

Re: Everybody does not need to learn to code.

#52

Let me ask, earnestly, why is learning to code better or more important than: - Studying medicine at school so you can avoid engaging with the expensive medical system for all but the most critical issues? - Studying law so that you understand how to read contracts and understand legislation? Mathematics and language are the building blocks of programming. We study those. Going further upstream into the outputs of th…

You know how Physics is sometimes viewed as a kind of ad-hoc applied Mathematics? For that reason, we often/usually consider maths the more fundamental discipline. Mathematicians are generally doing ad-hoc applied computer programming in order to carry on mathematics at this point. Give the academy another 50-100 years to figure out what this means, if anything, about the fundamentals of each discipline. I think we'l…

That's an interesting perspective I hadn't thought about. I've also always seen programming as a good way to actually learn math. Topics beyond basic algebra (e.g. calc, linear alg, stats, and even geometry) seem to lend themselves pretty well to programmatic implementation. Just imagine having to implement visual representations of Euclid's elements or Integration as Processing[1] apps. Sure you'd necessarily have to learn the concepts in order to implement them, but more importantly, you'd get to avoid all that cryptically terse math notation in favor of more sensible programming conventions :)

[1] http://processing.org/

Re: Everybody does not need to learn to code.

#53
post #8

This is one of the better essays arguing against "learn to code" because it actually acknowledges that there are real benefits to learning coding that don't relate to working in an IT job, just as there are real benefits to learning to write that don't relate to being a published author. But I disagree with the notion that, as the OP states, that learning to code is futile because "most who “learn to code” will end u…

>> They may not be able to multiply 0.15 or even 0.20 against a whole-dollar amount in under 30 seconds

I don't know how you would even need 30 seconds to do this. Lets say our bill is $62.50. Finding 20% of that is simply multiplying that by 0.20, which is also just multiplying by 2 and moving the decimal point over on stinking place.

2 * 62.50 = $125.00 ~ 12.50

It's that simple. I don't even think about it. Maybe people just see '20%' and that scares them.

Maybe that's where the problem lies. Your average non-coding person might spend all day trying to figure out how to sort a list of names but it would come naturally to a C+ programmer like myself, and come even faster and in a much better algorithm/implementation to someone who's a good programmer.

Re: Everybody does not need to learn to code.

#54
Nobody needs to learn how to code, any more than they need to learn contract law, or organic chemistry, or welding, or music composition.

People talk about code "literacy" as though it's the 21st century equivalent to reading and writing, but this is crazy -- even as a programmer, I don't interact with any of my devices via code. Being a programmer doesn't help me troubleshoot Windows or get my printer working. I don't configure my apps on my iPhone using code; I use their preferences screens. I don't have databases I need to query using SQL, anywhere outside of my job.

Programming is a profession, period. It's not a generally useful skill like riding a bike is. It can be useful to teach in schools, but only in the same way high school chemistry is -- not so the general population learns it, but just so the students who might want to choose it as a career, have enough of an initial taste of it to realize that.

Re: Everybody does not need to learn to code.

#55
post #38

Let me ask, earnestly, why is learning to code better or more important than: - Studying medicine at school so you can avoid engaging with the expensive medical system for all but the most critical issues? - Studying law so that you understand how to read contracts and understand legislation? Mathematics and language are the building blocks of programming. We study those. Going further upstream into the outputs of th…

I would figure a lot of what you pay a lawyer for is not making sure you understand the contract but a) to save time and b) to have someone who's in the profession and knows the legal quirks, loopholes, and procedures. I would figure a lot of what you pay a doctor for is not to mend every problem you have with your body to but to ensure that it's done timely, safely, and with the least amount of risk/damage/scarring/…

I think problem-solving is probably one of the most important skills one needs in his toolbox to succeed in life

This is the key statement. But I don't think it needs to be taught through programming, people were problem solving way before the invention of computers, or even electricity. I know this is HN so we have a biased view on this, but the ability to think/problem solve and programming do not go hand-in-hand.

I certainly agree that everyone should have exposure to programming, and the opportunity to pursue this further if they so wish, but to thrust it upon everyone is not the answer - not everyone will end up in a job where IT is the main focus.

Re: Everybody does not need to learn to code.

#56

Disagree. Everyone needs to learn to code. I was taught long division as a child. Didn't like it; who does? Nor do I use it. But... When I was 15, I finally got a chance to study programming. One of the first things our professor showed us, was how to do string-based long division, with a computer. The enlightenment was profound. Why was I doing this, when everyone else was learning to symbolically find quadratic roo…

Let me elaborate. Anyone who has participated in the math education of a child, or remembers being one, has heard the compliant "But I'm just going to use a calculator! Why do I have to learn this!" Currently, the answer is "if you want to get into college / learn more advanced things, you have to learn to do this, all by hand." The answer should be "Well, if you want to get into college, you're going to have to lear…

Both answers are either incorrect or inapplicable to a large portion of the population.

The real answer has always been that you need to learn intuitively what "division" actually means, and we have no clue how to teach that, but doing it by hand seems better than the alternatives. I'm not sure if teachers just choose not to phrase it this way or they don't know either (in which case the real reason is because they were told not to allow calculators). But calculations are easy. Intuition is hard. Until we have better ways to teach intuition, I'm afraid we'll have to keep trying to let kids build it via forcing a slow-down of the thought process by having them do it by hand.

A better example would be integrals and antiderivatives. One can certainly learn how to "find the integral" just by using antiderivatives. One could learn how it applies to the real world, as well. "A ball is moving at 30m/s for 10 seconds, what distance did it travel?" Increment the exponent, divide the coefficient, plug in X.

But then kids approach, say, revolutions of solids. Suddenly, due to the way they're taught, they think that there are different formulae for rotating about the x and y axes. If they're taught how to construct the Riemann summation from scratch, see the relationship between that and integrals, and see the relationship between a curve and its revolution, I think that's when they start to get the idea of what an integral (not an antiderivative) really is.

It's the difference between saying:

I want to find the volume of y = x^2 rotated about the x axis. I have the function and I know I need to multiply it by the formula for a circle and then integrate it.

vs

I want to find the volume of something. I can describe each point on the cross section. Each item in the summation can be described as circular. I can describe all of these circular sections at once by adding them all together. The integral is that sum. I can find that integral by finding the antiderivative of the original description.

Which seems more "true?" Which is more difficult to teach? If kids always used calculators to pursue question 1, they'd never arrive at the problems that would let them arrive at question 2.

Re: Everybody does not need to learn to code.

#57
post #47

Earlier quoted context omitted.

Sorry, I don't intend to cast aspersions on your upbringing, but why does class availability matter at all to this discussion? Myself, and everyone in the small group of middle school kids at my school who were interested, learned programming from books. Our school was extraordinarily poor, so the whole notion of CS classes was laughable.

I remember trying that when I was in middle school and discovering that the local library did not exactly have a great selection, and I didn't know anyone who could recommend good resources. Searching the web kept bringing up the same few overly shallow tutorials which didn't even explain how to actually run a program. It's less of an issue today, but finding good resources to learn from matters.

Our library was also mostly useless. Maybe it's opportunity cost, then. We lived a ~5 hour drive away from anything resembling a city, so purchases of anything other than food were very infrequent. This allowed us to save up until the next trip to purchase a few C++ or Pascal( yeah I know )books from Bookman's and a cheap (student edition can be had when you're 10 years old without a student id) copy of turbo c++. That would last a year of learning. The next year, perhaps a VESA graphics book, etc.

Re: Everybody does not need to learn to code.

#58

Disagree. Everyone needs to learn to code. I was taught long division as a child. Didn't like it; who does? Nor do I use it. But... When I was 15, I finally got a chance to study programming. One of the first things our professor showed us, was how to do string-based long division, with a computer. The enlightenment was profound. Why was I doing this, when everyone else was learning to symbolically find quadratic roo…

>I was taught long division as a child. Didn't like it; who does? Nor do I use it. Really? I mean, I guess I don't like long division; nor do I dislike it. But I like being able to get its results, and I do it all the time in my head. What do you use instead?

A calculator. Or more likely, the calculator app on his iPhone.

Personally, I like the ability to at least be able to get a rough approximation of an answer without having to resort to tech... but hey, call me old fashioned.

Re: Everybody does not need to learn to code.

#59

Nobody needs to learn how to code, any more than they need to learn contract law, or organic chemistry, or welding, or music composition. People talk about code "literacy" as though it's the 21st century equivalent to reading and writing, but this is crazy -- even as a programmer, I don't interact with any of my devices via code. Being a programmer doesn't help me troubleshoot Windows or get my printer working. I don…

>Being a programmer doesn't help me troubleshoot Windows or get my printer working.

I think that is partly an artifact of closed source OSes. When I used OS X, I almost never fixed a problem with programming (other than a problem like "I don't have a program to do this"). Having switched to Ubuntu, I actually have found programming to be a useful way to work around problems.

Sometimes there's a "right" way that involves digging through documentation to find some random option, and an easy way that involves writing a shell script.

>It's not a generally useful skill like riding a bike is.

I totally disagree. It's not as useful as riding a bike, but it's certainly useful even when not used professionally. I recently was working out a recipe for a "one food to rule them all" inspired by soylent, and I wrote a program to calculate the ingredient proportions. It had nothing to do with professional programming, and it was incredibly useful.

Re: Everybody does not need to learn to code.

#60

Disagree. Everyone needs to learn to code. I was taught long division as a child. Didn't like it; who does? Nor do I use it. But... When I was 15, I finally got a chance to study programming. One of the first things our professor showed us, was how to do string-based long division, with a computer. The enlightenment was profound. Why was I doing this, when everyone else was learning to symbolically find quadratic roo…

>I was taught long division as a child. Didn't like it; who does? Nor do I use it. Really? I mean, I guess I don't like long division; nor do I dislike it. But I like being able to get its results, and I do it all the time in my head. What do you use instead?

Oh, I'm quite incapable of doing long division in my head. Far too ADD.

Professionally, I write parallel OpenCL software used by the mathematics, physics and chemical engineering communities. The irony is not lost on me.

EDIT: When I need to approximate long division, I multiply up from the divisor towards the dividend. I find this dramatically easier. My mother is incapable of subtracting in the normal sense, and does the same operation with addition.

Post reply on HN