Re: PPIG discuss: Programmer education argument-starter of the week
On Jul 4, 2007, at 10:55 AM, Frank Wales wrote: Charles Knutson wrote: I believe there is a taxonomy of four types of people, relative to professional software construction: 1) Those born to code, who need almost no coaching; 2) Those born capable but in need of training in order to be successful; 3) Those not really born to it, but who can be trained sufficiently to make a living; 4) Those whose brains are really not wired to build software at all. As a matter of interest, do you have a sense of how the general population is distributed across these suggested types? Rather than just categories or types, I'd actually propose a spectrum of capabilities, with people who just 'get' computer technology at one end, people who would sooner eat lint that use it to check their C programs at the other, and the substantial mass of people bulging somewhere along the middle. (Of the spectrum.) I'd speculate, completely without anything beyond years of experience and arrogant presumption, that the "just get computer technology" end of the spectrum glows with about 5% of the population, the "couldn't write 'hello, world!' despite years of practice" end is dimmed by maybe 15% of the population, while the remaining 80% of the population huddles around various quantumly-distributed embers in between. I think the end groups are inherent, while the huddles are plastic. Of course I have no objective evidence for what the actual distribution might be. If anyone has seen any empirical take on this distribution, it would be very interesting. I could easily buy the idea that the top is 5% and the bottom 15%. I also concur completely with the idea of a spectrum. My taxonomy was more of a highly granular way of describing such a spectrum. My apologies to anyone who was expecting a fist fight ;) Two last thoughts on inherent aptitude: 1) I've recently run into students who took the first semester programming class at BYU, did well, got their 'A', and then washed their hands of the field and went off to study business or something else. Clearly they are capable of programming, at least at the entry level, but the biggest dissuading factor to them was the inherent motivation (or lack thereof). One of them told me that after spending 15 hours on a programming project, and finally getting it working and passed off, they felt like they had been robbed of 15 hours of their life that they would never get back! That was such a news flash to me! In *my* experience, every program or project I ever finished has carried with it some sense of euphoria and satisfaction that seemed to make all the pain worthwhile. And much of my programming time has been somewhat rhapsodic, like a runner's high. So while I don't consider myself to be the most gifted programmer (or even necessarily a member of the first group) I have always been quite satisfied and happy with the process of constructing software. 2) I just started reading Stephen King's "On Writing." Interesting to find this quote on page 4 (substitute "computer programmers" for "writers"): "This is not an autobiography. It is, rather, a kind of curriculum vitae--my attempt to show how one writer was formed. Not how one writer was *made*; I don't believe writers *can* be made, either by circumstances or self-will (although I did believe those things once). The equipment comes with the original package. Yet it is by no means unusual equipment; I believe large numbers of people have at least some talent as writers and storytellers, and that those talents can be strengthened and sharpened. If I didn't believe that, writing a book like this would be a waste of time." Just a bit more grist for the mill. Chuck -- Charles D. Knutson, Ph.D. Associate Professor, Computer Science Dept. Brigham Young University www.charlesknutson.net -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
I just wrote: > Rather than just categories or types, I'd actually propose a spectrum Did I say 'spectrum'? Apparently, I meant 'Humpy the camel': http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf -- Frank Wales [EMAIL PROTECTED] -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
William Billingsley wrote: > Consider for a moment if we could identify the cognitive requirements of > a profession, the cognitive abilities of candidates, and could simply > cross-check between them to see if candidate X could achieve proficiency > in profession Y. I refer you my forthcoming analysis of the historical document "Futurama -- episode one", with specific reference to my hypothesis that suicide booths were an inevitable reaction to career chips. The work will also highlight how, even with the wide availability of direct brain interfaces and caffeinated bacon, just anyone still can't learn to program by the year 3000. Note that by 'forthcoming', I mean 'in my dreams', and by 'anyone', I mean *anyone*, from lawyer to lorry driver, from burger flipper to politician, from housewife to astronaut to housewife-stalking astronaut, from homeopath to psychopath to super-intelligent garden path, Pat Robertson, Steve Jobs, Richard Dawkins, Edward Norton, Paris Hilton, Tony Blair, George W Bush, maybe even Tom Cruise, but probably not that guy who dropped out of media studies because it was "too technical". I just wanted to clarify that other less flippant contributors to this thread were also using 'everyone' and 'anyone' in such an all-encompassing way, rather than using them to mean something closer to 'students with some programming element in their courses who actually turn up to my class'. > [...] most students dropped out because > of the same effects of moving away from home for the first time (not > being forced to work, meeting girl-/boyfriends, availability of drugs, > etc) as for any other subject. Not being forced to work, meeting girlfriends and availability of drugs, eh? Where was this campus all the times that I went University? Charles Knutson wrote: >> I believe there is a taxonomy of four types of people, relative to >> professional software construction: >> 1) Those born to code, who need almost no coaching; >> 2) Those born capable but in need of training in order to be successful; >> 3) Those not really born to it, but who can be trained sufficiently to make >> a living; >> 4) Those whose brains are really not wired to build software at all. As a matter of interest, do you have a sense of how the general population is distributed across these suggested types? Rather than just categories or types, I'd actually propose a spectrum of capabilities, with people who just 'get' computer technology at one end, people who would sooner eat lint that use it to check their C programs at the other, and the substantial mass of people bulging somewhere along the middle. (Of the spectrum.) I'd speculate, completely without anything beyond years of experience and arrogant presumption, that the "just get computer technology" end of the spectrum glows with about 5% of the population, the "couldn't write 'hello, world!' despite years of practice" end is dimmed by maybe 15% of the population, while the remaining 80% of the population huddles around various quantumly-distributed embers in between. I think the end groups are inherent, while the huddles are plastic. I also think that people who couldn't grasp programming in their cute, butter-secreting paws at any point during the lifetime of a non-terminating Sunday generator tend to be missing from our web-enabled world in much the same way as Star Trek fans tend to be missing from WWF wrestling matches; a combination of self-defensive avoidance of what they're bad at, while haphazardly sticking to what they're actually good at. Nick Flor wrote: > For the record, I believe anyone can learn to program at a professional > level. Just to make sure I'm insulting as many people as possible in one message, I would counter that if we really could teach *anyone* (see earlier definition) to program at a professional level, it would be compelling evidence that our standards for "professional programmer" weren't high enough yet. Which might go some way towards explaining this: http://www.codinghorror.com/blog/archives/000781.html -- Frank Wales [EMAIL PROTECTED] -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
how to become self-sustaining after that. I believe there is a taxonomy of four types of people, relative to professional software construction: 1) Those born to code, who need almost no coaching; 2) Those born capable but in need of training in order to be successful; 3) Those not really born to it, but who can be trained sufficiently to make a living; 4) Those whose brains are really not wired to build software at all. Just my two cents. Your mileage may vary. Chuck -- Charles D. Knutson, Ph.D. Associate Professor, Computer Science Dept. Brigham Young University www.charlesknutson.net On Jul 3, 2007, at 6:18 AM, Nick Flor wrote: Ah, brings back memories. The concepts you're referring to are "neural plasticity" and "critical periods." The studies I'm familiar with focus on learning (human) languages. Supposedly, past a certain age you can learn a language, but you'll never pick up all the little nuances that the natives have. For the record, I believe anyone can learn to program at a professional level. The question is, are they willing to put in the time to acquire all the chunks needed to be an expert? Unfortunately, we can't force our students to put in the time. Just my opinion, - Nick ________ From: [EMAIL PROTECTED] on behalf of ok Sent: Mon 7/2/2007 10:01 PM To: [email protected] Subject: Re: PPIG discuss: Programmer education argument-starter of the week On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote: So I would be, frankly, astonished if it could be shown that *everyone* is equally trainable in programming to a professional standard, any more than it could be shown that everyone could learn to be a professional golfer or a professional artist or a professional mathematician or a professional teacher. Actually I think that most people could be trained to these levels or pretty close to them with sufficient effort. ... The neurologist made the point that some things take a LOT of practice and if you start too late you will NEVER be much good at it. You cannot expect a professional baseballer to also play tennis to professional level (although he would of course beat a rabbit like me every time). CONFIDENTIALITY NOTICE "This e-mail, including all attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited unless specifically provided for under the New Mexico Inspection of Public Records Act. If you are not the intended recipient, please contact the sender and destroy all copies of this message. Any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of the Anderson School at UNM." - - PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
No, Frank, that's not the sense in which I meant "geek gene." I quite literally am saying that it is hard to believe that some people are "born" to code -- I see no evidence that predisposition to programming is genetic. Charles Knutson's anecdote is a good case in point. His anecdote of how he came to program starts at age 13. Thirteen years is an enormous amount of time to engage in a lot of basic learning--that's not a "blank slate." The point about neural plasticity that Nick is describing tends to be reserved for expertise. While it does seem to be true that one cannot learn to speak a foreign language as a native if one starts too late, it also seems to be true that most people are capable of learning the basics of other languages at any age. If we consider the "Camel" paper, what is being described there is not programming expertise as much as basic introductory computing. While it may be that one cannot become an expert programmer if one starts too late (though, again, we have no evidence for that), it may be that anyone can learn some programming expertise at any age. Walter's point that subitizing is a poor example is well taken. There are other basic skills and number concepts associated with learning math and having a "disposition" toward math. The question about which I was wondering aloud is what the similar basic skills and concepts are for computing. Mark From: Frank Wales [mailto:[EMAIL PROTECTED] Sent: Mon 7/2/2007 11:14 AM To: Guzdial, Mark Cc: Lindsay Marshall; Peter Gutmann; [EMAIL PROTECTED]; [email protected] Subject: Re: PPIG discuss: Programmer education argument-starter of the week Oh, by the way... A while ago, Mark Guzdial wrote: >[...] If we're agreed that there is no "geek gene," I don't agree with that contention at all, in the sense that I believe that some people have a knack for technology that others don't, that that knack is as much a part of their make up as their height or gender, and that picking up geeky stuff (including programming) is noticeably easier for those with that knack than for those without it. I'm perfectly happy to offer myself as a data point in favour of my claim, since I have a pretty good idea of how I got to be a programmer, and it wasn't because of the concerted efforts of others (including teachers and parents and friends) to push me in this direction. (I realize that one data point doesn't make a trend, even for vociferous values of 'data point', but it's a start.) Rather than being some post-modern development, I think 'geekiness' is apparent throughout history, and has a clear social value, especially since the inventions of the division of labour and written language. It just so happens that our headlong hurtle into a shiny, robot-cluttered future has changed the social evolutionary pressure on us to favour our geeky side more than ever, with a consequent, and strangely satisfying, increase in the whining from the non-geek contingent. (I also happen to think that most of the advances of civilization have been down to geekiness prevailing over brute force and ignorance, but then I would think that.) So I would be, frankly, astonished if it could be shown that *everyone* is equally trainable in programming to a professional standard, any more than it could be shown that everyone could learn to be a professional golfer or a professional artist or a professional mathematician or a professional teacher. Now, where's that shiny robot waiter with my gadget cocktail? -- Frank Wales [EMAIL PROTECTED]
Re: PPIG discuss: Programmer education argument-starter of the week
I'm not convinced that absolutely *anyone* can learn to be a professional X (whatever X is). I think there are some who are really just wired to do other things. But I am confident that there are varying degrees to which inherent aptitude plays a role, and similarly varying degrees to which effective learning experiences contribute to facilitate those individuals who can, in fact, be successful at profession X. As evidence, I offer the following non-empirical anecdote. I started programming in 1973, when I was 13 years old. Our high school had a timesharing account on a mainframe at the University of Northern Iowa, and a DecWriter with a suction cup modem and a rotary phone with a dedicated line to the university. About a half dozen of us math geeks gathered daily in a room to play with the computer (which largely consisted of playing Dungeons and Dragons and Star Trek, with intermittent fits of attempted software design and code construction). Several of my friends just seemed to have the knack right out of the chute. We'd dumpster dive at the university for discarded manuals, and that was all Brian and Doug needed to build software. I tried desperately but couldn't get it beyond a fundamental level. The other guys were more or less like me, in love with the technology, but not fluent with the incantations. Years later, in my second semester at the University of Iowa, I had a really well constructed and well presented Computer Science class that focused primarily on design. During that semester, the light came on, and I got it! From that semester it was simply a matter of learning new skills and piling them onto the foundation I had now acquired. I had a very successful professional career building software (HP, Novell, various small companies and consulting gigs), picked a few graduate degrees along the way, and then retired to the university to stop producing and begin pontificating. :) As an epilogue, of the group of math geeks that gathered together daily in high school to play with the DecWriter, all but one of us acquired degrees in Computer Science, with the other one (Brian) doing Electrical Engineering. My personal experience is that I was always fascinated, I was obviously capable, but I needed someone to throw the switch for me to understand how to become self-sustaining after that. I believe there is a taxonomy of four types of people, relative to professional software construction: 1) Those born to code, who need almost no coaching; 2) Those born capable but in need of training in order to be successful; 3) Those not really born to it, but who can be trained sufficiently to make a living; 4) Those whose brains are really not wired to build software at all. Just my two cents. Your mileage may vary. Chuck -- Charles D. Knutson, Ph.D. Associate Professor, Computer Science Dept. Brigham Young University www.charlesknutson.net On Jul 3, 2007, at 6:18 AM, Nick Flor wrote: Ah, brings back memories. The concepts you're referring to are "neural plasticity" and "critical periods." The studies I'm familiar with focus on learning (human) languages. Supposedly, past a certain age you can learn a language, but you'll never pick up all the little nuances that the natives have. For the record, I believe anyone can learn to program at a professional level. The question is, are they willing to put in the time to acquire all the chunks needed to be an expert? Unfortunately, we can't force our students to put in the time. Just my opinion, - Nick From: [EMAIL PROTECTED] on behalf of ok Sent: Mon 7/2/2007 10:01 PM To: [email protected] Subject: Re: PPIG discuss: Programmer education argument-starter of the week On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote: So I would be, frankly, astonished if it could be shown that *everyone* is equally trainable in programming to a professional standard, any more than it could be shown that everyone could learn to be a professional golfer or a professional artist or a professional mathematician or a professional teacher. Actually I think that most people could be trained to these levels or pretty close to them with sufficient effort. ... The neurologist made the point that some things take a LOT of practice and if you start too late you will NEVER be much good at it. You cannot expect a professional baseballer to also play tennis to professional level (although he would of course beat a rabbit like me every time). CONFIDENTIALITY NOTICE "This e-mail, including all attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited unless specifically provided for
Re: PPIG discuss: Programmer education argument-starter of the week
Frank Wales wrote: > Bjorn Reese wrote: >> The students used longer titles, such as "count number of >> occurrences" and "find if any element is of some sort", whereas the >> professionals used short titles, such as "count" and "find". >> >> This could indicate that the looping constructs belong to the >> basic-level category (Rosch, 1978) of the professionals but not >> of the student. > > Or it could mean that the students were in the habit of being > overly verbose in answering questions, since terseness is generally > not rewarded in exams, while it often is rewarded in business. This is a good observation. The study was not designed to investigate this issue. The subjects were only asked to give a descriptive title so that I could check that they knew what the loop was doing. The difference in title length was an unexpected outcome, and the basic-level category comment is best speculation I could come up with. I just went back and read the questionnaire responses once more. The questionnaire had a number of questions where the subjects were asked to describe something in their own words. The verbosity of the students and the professionals on these other questions are about the same, so I somewhat doubt that the difference on the loop titles is due to the different reward systems as you suggest. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
Ah, brings back memories. The concepts you're referring to are "neural plasticity" and "critical periods." The studies I'm familiar with focus on learning (human) languages. Supposedly, past a certain age you can learn a language, but you'll never pick up all the little nuances that the natives have. For the record, I believe anyone can learn to program at a professional level. The question is, are they willing to put in the time to acquire all the chunks needed to be an expert? Unfortunately, we can't force our students to put in the time. Just my opinion, - Nick From: [EMAIL PROTECTED] on behalf of ok Sent: Mon 7/2/2007 10:01 PM To: [email protected] Subject: Re: PPIG discuss: Programmer education argument-starter of the week On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote: > >> So I would be, frankly, astonished if it could be shown that >> *everyone* is equally trainable in programming to a >> professional standard, any more than it could be shown that >> everyone could learn to be a professional golfer or a >> professional artist or a professional mathematician or a >> professional teacher. > > Actually I think that most people could be trained to these levels or > pretty close to them with sufficient effort. ... The neurologist made the point that some things take a LOT of practice and if you start too late you will NEVER be much good at it. You cannot expect a professional baseballer to also play tennis to professional level (although he would of course beat a rabbit like me every time). CONFIDENTIALITY NOTICE "This e-mail, including all attachments, is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited unless specifically provided for under the New Mexico Inspection of Public Records Act. If you are not the intended recipient, please contact the sender and destroy all copies of this message. Any views or opinions presented in this e-mail are solely those of the author and do not necessarily represent those of the Anderson School at UNM." -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
>There's a book on one of my study shelves at home by an >American neurologist. I'm sorry, I can't recall the name, but >I think it may have been the same one who wrote "Toscanini's >Fumble". One of the essays in it concerns the failure of >someone famous in sport X to be any good in sport Y, to which >he transferred. However there's also a book called "Tone Deaf and All Thumbs" which points out that lots of people learn things later in life particularly in music. (There is also a book called "Tolstoy's Bicycle" which lists the age at which people learned things). L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
On 3 Jul 2007, at 3:20 am, Lindsay Marshall wrote: So I would be, frankly, astonished if it could be shown that *everyone* is equally trainable in programming to a professional standard, any more than it could be shown that everyone could learn to be a professional golfer or a professional artist or a professional mathematician or a professional teacher. Actually I think that most people could be trained to these levels or pretty close to them with sufficient effort. There's a book on one of my study shelves at home by an American neurologist. I'm sorry, I can't recall the name, but I think it may have been the same one who wrote "Toscanini's Fumble". One of the essays in it concerns the failure of someone famous in sport X to be any good in sport Y, to which he transferred. The neurologist made the point that some things take a LOT of practice and if you start too late you will NEVER be much good at it. You cannot expect a professional baseballer to also play tennis to professional level (although he would of course beat a rabbit like me every time). All the really good programmers I've ever met picked up the elements of the subject (including assignment statements) before anyone tried to teach them. That includes colleagues and students taught here. The one programming paper I ever had as an undergraduate was actually a numerical analysis paper taught by a really good numerical analyst who was not much good as a programmer. I sometimes think we can't teach programming at all; the best we can do is provide an opportunity for people to learn without getting in their way too much. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
I hesitate to insert a stereo-typical note into the conversation, but I think you may find this interesting http://uk.youtube.com/watch?v=CmYDgncMhXw The 'hero' is going to take to programming like a duck to water. Those of us who have 'The Knack' know it ... and can recognise it in those of our grandchildren who share it rgds Alex. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Paola Kathuria Sent: 02 July 2007 18:46 To: PPIG Discussion List Subject: Re: PPIG discuss: Programmer education argument-starter of the week Mark Guzdial wrote: > What motivates > someone to pick up programming without any previous background (and > without, presumably, any desire to make it a profession)? I clearly remember why I wanted to learning to program, being stumped when I started and the "aha!" moment when I got it. When I was 18, I had a feeling I would like (and be good at) smoking, programming and shooting guns. In my final year of my psychology degree, programming was one of the offered options and I jumped at it. We were taught BASIC and I remember staring miserably at a slide with: LET A = A + 1 I was flumoxed, thinking that it made no sense at all. My "aha!" was when I realised that, although the 'A's looked exactly the same (which rendered the statement meaningless), the A on the left was actually the 'A' in the future. In contrast, I did badly on my physics 'A' level because I got stumped frequently in class but was too shy to ask for help. Soon, there's nowhere meaningful (in one's head) to store the continual incoming new information and it all becomes gobbledeegook. Paola -- http://www.paolability.com/ -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/ This message and any files transmitted with it are legally privileged and intended for the sole use of the individual(s) or entity to whom they are addressed. If you are not the intended recipient, please notify the sender by reply and delete the message and any attachments from your system. Any unauthorised use or disclosure of the content of this message is strictly prohibited and may be unlawful. Nothing in this e-mail message amounts to a contractual or legal commitment on the part of EUROCONTROL, unless it is confirmed by appropriately signed hard copy. Any views expressed in this message are those of the sender. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
Mark Guzdial wrote: > What motivates > someone to pick up programming without any previous background (and > without, presumably, any desire to make it a profession)? I clearly remember why I wanted to learning to program, being stumped when I started and the "aha!" moment when I got it. When I was 18, I had a feeling I would like (and be good at) smoking, programming and shooting guns. In my final year of my psychology degree, programming was one of the offered options and I jumped at it. We were taught BASIC and I remember staring miserably at a slide with: LET A = A + 1 I was flumoxed, thinking that it made no sense at all. My "aha!" was when I realised that, although the 'A's looked exactly the same (which rendered the statement meaningless), the A on the left was actually the 'A' in the future. In contrast, I did badly on my physics 'A' level because I got stumped frequently in class but was too shy to ask for help. Soon, there's nowhere meaningful (in one's head) to store the continual incoming new information and it all becomes gobbledeegook. Paola -- http://www.paolability.com/ -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
>So I would be, frankly, astonished if it could be shown that >*everyone* is equally trainable in programming to a >professional standard, any more than it could be shown that >everyone could learn to be a professional golfer or a >professional artist or a professional mathematician or a >professional teacher. Actually I think that most people could be trained to these levels or pretty close to them with sufficient effort. However, people can't be trained to be virtuosi - that requires something more which may well be a geek gene, or a sheer bloodymindedness gene or just some lucky physical accident of body configuration, or all three. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
Oh, by the way... A while ago, Mark Guzdial wrote: >[...] If we're agreed that there is no "geek gene," I don't agree with that contention at all, in the sense that I believe that some people have a knack for technology that others don't, that that knack is as much a part of their make up as their height or gender, and that picking up geeky stuff (including programming) is noticeably easier for those with that knack than for those without it. I'm perfectly happy to offer myself as a data point in favour of my claim, since I have a pretty good idea of how I got to be a programmer, and it wasn't because of the concerted efforts of others (including teachers and parents and friends) to push me in this direction. (I realize that one data point doesn't make a trend, even for vociferous values of 'data point', but it's a start.) Rather than being some post-modern development, I think 'geekiness' is apparent throughout history, and has a clear social value, especially since the inventions of the division of labour and written language. It just so happens that our headlong hurtle into a shiny, robot-cluttered future has changed the social evolutionary pressure on us to favour our geeky side more than ever, with a consequent, and strangely satisfying, increase in the whining from the non-geek contingent. (I also happen to think that most of the advances of civilization have been down to geekiness prevailing over brute force and ignorance, but then I would think that.) So I would be, frankly, astonished if it could be shown that *everyone* is equally trainable in programming to a professional standard, any more than it could be shown that everyone could learn to be a professional golfer or a professional artist or a professional mathematician or a professional teacher. Now, where's that shiny robot waiter with my gadget cocktail? -- Frank Wales [EMAIL PROTECTED] -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
On 01/07/07, Lindsay Marshall <[EMAIL PROTECTED]> wrote: >Bjorn Reese wrote: >> The students used longer titles, such as "count number of >> occurrences" and "find if any element is of some sort", whereas the >> professionals used short titles, such as "count" and "find". >> >> This could indicate that the looping constructs belong to the >> basic-level category (Rosch, 1978) of the professionals but not >> of the student. >Or it could mean that the students were in the habit of being >overly verbose in answering questions, since terseness is generally >not rewarded in exams, while it often is rewarded in business. Indeed it could also mean the students had absorbed a lesson about writing meaningful comments and the professionals were, well, professional programmers. Yes, indeed it could. It's an interesting point because, in my experience teaching 'professional skills' such as good documentation standards is one of the single most damaging things that a teacher can do to new programmers. We regularly get students who have learned 'programming' at College, and somehow have absorbed a set of nonsensical rules like "comment every line of code" and yet don't understand basics like assignment. Apart from thinking unrepeatable thoughts about their previous teachers, it strikes me that this sort of thing is massively confusing, as the biggest difficulty in teaching programming is breadking up the huge number of concepts students have to learn and teaching them one at a time. This is, I think, where Betty Edwards really was quite brilliant -- not only is her book somewhat subversive, but it breaks down a very complex cognitive process into a few very simple actions. Sarah -- Sarah Mount, Senior Lecturer, Creative Computing, Coventry University http://cogentcomputing.org/ http://www.youtube.com/groups_videos?name=creativecomputing http://varspool.blogspot.com/ http://flickr.com/photos/sarahmount/ -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
>Bjorn Reese wrote: >> The students used longer titles, such as "count number of >> occurrences" and "find if any element is of some sort", whereas the >> professionals used short titles, such as "count" and "find". >> >> This could indicate that the looping constructs belong to the >> basic-level category (Rosch, 1978) of the professionals but not >> of the student. >Or it could mean that the students were in the habit of being >overly verbose in answering questions, since terseness is generally >not rewarded in exams, while it often is rewarded in business. Indeed it could also mean the students had absorbed a lesson about writing meaningful comments and the professionals were, well, professional programmers. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
Bjorn Reese wrote: > The students used longer titles, such as "count number of > occurrences" and "find if any element is of some sort", whereas the > professionals used short titles, such as "count" and "find". > > This could indicate that the looping constructs belong to the > basic-level category (Rosch, 1978) of the professionals but not > of the student. Or it could mean that the students were in the habit of being overly verbose in answering questions, since terseness is generally not rewarded in exams, while it often is rewarded in business. -- Frank Wales [EMAIL PROTECTED] -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
Lindsay Marshall wrote: > The skill that I most commonly notice in good programmers is chunking - they > can see the structure in complex systems easily and know what to ignore and > when to ignore it. It somehow seems analogous to subitizing in a way. I did a questionnaire study a few years ago in which I asked subjects to give a descriptive titles to various stereotypical looping constructs. For example, Loop 1: for (iterator fish = lake.begin(); fish != lake.end(); ++fish) if (isSalmon(*fish)) ++salmons; Loop 2: for (iterator fish = lake.begin(); fish != lake.end(); ++fish) if (isSalmon(*tool)) break; The questionnaire was given to two groups: computer science students and professional software developers. The students used longer titles, such as "count number of occurrences" and "find if any element is of some sort", whereas the professionals used short titles, such as "count" and "find". This could indicate that the looping constructs belong to the basic-level category (Rosch, 1978) of the professionals but not of the student. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
Mark Guzdial <[EMAIL PROTECTED]> said: > The question of what motivates people to learn to program is an open and > interesting research question-- [snip] > - At the low end: CMU's Software Engineering Institute estimates that > there are at least two and as many as ten times end-user programmers as > there are professional software developers today. What motivates > someone to pick up programming without any previous background (and > without, presumably, any desire to make it a profession)? So this particular question *is* rather well researched, largely by members of the EUSES consortium (End-Users Shaping Effective Software), of which CMU is indeed a member. Consortium members are currently preparing a review publication which will deal with this question fairly thoroughly, but for an early answer based on previous research, my own 2002 paper has stood the test of time pretty well: Blackwell, A.F. (2002). First steps in programming: A rationale for Attention Investment models. In IEEE Symposia on Human-Centric Computing Languages and Environments, pp. 2-10. http://www.cl.cam.ac.uk/~afb21/publications/HCC02a.pdf For more information on the research of the EUSES consortium: http://eusesconsortium.org/ Alan -- Alan Blackwell Computer Laboratory, University of Cambridge http://www.cl.cam.ac.uk/users/afb21/ Phone: +44 (0) 1223 334418 -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
[EMAIL PROTECTED] said: > What we really need is a "Drawing on the right side of the > brain" for programming. Lindsay - I like this suggestion. I'd want to sit down and discuss it over several drinks at PPIG next week, except that a) PPIG is in Finland, where we won't be able to afford several drinks), and b) I shall be at a meeting in Switzerland, so won't be at PPIG anyway. I suspect that Betty Edwards might be a far more appropriate model than Jeannette Wing's "Computational Thinking" syllabus. However, that might explain why I'll never be the head of CS at CMU! Alan -- Alan Blackwell Computer Laboratory, University of Cambridge http://www.cl.cam.ac.uk/users/afb21/ Phone: +44 (0) 1223 334418 -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
> What are the computing/programming analogous skills to subitizing? The skill that I most commonly notice in good programmers is chunking - they can see the structure in complex systems easily and know what to ignore and when to ignore it. It somehow seems analogous to subitizing in a way. What we really need is a "Drawing on the right side of the brain" for programming. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
-Original Message- From: Lindsay Marshall [mailto:[EMAIL PROTECTED] Sent: Tue 6/26/2007 4:27 PM To: Guzdial, Mark; Peter Gutmann; [EMAIL PROTECTED]; [email protected]; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: PPIG discuss: Programmer education argument-starter of the week > We know relatively little about what leads to success in programming. An interesting question then is how much we know about learning anything! Why do we think learning to program is different from learning anything else? = AGREED! Great question! Learning to program can't be different from any other kind of learning. Programming is too new to believe that we have evolved any particular new forms of learning that are particular to programming. You can pick your favorite neural or cognitive model of learning -- it's got to be the same for programming as math, art, science, or engineering. The reason for studying how people learn (and not learn) to program is because we can help them to do it better by understanding the domain and the task of learning that domain. For example, Gerhard Fischer (with John Seely Brown) wrote an article many years ago now about how skiing instruction was dramatically improved by considering how to use scaffolding to make it easier to focus on one skill at a time. The domain-specific education field that has made the most progress is mathematics education (though reading education may be as advanced). Mathematics education researchers have studied how children come to learn the concept of number, and in so doing, have learned about previously invisible enabling skills which, if missing, inhibit a child from learning mathematics. My favorite of these is subitizing. Subitizing is the ability to look at a set of items and know how many are there without counting. Everybody can do it for one to three items. More than that, we have to count--unless the items are in a well-known shape (like five or six on a die or a domino). Math ed researchers have found that the lack of subitizing skill (especially for sets of five and ten) inhibits later math learning. They have found ways of testing for subitizing skill and helping students develop that skill in preschool so that their math development isn't inhibited. What are the computing/programming analogous skills to subitizing? Let's consider the students who aren't learning to program in all our experiences. If we're agreed that there is no "geek gene," then it's not nature -- it must be nurture. The students who are learning to program have had some experience which has led to learning some skill/concept that the other students don't have. What might that be? - Maybe our students who learn to program more easily have more experience writing down or executing instructions? Maybe they have a stronger understanding of some underlying concept of what it means to define a process for another agent? - Maybe our students who learn to program more easily have had more experience thinking about repetitive tasks, how to describe them, or how to create shortcuts for them? In which case, they may have a stronger recognition of the need for an iteration control structure and what would be needed to keep the iteration from going on forever? So, the point isn't that learning to program is inherently different. It's different in the same ways as learning any domain is different from learning other domains. By understanding more deeply the challenges of learning to program, we can better help those students who do struggle and seem unable to learn to program.
RE: PPIG discuss: Programmer education argument-starter of the week
> We know relatively little about what leads to success in programming. An interesting question then is how much we know about learning anything! Why do we think learning to program is different from learning anything else? Relating it to personal experience, I found programming second nature, enjoy it immensely and it is what I do best - I don't even recall actively "learning", it all seemed pretty obvious (except quicksort which I have never understood). But I have "learned" (or tried to learn) many other things and I don't think that any of the learning experiences have been different from each other. Of course, the things I have been trying to learn are things that I want to do and am quite motivated towards. I have a strong phobia about swimming and have never learned to swim well : I would actually like to swim, but even trying to start lessons is hard I hate it so much, but when I *have* been taught the experience is not a lot different to other things and I can see that if I could stick at it I would get there. Learning the sax has been interesting since I know the music part of it already and what is left is purely sax technique. But again, the learning experience seems much the same. Why do we (or you or others) think programming is different? WHat evidence is there that it is different and if it is different what is it most like? L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
On Sun, 2007-06-24 at 02:26 -0400, Peter Gutmann wrote: > Going off on a bit of a tangent, what about considering the evidence > in "The > Camel has Two Humps" > (http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which > argues that > programming ability shows a strong bimodal distribution and that some > people > will never learn to program/be good programmers no matter what > teaching > methods you use, while others will, no matter what teaching methods > you use. > Maybe it's not a case of "you need to understand X" but "you need to > be born > with the geek gene". I'm responding to this message earlier in the thread, but in the context of Richard and Lindsay's later notes. The point that I was trying to make in response to the above is that we cannot claim "some people will never learn to program/be good programmers no what teaching methods you use." As Richard points out, the Camel paper test explains 23% of the variance -- that leaves 77% of the variance unexplained. Lindsay's reflections on motivation in programming vs. motivation in music, as well as Richard's observation on motivation, serve to support my claim: We know relatively little about what leads to success in programming. I whole-heartedly believe the Camel-paper claim that mental models are a significant factor, and I also believe that motivation is another significant factor. Whether motivation for professional programmers is different than that of end-user programmers is an open and interesting question, as Alessio has mentioned. Richard's story about the MS students and how motivation wasn't the critical factor in that experience is a fascinating story. The bottomline, though, is that we don't have a good explanation for who succeeded and who didn't in that story. I suggest that the jury is still out on whether some people can't learn to program. There is still a large unexplored space in explaining how and why people learn to program. Mark -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
>For a long time, ever since I had to teach a group of Masters >students who had paid for their own course and were trying to >convert to computer science to get a job, I haven't believed >that motivation is the major underlying cause of the two-hump >phenomenon. It must be that a proportion of 18-year olds are >unmotivated and don't try, but there are so many who are >desperate to succeed and don't seem to be able to. Perhaps the >week 3 effect will point to a remedy (come on Ron! give us >your data!) but more likely there is a weirdness that we've >hardly begin to understand let alone fix. Motivation may not be enough : if you simply don't enjoy something, motivation will not always overcome resistance. The fact that they are converting to get a job indicates that they are likely to enjoy other things (what they did in their first degree!!) rather than programming. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
As an (ex) compiler writer and one of the authors of the Camel paper, I feel impelled to wade in. Except I no longer think I have nothing interesting to say about understanding compilers: it's fun if you like it is all. The Camel paper was written very over-enthustiastically, for which I apologise. That enthused far too many people and annoyed many others. Both effects are to be regretted. Our results (Dehnadi's results, really, I'm just a part-time scribe) are interesting but not world shaking. In most of the experiments (four out of six) for which we now have data, we've found that the subgroup which scores 'consistent C0' (using the same mental model in eight out of twelve questions) is about half the sample, and has a strikingly significantly different failure rate to the rest of the sample. Typically we find the C0 group has a 20% failure rate or less, and the rest have about 50% failure rate. This isn't enough for us to claim (as I did, and I regret it) that we can divide sheep from goats, because the 50% false negative rate substantially undermines the test's efficacy as a predictive instrument. When we look more closely at the data we find more intriguing information. In three of the experiments there are enough females for us to be able to contrast them with males. The C0/not C0 distinction holds up well for males, but NOT for females. In females the test doesn't work: the inconsistent group does better than the consistent. Numbers are so small that we can't say much more, and given my apologies I'd better not start speculating again. (Since you ask, in the fourth experiment almost all of the females had previous programming experience and didn't score inconsistent, so no such effect.) We've also found, since Simon inspired us to include questions about sex and previous programming experience, that there is a significant group which has previous programming experience and already has the Java/C models of equals-sign-as-right-to-left-copy and juxtaposition- as-sequential-execution. This group -- call it CM2 -- skews the results somewhat by dragging the C0 average upward, but even when we exclude it from our analysis we can still see significant effects. On the whole, in those four experiments, my (feeble) grasp of statistics and the SPSS controls leads me to believe that Dehnadi's test predicts about 25% of the variance between groups. That may not sound much, but I have heard it said that since education is so multifactorial, 30% is about as much as you can hope for. So, as I said, at the moment interesting but not earth-shattering. The anomalous two experiments, of which the Aarhus experiment is one, do seem to have very different starting conditions. In both experiments almost all the intake scores consistent/C0 at the beginning (and at Aarhus it may be they score CM2, but I haven't had clarification of that point from the experimenters). We have some notion of why that happens in one experiment, which is in the UK, but I don't know how the Danish education system works, so can't speculate about Aarhus. One intriguing result which hasn't yet been replicated, because it was overlooked at first, is the 'week 3 effect' which Dehnadi found in his first experiment. Forget for the moment about consistency: just test whether students have the correct models of assignment and sequence in week 3, when they've been taught them. The single time it was tried this was more predictive than the original test, with much smaller false negative and false positive trails. One collaborator picked this out of the Camel paper, modified his teaching, and promises us some data about his results soon (but we beware the Hawthorne effect, as ever, and I'm aware that maybe the Hawthorne experiment didn't show the Hawthorne effect, so please don't set that dog on me). For a long time, ever since I had to teach a group of Masters students who had paid for their own course and were trying to convert to computer science to get a job, I haven't believed that motivation is the major underlying cause of the two-hump phenomenon. It must be that a proportion of 18-year olds are unmotivated and don't try, but there are so many who are desperate to succeed and don't seem to be able to. Perhaps the week 3 effect will point to a remedy (come on Ron! give us your data!) but more likely there is a weirdness that we've hardly begin to understand let alone fix. Richard Bornat -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
Focusing on the reasons for motivation is indeed a very interesting question. Couple of thoughts on the idea: 1. Some people end up loving doing what they feel they can do. The beginner [musician / programmer / sculptor] who tries his/her hand at something and is encouraged by the result, is often the amateur who practices alone and sometimes, but not necessarily, the professional. A lot of open source programmers contribute out of passion / interest to projects long before they make a living from them. Do you like programming because you're already good at it or do you become good at it because you like it to start off with? 2. There is also an interesting question about whether you can really "motivate" people to like something or "ignite professional passions" on demand. While this is akin to the philosophical stone for any computing program with low enrollment, it seems to me that this becomes more marketing than education. As in many marketing schemes, you end up building the product which satisfies the masses and I don't think that if the product is education this is a viable dynamics 3. We need indeed to differentiate between the car mechanics, the professional driver (our "hard core" programmers, CS graduates) and the casual driver. Today, using a computer means sometimes installing software, sometimes writing code (macros, small scripts). Look at the languages embedded in video games to allow players to script the behavior of game agents. While all of these activities are technically speaking programming, none of them require formal and in-depth training. These skills could be taught in computer literacy courses for instance, should we adopt the same approach for training computing professionals? I'm not so sure and would tend to say no. Do we have many example of schools producing neuron surgeons who avoided bio chemistry in their early years but practiced with "virtual operating room"(tm) software instead because it was more pleasing / entertaining / motivating for MD candidates who didn't have a sufficient taste for the hard parts of their curriculum? Just my 3 cents and a half :) Ps: did you notice how talking about programming always bring us to compare with art, not science or technologies :) -Original Message- From: Mark Guzdial [mailto:[EMAIL PROTECTED] Sent: Sunday, June 24, 2007 2:14 PM To: Lindsay Marshall Cc: Peter Gutmann; Gaspar, Alessio (USF Lakeland); [email protected]; [EMAIL PROTECTED] Subject: RE: PPIG discuss: Programmer education argument-starter of the week Your point is well-taken, Lindsay: "I think the point is that some people simply don't really want to learn to program so don't bother." The question of what motivates people to learn to program is an open and interesting research question--given the context that this is the Psychology of Programming Interest Group, and that affect is a function of mind as well as cognition. I don't believe that we know much about what motivates people to learn to program: - At the high end: The "Camel" (or "sheep and goats") paper only considers "learn to program" vs. "can't." That former group has different motivations, I believe. What motivates those super-hackers who become obsessed with code and end up inventing something like Linux? What motivates them? - At the low end: CMU's Software Engineering Institute estimates that there are at least two and as many as ten times end-user programmers as there are professional software developers today. What motivates someone to pick up programming without any previous background (and without, presumably, any desire to make it a profession)? My guess is that these aren't at all the same kind of motivation. In fact, one might argue that the activities that the super-hacker and the end-user programmer are engaging in are dramatically different from each other. Programming at the level of 100 lines or less, vs. 10,000 lines and up is very different. We may be talking about completely different psychologies, considering both affect and cognition. If we agree that motivation is what keeps some people from learning to program, and if we don't know much about motivation and programming, I find it premature to claim that some people can't learn to program. We know too little about the most significant factor. Mark On Sun, 2007-06-24 at 09:45 -0400, Lindsay Marshall wrote: > > > How does one prove that "some people will *never* learn to program"? > All possible approaches > > have now been tried so there are no new innovations to develop? > > > Computer science has only been around for a bit over 50 years. In > evolutionary terms, that's way > > too short a time to evolve a particular "gene" for geekiness -- even > if it could be shown to have some evo
RE: PPIG discuss: Programmer education argument-starter of the week
> That former group has different motivations, I believe. What motivates those
> super-hackers
> who become obsessed with code and end up inventing something like Linux? What
> motivates them?
>... What motivates someone to pick up programming without any previous
>background (and
> without, presumably, any desire to make it a profession)?
> My guess is that these aren't at all the same kind of motivation. In
> fact, one might argue that the activities that the super-hacker and the
> end-user programmer are engaging in are dramatically different from each
> other. Programming at the level of 100 lines or less, vs. 10,000 lines
> and up is very different. We may be talking about completely different
> psychologies, considering both affect and cognition.
Let's go back to the example of music. There are many more amateur musicians
than professional ones, and the act of being a professional musician is quite
different from being an amateur. But I see no evidence that the psychologies of
the amateurs is particularly different from the professionals. However, I am
not sure how to equate the 100 lines v 1 lines argument to music though :
perhaps its the number of pieces that someone knows, but again there are
amateurs who know many more pieces than some professionals. The main difference
between the groups is that, usually, though it is by no means a given, the
professionals are better (in some sense) than the amateurs. This is generally
due to the fact that it is their job and they do it every day and because they
tend to have had various disciplines ingrained in them as part of their
training ("Music engineering" if you will). Amateurs often do not have time to
practice enough to get the necessary chops (though I think of the Japanese
Salaryman who comes home every night from his job and practices Django style
guitar for 3 hours in a small soundproof annex he built in his bedroom). Many
professionals simply don't practice (I was having a conversation about this the
other night with a tenor player). Someone followed Paganini around for years
hoping to see him practice, and used to spy on him. He only ever saw him pick
up the violin once, work out a couple of finger patterns and then put it down
again. There is an interesting difference between rehearsal and practice, and
neither of these seem to have analogues in programming practice. I certainly
don't do anything that is the equivalent of running scales or arpeggios ( a
programmer's Hanon anyone?), and the nearest to rehearsals is makign a
prototype or a first cut that you later refine, which might be the same.
L.
--
PPIG Discuss List ([email protected])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
Your point is well-taken, Lindsay: "I think the point is that some people simply don't really want to learn to program so don't bother." The question of what motivates people to learn to program is an open and interesting research question--given the context that this is the Psychology of Programming Interest Group, and that affect is a function of mind as well as cognition. I don't believe that we know much about what motivates people to learn to program: - At the high end: The "Camel" (or "sheep and goats") paper only considers "learn to program" vs. "can't." That former group has different motivations, I believe. What motivates those super-hackers who become obsessed with code and end up inventing something like Linux? What motivates them? - At the low end: CMU's Software Engineering Institute estimates that there are at least two and as many as ten times end-user programmers as there are professional software developers today. What motivates someone to pick up programming without any previous background (and without, presumably, any desire to make it a profession)? My guess is that these aren't at all the same kind of motivation. In fact, one might argue that the activities that the super-hacker and the end-user programmer are engaging in are dramatically different from each other. Programming at the level of 100 lines or less, vs. 10,000 lines and up is very different. We may be talking about completely different psychologies, considering both affect and cognition. If we agree that motivation is what keeps some people from learning to program, and if we don't know much about motivation and programming, I find it premature to claim that some people can't learn to program. We know too little about the most significant factor. Mark On Sun, 2007-06-24 at 09:45 -0400, Lindsay Marshall wrote: > > > How does one prove that "some people will *never* learn to program"? > All possible approaches > > have now been tried so there are no new innovations to develop? > > > Computer science has only been around for a bit over 50 years. In > evolutionary terms, that's way > > too short a time to evolve a particular "gene" for geekiness -- even > if it could be shown to have some evolutionary advantage. > > I think this is not the issue. Music education has been around for > centuries and there are people who just "never" learn music (and > people have tried many more ways to teach music than they have > programming). I think the point is that some people simply don't > really want to learn to program so don't bother. Most people can learn > most things (up to certain level) if they want to, they just don't > want to. > > "I'd give my life to be able to play the piano like that!" "Madam, I > did" > > L. > > -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
> I don't follow. An analogical explanation on its own doesn't > lead to knowing how something works, and the presence of > processes that can be explained that way doesn't cover the > whole thing. It depends what you mean by "know". You are clearly taking a much deeper interpretation of know than I am. I (sort of) know how a microwave works but if you were to push me on any of the details I would quickly dry up. If you know that a compiler reads a special language and translates it into another special language then you know something about how it works. And you can progress this down to the quantum level if you want. Where does proper "knowing" start? I still haven't had time to read the original article that frank referenced so haven;t seen what claims are being made, but I can say that CS has expanded and it has become harder and harder to fit material in a 3 year course, the first major thing that we dropped was the compiler course. (I am not saying this was a good thing, just that that was what we did). The argument was that the important stuff about parsing and stuff was taught in other modules as well. And to be fair, writing compilers *is* a fairly specialised task these days, that not a lot of people are involved with. (When I were a lad we were always writing compilers for things but it just doesn't happen now - perhaps that was because compilers were our "trick" and people today have different tricks (actually, I tend to write interpreters rather than compilers - compilers is a very Rob Pike trick though) L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
On 2007-06-24 at 15:46BST "Lindsay Marshall" wrote: > > 1) If you don't know how computers work, you don't know how > >compilers work. (Obviously!) > > How is that obvious? I can certainly conceive of knowing > how compilers work without knowing how a computer works - > there are processes involved that can be explained by > analogy without referring to actual computers. I don't follow. An analogical explanation on its own doesn't lead to knowing how something works, and the presence of processes that can be explained that way doesn't cover the whole thing. Once you know enough about how computers work (together with some parsing theory and computation theory), you can write compilers, but writing a compiler without knowing how computers work (at some level of abstraction) looks impossible to me -- and if you can't write one, you don't really know how they work. The crucual thing in all of this is that parenthetical remark. The logical series in my previous message doesn't really prove that no one understands how computers work, just that the inference steps aren't valid -- if you can understand how a target machine "works" at the level of a register transfer model, you know enough to write a compiler back-end for it without needing to know anything about integrated circuits. If you know the abstract machine of a compiler back-end, you can write a code generator for it without understanding the register transfer model of any real target machine. If you understand the abstraction represented by the parse trees required by such a code generator, you can write a parser to turn a programming language into that, again without knowing how the abstract machine works. And if you have a full understanding of the abstraction represented by a (properly designed) programming language, you can write a large class of programme in it without understanding how its compiler works. (and the programmes would work just as well if the underlying machine were replaced with one based on optics rather than electronics. Unfortunately properly designed languages are as common as hens' teeth). But it is true that no one knows how computers work, because they're (very nearly) deterministic machines built on quantum mechanical indeterminism, and reconciling that is an unsolved problem. -- Jón Fairbairn [EMAIL PROTECTED] 31 Chalmers Road [EMAIL PROTECTED] Cambridge CB1 3SZ+44 1223 570179 (after 14:00 only, please!) -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
> 1) If you don't know how computers work, you don't know how >compilers work. (Obviously!) How is that obvious? I can certainly conceive of knowing how compilers work without knowing how a computer works - there are processes involved that can be explained by analogy without referring to actual computers. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
> How does one prove that "some people will *never* learn to program"? All > possible approaches > have now been tried so there are no new innovations to develop? > Computer science has only been around for a bit over 50 years. In > evolutionary terms, that's way > too short a time to evolve a particular "gene" for geekiness -- even if it > could be shown to have some evolutionary advantage. I think this is not the issue. Music education has been around for centuries and there are people who just "never" learn music (and people have tried many more ways to teach music than they have programming). I think the point is that some people simply don't really want to learn to program so don't bother. Most people can learn most things (up to certain level) if they want to, they just don't want to. "I'd give my life to be able to play the piano like that!" "Madam, I did" L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
Re: PPIG discuss: Programmer education argument-starter of the week
On 2007-06-23 at 09:31BST "Lindsay Marshall" wrote: > > "If you don't know how compilers work, you don't know how computers work." > > http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html > > > Seems pretty uncontroversial to me. :-) > We can have a bit of fun with the logic of it: 1) If you don't know how computers work, you don't know how compilers work. (Obviously!) So you vanish up your own fundament. Or, 2) i) To know how compilers work you need to know how machine-code works. ii) To know how machine code works you need to know how integrated circuits work. iii) To know how integrated circuits work, you need to know how transistors work. iv) To know how transistors work, you need to know how semiconductors work. v) To know how semiconductors work, you need to know how quantum machanics works. vi) No one knows how quantum mechanics works¹. from which it follows that no one knows how compilers work. > Of course it is, but the question that this gives rise to > is "why do you need to know how computers work?" There are > loads of things I use every single day that I only have > the vaguest idea of how they work (diesel engine, > microwave, brain) and that doesn't stop me. And indeed > knowing how a diesel engine works would not improve my > driving one iota. That rather depends on what you mean by driving. If you mean "being able to get into a motor vehicle and use it to get you to a specified location", knowing how a diesel engine works can significantly increase your chances of achieving your goal in the event that the route to your destination takes you far from garages and you have an engine failure². Similarly, programmer is too wide a term (I'm assuming that no-one is saying that random computer users need to know how compilers work). If someone who knocks together plain html pages is a programmer, not all programmers need to know how compilers work. If, at the other extreme, programmer means someone who, given a computational problem for which a solution exists, can produce a good solution, then clearly they need to know how compilers work because the domain of possible problems includes compilers. Perhaps we're only talking about /good/ programmers, but the only good programmers I ever saw³ are dead... [1] refer to RP Feynman. [2] unless you are driving a petrol, gas-turbine, electric or steam engined vehicle. [3] EW Dijkstra and David Wheeler? -- Jón Fairbairn [EMAIL PROTECTED] 31 Chalmers Road [EMAIL PROTECTED] Cambridge CB1 3SZ+44 1223 570179 (after 14:00 only, please!) -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
How does one prove that "some people will *never* learn to program"? All possible approaches have now been tried so there are no new innovations to develop? Computer science has only been around for a bit over 50 years. In evolutionary terms, that's way too short a time to evolve a particular "gene" for geekiness -- even if it could be shown to have some evolutionary advantage. Mark From: [EMAIL PROTECTED] on behalf of Peter Gutmann Sent: Sun 6/24/2007 2:26 AM To: [EMAIL PROTECTED]; [email protected] Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: PPIG discuss: Programmer education argument-starter of the week "Gaspar, Alessio (USF Lakeland)" <[EMAIL PROTECTED]> writes: >Mmmm, this analogy is flawed, what about reconsidering it along the lines of: > >Car mechanics = electrical engineering / comp org / comp architecture >Driving professionally = programming / software engineering >Driving casually = using a computer Going off on a bit of a tangent, what about considering the evidence in "The Camel has Two Humps" (http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which argues that programming ability shows a strong bimodal distribution and that some people will never learn to program/be good programmers no matter what teaching methods you use, while others will, no matter what teaching methods you use. Maybe it's not a case of "you need to understand X" but "you need to be born with the geek gene". Peter. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
"Gaspar, Alessio (USF Lakeland)" <[EMAIL PROTECTED]> writes: >Mmmm, this analogy is flawed, what about reconsidering it along the lines of: > >Car mechanics = electrical engineering / comp org / comp architecture >Driving professionally = programming / software engineering >Driving casually = using a computer Going off on a bit of a tangent, what about considering the evidence in "The Camel has Two Humps" (http://www.cs.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf) which argues that programming ability shows a strong bimodal distribution and that some people will never learn to program/be good programmers no matter what teaching methods you use, while others will, no matter what teaching methods you use. Maybe it's not a case of "you need to understand X" but "you need to be born with the geek gene". Peter. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
Mmmm, this analogy is flawed, what about reconsidering it along the lines of: Car mechanics = electrical engineering / comp org / comp architecture Driving professionally = programming / software engineering Driving casually = using a computer While each "level" can somewhat ignore the others, within each level is where the real question lies. The argument of this post was that a computing professional should be aware of software-level concepts, techniques and implementations to grant him a "big picture" vision of the discipline which would, in turn, allow him/her to take one step back and abstract from this knowledge when necessary. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lindsay Marshall Sent: Saturday, June 23, 2007 4:32 AM To: Frank Wales; [email protected] Subject: RE: PPIG discuss: Programmer education argument-starter of the week > "If you don't know how compilers work, you don't know how computers work." > http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html > Seems pretty uncontroversial to me. :-) Of course it is, but the question that this gives rise to is "why do you need to know how computers work?" There are loads of things I use every single day that I only have the vaguest idea of how they work (diesel engine, microwave, brain) and that doesn't stop me. And indeed knowing how a diesel engine works would not improve my driving one iota. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/ -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
RE: PPIG discuss: Programmer education argument-starter of the week
> "If you don't know how compilers work, you don't know how computers work." > http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html > Seems pretty uncontroversial to me. :-) Of course it is, but the question that this gives rise to is "why do you need to know how computers work?" There are loads of things I use every single day that I only have the vaguest idea of how they work (diesel engine, microwave, brain) and that doesn't stop me. And indeed knowing how a diesel engine works would not improve my driving one iota. L. -- PPIG Discuss List ([email protected]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
