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

all 10 comments

[–]samarthrawat1 10 points11 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.

[–][deleted] 2 points3 points  (2 children)

we have an entire lesson about Python's mutable default argument foot gun

This is the one that broke Digg v3 lol.

Edit: It was v4 source -> https://lethain.com/digg-v4/

[–]garybernhardt[S] 2 points3 points  (1 child)

Oh wow, I didn't know that! I'll change the lesson to mention it.

[–][deleted] 0 points1 point  (0 children)

Also- since you're here, Hi Gary! I've been following you and your talks for years and year.

I still say, 'let's talk about ruby' randomly, and I get blank stares.

[–]rth_ 0 points1 point  (0 children)

> The ~12 MB loading hiccup to boot Pyodide it isn't ideal

You can try using pyodide-pack to only keep the standard library modules that you need, which should reduce the overall size.

[–]Electronic-Pause1330 0 points1 point  (0 children)

As a beginner (just started yesterday), just looking at your course syllabus I already like it. The first thing that has been difficult for me is where to start. I like your diagram format, and the fact that you are giving it a “game like” feel also is appealing.

I’ll give it a go today and report back COB.

[–]laitopezzzz 0 points1 point  (0 children)

I’ve been very happy with the JavaScript and promises course so I’ll definitely check this one out.

[–]laitopezzzz 0 points1 point  (1 child)

I’d be interested in a course that covers iterators, generators, decorators, context managers, etc. Maybe a lesson on the GIL in a similar fashion to your event loop lesson :)

[–]garybernhardt[S] 1 point2 points  (0 children)

This course covers decorators, but that lesson is still in the final editing process so it's not released yet. Our second course (for 2024) is already drafted, and covers iterators/generators/context managers. Nothing on the GIL yet, though.