Live data from Hacker News

Coding Horror: Separating Programming Sheep from Non-Programming Goats

codinghorror.com

51–60 of 140 posts

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

#51
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…

You may want to re-read the article. It never said that having a correct mental model of assignment meant anything at all. It said having a _consistent_ mental model of assignment was what was important. Correctness can be taught, but people who cannot maintain a consistent model will always fail, because even if they're taught the correct way, they won't apply it consistently.

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

#52
post #29

Earlier quoted context omitted.

> 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. Good thing professional educators are almost as observant as you in regard to teaching. http://lmgtfy.com/?q=differentiated+instruction I really love how HN conceit lets people post about entire industries a…

I read cletus's post to suggest that primary math education (i.e. young children) isn't personalized very much. This is demonstrably true, at least in the U.S. A lot of it is budgets and politics. No need to infer that cletus believes he is a more thoughtful educator than people who spend their careers on it.

> This is demonstrably true, at least in the U.S.

Demonstrably true here in India as well.

True that I can't speak for all of India, or you can't speak for all of US; but I believe I have enough data points for the extrapolation to be valid.

I think that's enough to infer we have a problem, and it's largely ignored.

> cletus believes he is a more thoughtful educator than people who spend their careers on it.

I don't think it matters what cletus thinks. Conceited or not, I see his observations mostly hold in the real world.

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

#53
I've worked with freshman CS students.

The aggregate breaks down like this, loosely:

20% succeed, always. Hackers/nerds, basically.

80% might succeed. They don't have the talent. They succeed or fail on teacher's competence and their own hard work and background.

20% fail, always. Cheaters, people who are constitutionally incapable of getting it, misplaced students, people with health issues, etc.

The 80% is what a teacher can affect. If they don't have the thinking (math/logic) background or the curiosity, they probably won't do well.

Teaching is hard. It's probably the hardest task I've ever done.

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

#54
post #16

I studied to become a computer science teacher. I have not finished my certification for various reasons but I have some limited field work under my belt along with numerous discussions and readings. And, of course, my anecdotal but legitimate experience in public schooling. Let's get one thing straight: the problem is bad teachers. My mentor once said it kind of sucks that UTeach was only available to UT students an…

Thanks for the CS Unplugged link. The program looks very cool!

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

#55
Aside: I think it would be better were the animals the other way around: sheep aren't very smart (they have a tendency to start following one another for no real reason and this can quickly build up into a stampede) but goats are intelligent, curious creatures, much like programmers.

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

#56
post #23

Earlier quoted context omitted.

> 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've found that education, at least K-12, is slowly shifting attitudes from 'Why are students so dumb?' to 'How can we teach this better?' Computer Science is notoriously bad at believing the former over the…

It would be a lot easier to teach CS to 18 year olds if they had stronger foundations in algebra, logic, and abstractions. When "teach a bunch of freshmen to program" is your mission statement then it's perfectly understandable to prefer the students with solid fundamentals.

No, it's not. Sorry to be blunt, but it seems colleges want more and more of their students.

Already know how to program and have several jobs under your belt to prove it? Step right in, of course we'll accept you over the schmuck who wasted his high school drawing or playing music.

It angers me that what is primarily an educational institution insists on having their students pre-educated. You'd ideally want your students to have solid fundamentals, yes. But the reality is that most of them don't, and casting away those kids is the easy way out. I listened to a talk by a dean of one of the best technical schools in Turkey, and he said, "we spend your first year erasing all the junk put into your brain in highschool, and re-teach you the fundamentals". I think this is the better way.

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

#57
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.

Exactly.

Way back in the 1980s, when I was an undergrad, just switched majors from Journalism to Computer Science, I had a professor that tossed this very exercise out during class, my 1st class (which we quickly learned Fortran, then Pascal at a slower pace, titled "Intro to Programming and Algorithms I"). Except he named the variables BARF and BEER. And led everyone to believe that if BARF = 3 and BEER = 47 and then BARF = BEER, that their storage contents would be reversed. Nodding his head and asking if this was correct -- to which the entire class raised its hand except for the very few (this was 1983 mind you) who had some experience who sat smugly by, knowing the punchline already.

