[Tutor] Should a beginner learn Python 3.x

Kristin Wilcox wilcoxwork at gmail.com
Sun Nov 15 05:25:14 CET 2009

I started as an absolute beginner to with programming with Python 3. I
remain a beginner but I've now installed 2.6 as well, because I found that
some of the modules I wanted to use weren't available for 3.x.

My personal experience was that the available literature/tutorials wasn't
really a problem. I quickly figured out that I should copy the list on the
python site of all the 2x-3x changes, and I picked up a couple other lists
written with different wording saying the same thing, and kept it as a quick
reference on my computer. But honestly, as a beginner you only run into a
handful of differences. Other than print(), input(), <>, xrange(), the
dictionary has_key, interkeys(), a bit of other dictionary stuff, tkinter,
and renamed http modules, you're not going to run into much that varies
between the versions. I just learned the very basic stuff to watch out for -
compared to all the other new knowledge you're putting in your brain, it's

I personally really prefer print() to print - it just made more sense to me
when learning, and I like that you get a set literal like you get with lists
and dictionaries (it felt like the same logic was being applied in similar
situations, which is good when you're just starting out). But these are
small conveniences and I switched to 2.x because of compatibility issues.

I don't think it's a problem to initially learn on 3.1, but I do think it's
inevitable that he will have to learn both - and not just for compatibility
with the cool toys. If he's going to be using random online tutorials and
reading references from everywhere, he's going to run into stuff written for
both 3.x and 2.x and he's going to have to know the little differences to
compensate for when trying out the practice code. For instance, 2.x users
that grab the new Head First Programming book by O'Reilly that's coming out
in Dec (teaching beginning programming using Python 3.1) will have issues
converting backwards.. so it's not all one way.

Just my mostly ignorant 2 cents.


On Sat, Nov 14, 2009 at 12:49 PM, Stephen Nelson-Smith
<sanelson at gmail.com>wrote:

> My brother in law is learning python.  He's downloaded 3.1 for
> Windows, and is having a play.  It's already confused him that print
> "hello world" gives a syntax error....
> He's an absolute beginner with no programming experience at all.  I
> think he might be following 'Python Programming for the Absolute
> Beginner", or perhaps some online guides.  Should I advise him to
> stick with 2.6 for a bit, since most of the material out  there will
> be for 2.x?  Or since he's learning from scratch, should he jump
> straight to 3.x  In which case what can you recommend for him to work
> through - I must stress he has absolutely no clue at all about
> programming, no education beyond 16 yrs old, but is keen to learn.
> S.
> --
> Stephen Nelson-Smith
> Technical Director
> Atalanta Systems Ltd
> www.atalanta-systems.com
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20091114/31fae58f/attachment.htm>

More information about the Tutor mailing list