Ari_Rahikkala comments on Checking for the Programming Gear - Less Wrong

5 Post author: MBlume 08 September 2012 08:38PM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (53)

You are viewing a single comment's thread. Show more comments above.

Comment author: kilobug 10 September 2012 08:05:12AM 2 points [-]

I did teach Python at a computer science school (people there already had 2 years of scientific studies after "bac"), and I was amazed to see how hard it was for some of them to understand that in Python :

>>> 4+2
6
>>> "4"+"2"
'42'

So yes, I guess the key is about understanding what types are. The same kind of issues arise between using a variable and the variable name.

Now, I'm not sure how much this is teachable and when (ie, maybe it's a kind of skill you've to learn when you're young to really grasp). I started programming when I was 11, so there may be something around it, but I don't have much data on that.

Comment author: Ari_Rahikkala 16 September 2012 01:34:56PM 2 points [-]

To be fair, it's not really enough to know what types are to get this one right. You have to understand that the + operator is overloaded based on the types of its operands; that is, + actually means several different things, depending on the operand types. The experience people have of + meaning numerical addition might be interfering with their learning. Maybe if someone else's students had problems with it, they could try defining a function putTogether (a, b) and telling the students that it's a mysterious black box that does one arbitrary thing for numbers and a completely different thing for strings. Then you could leave revealing that it's actually the language's + operator that has this strange behavior for later.