<p>The Python programming language is currently in the midst of a long-term
transition from version 2 to version 3. New programmers typically have many
questions about which version they should learn. It's confusing to hear
that Python 3, which was originally released in 2008, is still not the default
installation on many operating systems.</p>
<p>Here's the good news: you can't go wrong starting with either version. While
there are differences in unicode and syntax, for the most part if you
start with Python 2 and then learn Python 3 you won't be starting from
scratch. Likewise, you'll be able to read and write Python 2 code if you
started with Python 3.</p>
<p>My personal recommendation for new programmers as of right now is to start
with Python 3. There are enough <ahref="/best-python-resources.html">great resources</a>
out there that teach version 3 from the ground up.</p>
<p>However, if you are interested in DevOps-type work with
<ahref="/configuration-management.html">configuration management tools</a> such as
Ansible or Fabric, then you'll have to stick to Python 2 because they have
yet to upgrade to support Python 3. If you know there are libraries you must
use in a project, check the
<ahref="https://python3wos.appspot.com/">Python Walls of Superpowers</a>. If you're
using Django, there is also a wall specifically for
<ahref="http://djangowos.com/">Python 3 compatibility of popular Django packages</a>.</p>
<h3>Python 2 to 3 resources</h3>
<ul>
<li>
<p>Want to know all of the advantages and what's changed in Python 3
compared to Python 2? There's
<ahref="https://docs.python.org/3/whatsnew/index.html">an official guide to Python 3 changes</a>
you'll want to read.</p>
</li>
<li>
<p>The official
<ahref="https://wiki.python.org/moin/PortingToPy3k/">porting code to Python 3</a>
page links to resources on porting Python code as well as underlying C
implementations. There is also a
<ahref="https://wiki.python.org/moin/PortingToPy3k/BilingualQuickRef">quick reference for writting code with Python 2 and 3 compatibility</a>.</p>
</li>
<li>
<p><ahref="https://hynek.me/articles/python3-2016/">Python 3 in 2016</a> explains
that many newer Python developers have only used Python 3 and as that
cohort continues to grow it will have an outsized impact on further
adoption.</p>
</li>
<li>
<p><ahref="https://blogs.msdn.microsoft.com/pythonengineering/2016/03/08/python-3-is-winning/">Python 3 is winning</a>
presents data and graphs from PyPI to show that at the current rate,
by mid-2016 overall Python 3 library support will overtake Python 2
support.</p>
</li>
<li>
<p><ahref="http://www.snarky.ca/the-stages-of-the-python-3-transition">The stages of the Python 3 transition</a>
provides perspective from a core Python developer on how the transition from
Python 2 to 3 is going as of the end of 2015.</p>
</li>
<li>
<p><ahref="http://nothingbutsnark.svbtle.com/porting-to-python-3-is-like-eating-your-vegetables">Porting to Python 3 is like eating your vegetables</a>
explains that there are treats in Python 3 that are worth porting for and
has some tips on making the transition easier.</p>
</li>
<li>
<p><ahref="http://ptgmedia.pearsoncmg.com/imprint_downloads/informit/promotions/python/python2python3.pdf">Moving from Python 2 to Python 3</a>
is a PDF cheatsheet for porting your Python code.</p>
</li>
<li>
<p><ahref="https://godjango.com/96-django-and-python-3-how-to-setup-pyenv-for-multiple-pythons/">Django and Python 3 How to Setup pyenv for Multiple Pythons</a>
is a screencast showing how to run both Python 2 and 3 for different
projects using pyenv.</p>
</li>
<li>
<p><ahref="http://blog.scrapinghub.com/2015/08/19/scrapy-on-the-road-to-python-3-support/">Scrapy on the road to Python 3 support</a>
explains from the perspective of a widely used Python project what their
plan is for supporting Python 3 and why it has taken so long to make it
happen.</p>
</li>
<li>
<p><ahref="http://py3readiness.org/">Python 3 Readiness</a> is a visualization of
which most popular 360 libraries (by downloads) are ready to be
used with Python 3.</p>
</li>
</ul>
<h3>What's next now that you know about Python versions?</h3>
<ahref="http://www.deploypython.com/"><imgsrc="/img/sponsored/fsp-deployment-guide.png" alt="The Full Stack Python Guide to Deployments" width="100%"></a>
<pstyle="font-size: .8em; margin-top: 10px;">Searching for a complete, step-by-step deployment walkthrough? Learn more about <ahref="http://www.deploypython.com/">The Full Stack Python Guide to Deployments book</a>.
<divstyle="padding: 0 0 20px 0; margin: 0 0 20px 0; background-color: #22B24C;">
<divclass="container">
<pclass="banner"><ahref="https://www.gumroad.com/l/python-deployments" style="color: #fff">Learning web development? Check out The Full Stack Python Guide to Deployments book</a>!</p>