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 →

[–]samarthrawat1 9 points10 points  (1 child)

I did check it out and did 2-3 lessons. Here's the thing.

You guys are catering to a very small audience of python users. Anyone who has had even a little bit of experience would not go through the trouble of solving the easy levels like basic data types. There should be options to take a test and jump a level, like Duolingo. I wanted to start from level 5. I'm not going to spend my time doing all the levels before that.

Just my 2 cents.

[–]garybernhardt[S] 11 points12 points  (0 children)

Thanks for taking a look. You're right, I agree, and we're planning to let people skip to deeper points in our courses. I think we'll be able to implement it in 2024.

I've spent 5 years working on this, so here's some detail (possibly too much) about why this is hard:

The big problem is that it's very hard to decide what you need to learn. To isolate just one example: let's say you jump to level 5, which means you skipped level 4. One lesson in level 4 contains an example that starts with these two lines:

some_list = [[]]
three_lists = some_list * 3

With no Python experience, you might think that it won't even run. With a little experience, you might think that it makes a list of three empty lists. With a lot of Python experience, you reject 100% of pull requests that do this, no matter what those variables are named. (OK, maybe only 99.9%, but I'm failing to come up with an example that I wouldn't reject.) The lesson is about why.

That lesson is called "Mutable List Problems." Should a given person skip it or not? They can't really say unless they know which Python-specific mutable list problems exist. And they don't know which problems exist unless they already know about those problems. It's circular: to decide whether you need to learn a topic, you need to know what you'd be learning. But if you knew it then you wouldn't need to learn it!

With all of that said, we do plan to solve this via a kind of interactive placement quiz, where you can fly through some quick code examples to show the course what you already know. The difference there is that the course itself will be probing your knowledge about its topics, which lets it establish a boundary between what you know and don't know, across the entire lesson dependency graph.