On 1/18/2013 7:25 PM, Rick Johnson wrote: > Well anyone who is just blindly copying code to get through a CS > course is obviously not a "natural" problem solver ,and thus, > /incapable/ of becoming a proficient programmer anyhow. Programming > *IS* problem solving. If you don't get any thrill from the hunt, > you might as well go home and watch Monty python until your eyes > bleed or the next welfare check arrives.
I have only skimmed this thread and so am unsure exactly what is being protected against casual copy/paste, but at least on its face I would *vehemently* disagree with your statement. There are at least two significant problems with it. First you ignore short-term pressures. It sounds like the tutorial in question is being used in some kind of course? If so, perhaps an assignment or two are badly timed with other life events (projects from other classes, external pressures, etc.) and, even though a person WOULD enjoy and be competent at solving the problem, those constraints pressure them to take the short-term "out" in the programming course, which also leads to them learning so much. But the bigger problem is that -- while you are right that programming is problem solving -- doing problem solving is probably not why most people got into it. At least personally, I got into it because I liked making stuff. If someone is attracted to the field because they go "oh hey I can program the next video game!" that doesn't automatically mean that they won't be good at it, but it may be that the problem-solving aspect of it is an acquired taste. As an analogy, I've been rock climbing for several years. There are several types of climbing; two of them are top roping, which is roped climbing and what you see most people in a climbing gym doing, and bouldering, which is climbing routes low to the ground (usually under 3 meters or so) without a rope. When I started, I basically exclusively did top roping. Bouldering seemed... dumb to me, like it was missing the point: "the reason you go climbing is to *climb*, and bouldering gives you very little of that." :-) But after I was going for a while, getting high above the ground became less of why I did it and the challenge of figuring out the right movements and such to complete the route started being my primary motivation for liking it. And those are things that bouldering has in fine measures; in some respects, it does that *better* than roped climbing*. (* Arguing about roped climbing vs bouldering might be that community's version of "Emacs is better than Vi". :-)) In other words, why I started climbing is very different from why I continued it. And I feel that the same could be said of programming. Just because you don't enjoy parts of programming when you're starting out doesn't mean that you're a lost cause by ANY means. Evan -- http://mail.python.org/mailman/listinfo/python-list