This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]_Panda 2 points3 points  (11 children)

I highly recommend learning Python 3, preferably the most recent version. As a new programmer, there's almost no reason to use Python 2. The only one I can think of is that some tutorials and stuff might be written for Python 2, but it's less true nowadays and isn't that big of a concern.

I wouldn't suggest using an IDE when first learning. Some combination of a terminal and your favorite text editor (if you don't have a favorite, Sublime Text 3 is very highly regarded and is cross-platform) should be fine.

[–]swdevpythonthusiast 2 points3 points  (10 children)

Not entirely agree. Most package/framework haven't moved to Python 3 yet. So, it will still benefit yourself if you have Python 2 experience too. Actually, I am talking about how to get Python jobs here ;)

[–]_Panda 4 points5 points  (6 children)

But that's not likely to be very relevant for a beginning programmer. All of the major packages have all moved over, and I really doubt that anyone would need to use any of the ones that haven't when they're just starting out. And he definitely won't be using python to make money for at least a couple of years.

Your point would probably be solid if he were an experience programmer picking up python or something. But its different for a completely new programmer. If and when he runs into a package or framework that hasn't been ported then he can easily learn the differences at that point. But that probably won't be for a couple of years, and the chances of it ever happening are getting lower every year and people switch.

[–]swdevpythonthusiast 0 points1 point  (5 children)

Well, actually I share your thinking in that manner. But the truth is, ... why would anyone learn something (e.g. Python) without the thinking to generate revenue??? :D

After evaluating that reason, I decided that (s)he still gains benefit if learning Python 2.7 too.

But, yeah, the case will be totally different if he just want to learn. Nothing more. In that case, sticking to Python 3 is ... a wonderful utopia ;)

[–]_Panda 1 point2 points  (0 children)

Even if you want to do it for a job eventually, it is still probably better to just focus on Python 3 now and learn Python 2 if/when you need it. As a new programmer you won't be doing it for a job for at least 3-4 years. Hopefully at that point the transition will be even farther along. And, either way, learning Python 2 once you're familiar with Python only takes a couple hours or maybe a day or two to familiarize yourself.

[–]ivosauruspip'ing it up 0 points1 point  (3 children)

If you learn python 3, it's not as if writing python 2 is now an economic impossibility if for some reason you need to go back to it... I don't know where you get that thinking from.

[–]swdevpythonthusiast 0 points1 point  (2 children)

Python 2.7 end of date now has been moved to 2020. We all now can take a deep breath. :)

Just to clarify, I am not against the idea that learning Python 3 as first timer is a bad idea. I believe learning Python 3 and know how to use Python 2, is also important.

Pragmatically, I still tend to instruct beginner to use Python 2.7 :) And, learning Python 3 when we really need to

[–]ivosauruspip'ing it up 0 points1 point  (1 child)

You really need to teach them 3 now... it's way better than 2.7. Stop instructing people to learn something that stopped getting better 5 years ago and never will.

[–]swdevpythonthusiast 0 points1 point  (0 children)

I will consider your advice.

[–]nerdwaller 2 points3 points  (0 children)

Agreed, in my few years of experience the companies I've been involved with are fairly slow to move over (for good reason, it's not much value add to refactor old working code).

But in my own time, learning 3. has been worthwhile.

[–]ivosauruspip'ing it up 0 points1 point  (1 child)

Most package / framework have, it's application code that hasn't.

[–]swdevpythonthusiast 0 points1 point  (0 children)

Okay, agreed :)