Live data from Hacker News

Coding Horror: Separating Programming Sheep from Non-Programming Goats

codinghorror.com

101–110 of 140 posts

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#101
post #49

int a = 10; int b = 20; a = b; The new values of a and b are: False! All that example would really measure is who has had previous programming experience. This is obviously a teaching failure. I don't accept that there are certain things people "just don't get." Watch the documentary "Waiting for Superman," about some heroic teachers who didn't accept that either and did something about it.

"Waiting for Superman" is a thinly veiled ad for charter schools.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#102
post #74
post #49

int a = 10; int b = 20; a = b; The new values of a and b are: False! All that example would really measure is who has had previous programming experience. This is obviously a teaching failure. I don't accept that there are certain things people "just don't get." Watch the documentary "Waiting for Superman," about some heroic teachers who didn't accept that either and did something about it.

> All that example would really measure is who has had previous programming experience. This test is intended only for people with no previous programming experience. From the 2006 paper: "none had any previous contact with programming, and that all had enough school mathematics to make the equality sign familiar".

[deleted]

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#103
post #68
post #8

That article is positively drenched in fixed mindset ( http://www.scientificamerican.com/article.cfm?id=the-secret-... ). Those prophecies tend to be self-fulfilling. But as raganwald says, the only evidence is that universities fail to teach a sizable fraction of the population. Maybe the trick is not to play with IDEs or whatever else they claimed to have tried, but to get rid of the computer and focus on what prog…

> The example of "mental model of assignment" is ridiculous. a=b can mean whatever. It means something totally different to a mathematician than a programmer. > "The piece of paper on the left says dog and the piece of paper on the right says cat. We are talking about university students. I think they all have had a bit of calculus. That they had to "find the x" or "give the value of y = 1/(3/x) to the third decimal…

This is exactly the problem here. If you show a=1+1; b=3; a=b; to someone with math background, their brain will most likely explode, because they'll think that every equality has to hold at the same time.

Also I think it's impossible to hold a consistent mental model (whatever it is) if people can't form a logic behind the operation.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#104
From the draft article:

>There was an attempt to administer the test to another 30 or so students on a foundation (pre- degree) programming course at Middlesex University. That administration failed, because the students – rightly, in our opinion – were incensed at the conduct of their teaching and the ar- rangements for their study, and simply refused to do anything that wasn’t directly beneficial to themselves.

Uh... what? What is the "conduct of their teaching and arrangements for their study"?

That random bit of information is followed later by this:

>3.3 Third administration

Because of what we found on the first and second administrations, there was no third administration.

That doesn't follow at all. The first quote states the students refused to take the test, while the second states a final test would have been valueless. I very much doubt that it wouldn't have had value, as it could strengthen or weaken their claims, so I'm forced to conclude the students refused to take an exam? Something doesn't seem right in this classroom.

Ultimately though, without any information about how things were taught, I'm not sure this study tells us much. With a lot of studies across a variety of teaching styles we might be able to extrapolate something, but a single one just throws doubt on the methods of teaching which is a massive un-controlled and un-known variable to the whole system.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#105
I had a Matlab programming class in my first year of a mechanical engineering degree. What was painfully obvious to me then was that the people with programming experience (some of us had done some sort of computing or computer science course at school) excelled - I got 100% in the course, many of my friends got 95%+ (which in the UK, where 80% is considered excellent, is a very good mark).

Many others really, really floundered. They had no clue what they were doing. I finished the task in about a 1/3 of the time, others were working right up to the deadline and ended up getting 50% or so.

I'm not an excellent programmer. My skills might be above the average in mechanical engineering, but that really isn't saying much. I'd bet that double hump is less to do with some innate ability and more to do with exposure to programming at a younger age.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#106

The single concept that kept me from understanding basic coding was the mutability of variables. After years and years of algebra teaching me that variables were inherently immutable, I automatically assumed that was a universal law that was never broken. Then again that proves that I at least thought there was a system.

too bad they didn't introduce functional programming to you then. because in a language like Haskell, pure variables are inherently immutable.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#107
post #79
post #70

Earlier quoted context omitted.

First, it's not my job to educate you. Go look it up yourself if you feel like commenting on it. The fact the original poster fabricated his post out of naked overconfident ignorance is more than enough to warrant a snide reply. His post was not a critique on current educational theory or instruction but based on his experiences as a grade schooler that might be decades out of date, and seen through the eyes of a chi…

Since you've been registered here almost two years, I would hope you'd be aware that snide comments are discouraged here, regardless of context. I have yet to hear why you are more qualified to speak on the topic than anyone else, but I will add my personal experience as a student - I went to some good schools and had some good teachers, but we were rarely introduced to a topic in different ways. For one thing, there…

I'm not going to defend parfe but I will point out that just because you may not have been offered three different ways of learning a subject doesn't mean the school was only offering one and only one way of teaching it.

The original article is saying based on a simple test you can throw half of the students directly into a 'learn to program' class and the other group into something else (I wish they had explored that a bit more). At no point is the student offered a choice. From their perspective the school only has one track.

Now, your school may indeed have been terrible... but I think the point that parfe was trying to make (ineloquently) is: don't presume that your one experience makes you an expert in the system. You probably weren't even aware of things going on behind your back in your own school, much less all of the other schools in the 'education system'.

This is one of those things like graphic design.. Everyone has an opinion; some people have training. Those who work in the field might come resent those who have opinions without knowing about the training.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#109
post #13

I see this largely as a failure of education. You see this issue in many areas and much earlier on like teaching mathematics. In schools there tends to be one method used and that method doesn't suit everybody. I see this at work. I've known programmers who, when they get a new hire, will basically let them flounder. I guess the basic idea is that if you're "good" you'll "figure it out" (with minimal time investment…

I completely disagree.

I firmly believe that either you are born with the ability to be a programmer or you're not. That's not saying that it's good or bad, but I believe a lot of it is just how your brain is configured. It's as innate as the ability to shoot baskets, or throw a football, or as innate as gaining energy when interacting with people (extrovert) vs losing energy when interacting with people (introvert).

Case in point: there are some people who are extremely smart, but don't have the ability to visualize things like a map in their head. I know someone who loves cars, has been into cars since he was a teenager, and loves driving. However, for the life of him, he can't read a map. He's not dumb at all, he's very intelligent and excellent with computers. But he has no ability to visualize things in his head and spin them around. So when he's given instructions on where to go, he needs landmarks, ie. "Turn left at the McDonald's and turn right when you get to the 4th traffic light." He can't process "Go north on Main Street, and then head East along Central Ave."

I believe programming is the same way. There's a type of inner mental gymnastics that you need to do in order to program well, because a lot of the things are very cerebral. Some people just can't do it. I'm not saying that they can't be taught how to program to an adequate level, but the fact that it so goes against the mesh of how their thought process works, it just won't be enjoyable to them. They will never be better than adequate.

Of course, most of us here probably can't picture that, so many of you might think I'm wrong. But put it in another perspective. We can all be taught to throw a football perfectly. But does that mean we'll be any good at it? Probably not. If we don't have the physical ability to throw a football more than 10-15 yards (like me), will it be fun for us? Probably not. But if you were a football player, hanging out with a bunch of other football players, you wouldn't understand why everyone can't throw a football more than 40 yards.

The same goes for Sales. I've come to learn from my friends who are salesmen that the sales cycle is largely algorithmic. So it can be taught. But getting out in front of customers every day, chit-chatting, engaging them, etc, is something that many of us simply aren't built to do. It takes a certain personality type to actually enjoy this. And there are plenty of them that do enjoy this and make vast sums of money. But if I were put in that position, I would hate every second, and would likely get fired.

So yes, programming can be taught, but I truly believe that there is an innate mental configuration that determines whether or not you can digest and learn the information and whether you'll be good at it, and more importantly whether or not you'll actually enjoy it.

Re: Coding Horror: Separating Programming Sheep from Non-Programming Goats

#110
post #13

I see this largely as a failure of education. You see this issue in many areas and much earlier on like teaching mathematics. In schools there tends to be one method used and that method doesn't suit everybody. I see this at work. I've known programmers who, when they get a new hire, will basically let them flounder. I guess the basic idea is that if you're "good" you'll "figure it out" (with minimal time investment…

I completely disagree. I firmly believe that either you are born with the ability to be a programmer or you're not. That's not saying that it's good or bad, but I believe a lot of it is just how your brain is configured. It's as innate as the ability to shoot baskets, or throw a football, or as innate as gaining energy when interacting with people (extrovert) vs losing energy when interacting with people (introvert).…

Comments like this really undermine what it means when someone is good at something, be it coding, throwing a ball, writing, what have you.

It is not a matter of being born with it. It isn't a matter of being smart.

It is all fucking work. It is never being satisfied. Its trying so hard and getting so pissed off that you throw the ball in the dumpster, that you smash your fist into the keyboard and walk away, that you tear up the papers and throw them in trash. But you always come back, because you won't let it beat you. You have to know how it works. You have to know how they do that thing you saw them do. You want to do it like they do. You want to do it better.

So it isn't pixie dust, it isn't innate ability, it isn't being smart. It is all fucking work.

Post reply on HN