Live data from Hacker News

So You Want to be a Programmer

codinghorror.com

61–70 of 99 posts

Re: So You Want to be a Programmer

#61
post #40

Jeff wants a world where we programmers can make computers perfectly usable without understanding how they work. I don't think this will ever be the case. The abstraction will always leak a little, and people will benefit from having at least some idea of how computers and the programs that run on them work under the hood. Regardless, in the mean time I would prefer everyone to have as much technical competence as po…

If you've ever seen a 2 year old or, worse, a baby boomer playing with an iPad you'd realize we're basically there. At this point Jeff's car analogy is about right. Is it useful to know how your car and computer work under the hood? Yes. Is it necessary ? Increasingly less so.

There's an issue with comparisons to plumbing and mechanics. The kinds of devices "ordinary users" interact with in those realms are physical, and it's possible to see how they work at a high level just by looking at them. (Yes, cars and such are getting more and more like moving computers, but the basics haven't changed.)

This is not at all the case with computers. They are magical black boxes if you're not familiar with how they work. Understanding even just the ideas of programs manipulating data is important, however abstracted the interface is. And what better way to teach that than with basic programming lessons, even just something like Karel++. Not to mention all of the related concepts of logic and problem solving.

More importantly, computers are black boxes made by people. I think a big part of “learning to code” is not just being technologically literate. It's a way to teach an understanding that these devices are doing what someone told them to, and that users have the power to make the computer do what they want. That nearly everything we interact with was designed and built by other people is an incredibly under appreciated fact. Learning how to use tools is empowering, and a fundamental part of being human.

Re: So You Want to be a Programmer

#62
post #40

Jeff wants a world where we programmers can make computers perfectly usable without understanding how they work. I don't think this will ever be the case. The abstraction will always leak a little, and people will benefit from having at least some idea of how computers and the programs that run on them work under the hood. Regardless, in the mean time I would prefer everyone to have as much technical competence as po…

If you've ever seen a 2 year old or, worse, a baby boomer playing with an iPad you'd realize we're basically there. At this point Jeff's car analogy is about right. Is it useful to know how your car and computer work under the hood? Yes. Is it necessary ? Increasingly less so.

There is this saying from Zhuangzi 2000 years ago: don't let things "thing" you. If we let our kids use iPads without telling then these things are hackable they will become their slave. We are already too much the slaves of our gadgets. I fear that and will show to my kids how to open a washing machine, a computer, how these things work. I will also tell them ho to cooka chicken, how to fix a leaky faucet, etc.

Re: So You Want to be a Programmer

#63

He's still missing the point. If anything "learning to code," is just bad language to describe something more worthwhile: teaching people the fundamentals of algorithmic and logical thinking. We don't teach mathematics to kids so that they will all become mathematicians and we certainly don't teach them literacy so that they will all become the next J.D. Salinger. They are just tools for solving other problems. "Lear…

If you look at other articles at CodingHorror, I don't think Jeff Atwood associates coding with things like "algorithmic thinking" (which is not necessarily bad, he just has a different focus), but do courses of "learning to code" teach it all that much? For beginners learning to code is more about just learning to "make the computer do" simple things via learning all the terminology, syntax, the deciphering of compiler error messages etc. It takes plenty more effort to learn some theory along the way and this is most likely to happen in an academic setting and the popular courses are really more about craftsmanship.

Robert Sedgewick has a nice "Introduction to programming" course followed by an "Introduction to CS":

http://introcs.cs.princeton.edu/java/cs/

It sure could be useful to a wide audience, especially for people in science. For people in general? I think not more than hundreds of other skills. People in every discipline tend to think what they do is the pinnacle of all understanding, this is especially visible in academia and in schools, but in the end you cannot know every thing that potentially could be useful. Of course this shouldn't stop people _interested_ in programming from learning it.

Re: So You Want to be a Programmer

#65
Why does he mention the "No Silver Bullet" paper?

Oh, how I hate that paper: it is pure speculation (Nobody has any idea what complexity is actually essential and what accidental), and it seems to ignore the fact that the past of programming sports a couple of silver bullets already. Saying the past had silver bullets but there are no silver bullets left to be found is like saying we've already invented all things, and there are no more patents to file.

Re: So You Want to be a Programmer

#66

He's still missing the point. If anything "learning to code," is just bad language to describe something more worthwhile: teaching people the fundamentals of algorithmic and logical thinking. We don't teach mathematics to kids so that they will all become mathematicians and we certainly don't teach them literacy so that they will all become the next J.D. Salinger. They are just tools for solving other problems. "Lear…

I agree. Let's try substituting some other things. "Don't visit a foreign country" "Don't learn a 2nd language" "Don't listen to any music but pop music" "Don't read anything but children's books" You could argue that 99.99% of people don't need to visit a foreign country. But most people that do have their horizons broadened. Maybe they realize their home country is not as "special" as there local "we're AWESOME" pr…

But you can say that about virtually every topic out there.

Re: So You Want to be a Programmer

#67
It's been about 10 months since I started coding, I have to say it is totally enlightening skill. As a normal user, I never knew the way computers work. When once my PC was attacked by virus, I thought it was actual biological virus. Yeah, I mean I was slave back then.

Now I am trying to be master. Is there anything wrong? PS. Car and Computers are different IMO.

Re: So You Want to be a Programmer

#68
post #31
post #28

Earlier quoted context omitted.

> He's still missing the point. If you read him carefully I think you will find that isn't the case. Much of a professional programmer's time is spent mindlessly debugging crapware, in other words, code plumbing. Plumbing is a separate speciality for good reason. In depth plumbing courses such as those at toiletacademy should not be required of all students. On the other hand, I certainly agree that everyone should b…

So what? Much of a professional writer's time is spent wrangling with arcane grammatical and thematic constructs which 99% of the literate populace forgot about after high school...but it's still important to spend years teaching people how to read or write. Everyone (in middle America) gets through at least hih school algebra...but why is mathematical and logical thinking, common to programmers, so rare? Even in the…

> why is mathematical and logical thinking, common to programmers, so rare?

What evidence is there that programmers have better mathematical and logical thinking?

> I've tried teaching many people the difference between "8" and (the literal value) 8...it never seems to stick until you write and run a simple piece of code to test it out.

This is unrelated to both mathematics and logic.

Re: So You Want to be a Programmer

#69

He's still missing the point. If anything "learning to code," is just bad language to describe something more worthwhile: teaching people the fundamentals of algorithmic and logical thinking. We don't teach mathematics to kids so that they will all become mathematicians and we certainly don't teach them literacy so that they will all become the next J.D. Salinger. They are just tools for solving other problems. "Lear…

I agree. Let's try substituting some other things. "Don't visit a foreign country" "Don't learn a 2nd language" "Don't listen to any music but pop music" "Don't read anything but children's books" You could argue that 99.99% of people don't need to visit a foreign country. But most people that do have their horizons broadened. Maybe they realize their home country is not as "special" as there local "we're AWESOME" pr…

Wow. Please look past the title of his first post to see what he's actually saying: not everyone needs to know programming (which is distinct from “computer literacy”).

Re: So You Want to be a Programmer

#70

A) What Jeff thinks we're saying: "Everyone should be programmers so the world would be a better place" B) What Jeff thinks is the right: "Everyone should be technically literate for their own good" C) What we're actually saying: "Everyone should be technically literate for their own good" You can observe that B and C are the same. So we actually agree, but some haven't noticed it yet. Only because the sentence "lear…

I don’t think so. When does “programming” ever mean technical literacy?

What Atwood is arguing against is the idea that “everyone needs to learn programming”. Because of the title he chose for his first post (which didn’t actually represent his point correctly), now many other groups of people, with a lot of varying views, are arguing with him on points he wasn’t even making. You individually are arguing that everyone should be technically literate, but that’s not what he was arguing against anyway.

Post reply on HN