On Thu, Nov 22, 2012 at 10:39 PM, Peter O'Doherty <m...@peterodoherty.net>wrote:

> Judging by the volume of replies, is it fair to say that this problem was
> much too advanced for page 16 of an introductory text?


That is a matter of taste.  There are two things you need to learn:
1) the syntax of the language
2) how to approach programming problems

#1 can be done gradually, #2 necessarily has a "hard" moment.  For that,
you need a problem that requires you think in programming terms: How can I
break this down?  What are the different conditions that could break my
logic?  How do I avoid missing situations?

Once you cross that hump, it becomes "easy".  Future problems will be hard
again, but never to the same degree - once you've internalized the process,
it's just a matter of refinement.

Myself, I'd prefer to get that hard part over quickly.  Up to page 16
obviously taught you enough basic syntax for your initial stab, so I think
it was well timed.  The important thing is for you to realize that you're
learning a thought pattern, like algebra - once you "get it", the rest is
merely learning applications and additional rules, but that initial insight
requires some mental wrestling that can't really be reduced.  If you're
worried about the rest of the text (which I'm unfamiliar with) being more
hard than enjoyable, I'd recommend continuing to play with this problem.
Create variants (lowest POSITIVE even number), learn the typical situations
that make it complicated.  When someone can give you a problem in that vein
and you can write a solution without referring to your previous attempts
(or anyone elses), you've crossed the line and are forever changed.  From
that point forward the best the book (or any programming text) can do is
challenge you, it can no longer be "hard".  (Disclaimer: certain _concepts_
can once again be hard, such as pointers (not in python), lambdas,
closures, etc.  These should still be easier than this initial learning
step)

The bad part is that once you get it, you'll look back and wonder how you
considered it hard.  The good part is that if you are a programmer at
heart, you'll find you love challenges.  I think that's part of why you've
gotten so many replies - this is an easy problem to understand, quick to
provide a solution (right or wrong) for, and the constraints placed on it
(just to keep you from getting lost in unfamiliar syntax) make it a mental
challenge for us because our first approach is disallowed.

Don't be disheartened at the difficulty, and don't fear it being this hard
all along.
-- 
Brett Ritter / SwiftOne
swift...@swiftone.org
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to