
Ask HN: Should beginners learn Python 2 or Python 3? - chirau
There are several individual opinions online on this matter but I wanted to aggregate the sentiment of a whole HN community. Please give your reasons for your choice if possible
======
veddox
Go for 3. Most Python 2 projects have plans or are in the process of
transitioning, if that is keeping you back. Also, the two lines aren't as
different as they used to be, as a lot of features get back-ported from 3 to
2.

Python 3 is IMO a much cleaner and friendlier language to work with than 2.
Especially if you're doing anything to do with Unicode, Python 2 can be a real
pain. Also, all real development is now taking place on the 3.x series - if
you want to keep up, you'd better learn it.

This is a good overview:
[https://wiki.python.org/moin/Python2orPython3](https://wiki.python.org/moin/Python2orPython3)

------
rnovak
This is my opinion, and it may be a personal one, but from an engineering
standpoint, I think you should learn both. I think learning multiple languages
can only benefit you (if Python 2 vs 3 can even be considered different
languages).

When I first started learning to program, I thought of every problem in terms
of C++ (the first language I learned).

It wasn't until I learned other languages, and really other paradigms
(functional vs imperative vs constraint etc), when I really saw that a problem
can be framed in so many different ways, entirely based on the language, and
some of them are more elegant, more efficient, simpler, or offer some other
benefit.

I think if you learn python 2, and really get to grips with it's pitfalls and
other nuances, and then learn python 3, you'll get a better understanding into
the changes between the two languages, and I think that will give you a better
overall understanding. And IMHO, more knowledge is always better.

------
bavcyc
3 unless you have legacy code.

And even if you have legacy code, I'd learn 3 then learn the difference(s)
required to use the legacy code.

------
itajaja
I started learning Python a week ago and I sat in front of the computer for
hours trying to solve the same dilemma. If you look at famous Python projects,
eg Flask, they still advocate for Python 2 over 3 in their documentation[1]. I
found it extremely unsettling, to find the python community still so divided,
after so many years. I eventually decided to learn Python 3 because I couldn't
accept the idea of learning a legacy technology. But until the important
projects don't take a strong take in advocating Python 3, I fear the
conversion from 2 to 3 will still take a long time. My hope is that the big
Python players will start regarding Python 2 as legacy ASAP. From an outsider
perspective, this python 2-3 seem ludicrous, and I am sure that it gives a
very bad impression of the python community.

[1]
[http://flask.pocoo.org/docs/0.10/python3/](http://flask.pocoo.org/docs/0.10/python3/)

~~~
argonaut
FWIW, that was written 2 years ago.

~~~
itajaja
That's true, but even not updating such part is a symptom. I don't want to
compare different ecosystems and culture, and I am very excited to starting to
learn python overall, but you hardly see such things in a project of
comparable size in the node or ruby world. As I said, I am loving python and
Flask, but this is a symptom that the topic is not as hot as I though it
should be.

~~~
argonaut
Actually, the documentation has been updated, but on the development branch
([http://flask.pocoo.org/docs/dev/python3/](http://flask.pocoo.org/docs/dev/python3/)).
I was just pointing out that what you were linking to was out of date.

------
a3n
"Should beginners learn Python 2 or Python 3?"

Yes, probably.

------
snehesht
2 is a dead end, 3 on the other hand is the road. Where do you wanna go ?

------
namekuseijin
are people still learning python? eons ago when I last looked at it, people
were still making this very question LOL

it's the curse of open source software: as long as the source is out there,
people with legacy software will continue updating it. Perl 6 was long in the
making, never made any real inroads because all of its audience was already
readily invested in perl 5.

it only really works with commercial tools, because people will whine much but
eventually bend over and buy Microsoft's or Oracle's latest bloated money
grabber. Because there's no option, right?

------
brudgers
Not necessarily.