I instinctively also raised my hand, but had an inkling that something was askew, and in a snap, I got it, before he "played CPU" and scribbled an line-by-line execute process on the chalkboard. It might sound trite, but it was a thrilling note, to realize something logical that your brain short-circuits. Today, in languages, you can write something like "a, b = b, a", giving you that sugar sparing temporary variable and confirmed my choice to pursue a computer science degree.

That "aha" moment was repeated when learning about pointers, recursion, regular expressions, etc.…

But I wonder, the way my 1st teacher presented it, if the way he stoked and kindled the curiosity fueled and whetted an aptitude for programming. Not that it made me super-rock-star-programmer but it certainly led me on a quest that resulted in semi-successful (I mean I have made a living, but not built things that sold for millions and billions :)) career. Contrast that to advanced math classes I had where the professors were arrogant a-holes, seemingly solely interested in showcasing their intellectual chops.

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

#58
In 1995, I used to tutor my classmates in a first year computer science course. I noticed that the people I tutored always had a bad attitude towards programming. I used to hear (and have to deal with) objections like, "this is stupid" or "this is boring"...

In retrospect, I don't know why I put up with all of that. I think it was 18 year old Greg's way of meeting girls...:)

I wonder if attitude towards programming is responsible for the distribution? Seems to me that people either love programming or loathe it - there isn't a whole lot of middle ground.

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

#59
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. Say: That's why the first group (the predicted to be successful group) is defined as forming a consistent mental model and not necessarily the correct one: > 44% of students formed a consistent mental model of how assignment works (even if incorrect!)

How about students who reason like this:

I don't know what the notation means and there is no way for me to know what it means. Therefore I'm going to use a different interpretation in each question to minimize the variance in my grade.

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

#60
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…

Good points. To add a few from my own experience:

>I've come around to thinking that Zed Shaw (as just one example) is right about this. With his "Learn X the Hard Way" books he starts out by basically saying "just type this in" (and don't copy and paste). Don't worry what it does. You'll figure that out later.

That's basically the 10,000hr approach - the earlier you start programming, even at Zed's most basic level, the earler you start rewiring your neurons to do it more efficiently and effectively. For the natural born programmers in the article's study, this isn't necessary, but for that whole other group aren't natural born, I do believe something like this is very necessary if any of them hope to become effective programmers. It's not impossible for them, as the study implies, but does require taking into account how the mind works (which we know now thanks to modern neuroscience), how it is malleable, and then designing an instructional course around that understanding.

Additionally, trying to educate the 'goats', the second group, at the same pace as the 'sheep' is going to fail. It simply takes more effort and more time for their minds to adjust, for things to 'click', for their neural pathways to rewire. Especially when that the thing that is getting rewired is their fundamental need to grok meaning amongst the relatively 'meaningless' rules that programming consists of. They're not a lost cause, but trying to educate them with the same curriculum and pace is.

Finally, the programming instruction should, as you imply, be bottom-up exploratory, not top-down memorize-apply-repeat. Part of the problem may also be that people with weaker working memories have a harder time with the academic approach to learning, even project-based ones. One of my favorite pieces of anecdotal evidence for this is from a story Paul Graham linked from 'Beating the Averages' [0].

So, given that it takes significantly more time and effort for the second group, it is all the more imperative that they start earlier, as early in life as possible. As soon as they can read and type, basically.

And in order to increase the amount of time per day that such students can spend practicing programming, it may also be worth delaying math education, or integrating it with programming education. Something's gotta give. No more pen and paper math, or even calculator math, if possible, rather learn how construct and solve math problems in code.

That may sound extreme, but given where the world is going [1], I think nothing should be off the table when it comes to teaching people, even (especially) the 'goats', to code. Even if they go on to non-programmer jobs, the ability to think both abstractly and concretely simultaneously, and the ability to handle meaninglessness, are both supremely valuable, no matter what you endeavor.

0. http://www.trollope.org/scheme.html

1. http://online.wsj.com/article/SB1000142405311190348090457651...

Post reply on HN