Beginner Tutorials

Evan Driscoll driscoll at
Sat Jan 19 05:36:09 CET 2013

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.


More information about the Python-list mailing list