Why are you using old version of Python and Pandas in the course runners

Screen Link:
https://app.dataquest.io/m/309/z-scores/4/locating-values-in-different-distributions

My Code:

hood_labels = ['NAmes', 'CollgCr', 'OldTown', 'Edwards', 'Somerst']
hoods_selection = houses['Neighborhood'].isin(hood_labels)
hoods = houses[hoods_selection]
hoods.groupby('Neighborhood')['SalePrice'].apply( lambda h : z_score(200_000, h) )
#z_score() function omitted for brevity

What I expected to happen:
Code to run without error as it did on my Jupiter Notebook with following build notes
Python version:
3.7.6 (default, Jan 8 2020, 13:42:34)
Pandas version
1.0.1

What actually happened:
I get an invalid syntax version and it turns out it’s because underscored number literals were introduced in Python 3.6 (released in Dec 2016 are not available on your virtual machine. Turns out you are running Python 3.4 and Pandas 0.22

Python version
3.4.3 (default, Nov 12 2018, 22:25:49) 
[GCC 4.8.4]
Version info.
sys.version_info(major=3, minor=4, micro=3, releaselevel='final', serial=0)
0.22.0

It’s a pretty minor fix to get my code to run, but it took me a bit to find, Why do you run this dated minor version of Python 3?

1 Like

Continuously updating the course is not that efficient, usually. There are updates that are released across languages, tools, libraries, frameworks multiple times over a period of time. And usually these updates aren’t always that major, like differences between Python 2.x and 3.x. It starts to become impractical to try and change all of them, then test what works what doesn’t, and update accordingly.

The focus of the course is to ensure that you learn the concepts and create a mental model of how to approach solving specific problems. The tools can change and their features, while good to learn about over time, are secondary if there isn’t a big difference between their versions. Once you are comfortable with the concepts, it isn’t too difficult to adapt to an updated version of the language over time. The learning process is continuous.

Also, frequently attempting to keep up-to-date for courses often leads to “bloating”. You end up including different sections on minor features to teach students which aren’t really that relevant to learn about for the time being. And if you don’t teach some of those minor features, then there’s not really much of a reason to update it for the students.

They should of course update it at some point. But it should depend on how much the language has updated over time to warrant such a big change.

Anyways, this is just my viewpoint on this. Not an official response from them, of course.

2 Likes

I get everything about what you are saying. I’m certainly not saying that this specific error impacted my learning, but debugging this kind of issue with old tools certainly could distract a learner. After all, this is a programming language learning platform, and not a line of business application where there might not be any perceived business value to making upgrades. Having an up to date environment for learners is business value for DataQuest. After, they aren’t selling subscriptions with a head-line that says “Use the 2017 version of these tools because they haven’t changed that much” For that, I would just get a used book.

debugging this kind of issue with old tools certainly could distract a learner.

For most learners, it’s not an issue at all. Not for quite some time. Because most learners don’t attempt to create their own local installations and work on the problems themselves for some time. The interface offered by DQ ensures they can focus on learning the fundamentals without having to worry about that initially.

This is not to say that they shouldn’t be doing this. They should definitely, at some point, work on a local installation. And DQ should definitely help understand how to do it and what the differences might be or what issues they might run into.

After all, this is a programming language learning platform

It’s not a programming language learning platform. Broadly speaking, it uses specific programming languages/tools/frameworks to focus on teaching fundamentals corresponding to a specific domain.

And there’s a difference between learning how to program to solve specific problems vs learning a programming language. The focus is more on the former.

Having an up to date environment for learners is business value for DataQuest.

That’s not really true in this case. What students learn from the courses is not that dependent on the environment being used right now.

If you take the code that you use based on what’s taught in their content, and then run it in your local environment with the latest versions of python and pandas, I don’t think you would face any issue that would be too complicated to handle.

You can also check the new feature releases easily -

And from the above page you can go through the previous versions and what new features they have had. Most of those features are not something that will make an impact on learners going through the courses on this website.

I have worked on some python-based projects in the past two years. And I have used different python versions for them. And over the past couple of years, there have been only two features that I have come to learn about was because people were pointing out how helpful they could potentially be. And even those two haven’t had much of an impact on the kind of projects I have worked on. I am not focusing on what happens in the industry, because that is a completely different point of discussion not applicable here.

There is a difference between what people expect to learn and what is enough to learn. And that varies depending on the scope of what we are learning.

If DQ decides to update to a version, then sure, they should. Absolutely. But it’s not something of business value. Because we are not learning how to use those features in the context of their courses. When that context changes such that there is a specific feature in a newer version of a language/tool/framework that a student/practitioner/developer should learn as it would have a direct impact on them for the better (especially for their career), then they should update their platform.

5 Likes

If you don’t think proving up to date versions of coding run times and libraries (including a an up date to a > 1.0 version of a library) is of business value via customer satisfaction, let’s agree to disagree.

2 Likes

Sorry for the late reply but here’s an update on this -

1 Like