Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Beta test Execute Program's interactive "Python for Programmers" course (executeprogram.com)
99 points by gary_bernhardt 10 months ago | hide | past | favorite | 11 comments
I'm Gary Bernhardt, founder of Execute Program, an interactive platform for learning programming languages and other programming tools. Our "Python for Programmers" course is in a free open beta for the next week or so. We don't normally do open betas, but the infrastructure behind this course is new and very complex, so we want to stress test it.

https://www.executeprogram.com/courses/python-for-programmer...

Today, "Python for Programmers" contains 581 interactive code examples covering the core language. It's aimed at established programmers, not beginners. We don't explain basic language features like `while`, but we do show them briefly and note anything special about how they work in Python. We pay special attention to foot guns. For example, we have an entire lesson about Python's mutable default argument foot gun.

This is the first of two courses, with the second coming in 2024. For this course, we drew the line at __dunder__ methods: if a topic requires a dunder method other than `__init__`, then it'll be in the follow-up course. This beta is concurrent with the tail end of our editing process, so you may see the course grow by another 17 lessons (214 code examples) during the beta.

Some details about how the course works internally, and why we need a beta at all:

First, all Python code in the course runs in your browser via Pyodide. (Reality continues to look more and more like my PyCon 2014 talk [1].) You'll feel a pause when the first code example runs, as your browser loads and boots CPython (around 12 MB). After that, it should be as responsive as a local app.

Second, if you look at the course page, you'll see that it's structured as a DAG, similar to a "tech tree" in Civilization, Age of Empires, Stellaris, Satisfactory, etc. (Some of those games have true trees, but some of their "trees" are actually DAGs like ours.) You make progress through the course by traversing one graph edge at a time. Our courses have always been structured as graphs internally, but the raw graphs are simply unreadable due to the number of edges [2].

This year, I taught Execute Program to simplify its own course graphs by breaking them into the level subgraphs that you see on the page, so we can finally render them. It automatically turns the mess that I linked above into the clean graphs that you see in the course. The graph for this course is currently a bit dull, but it'll fill out as we finish editing the remaining lessons. I like Everyday TypeScript's graph [3] the best.

Please try the course and use the "Give Feedback" entry in the menu to tell us what you think! I'll also stick around in this thread today.

[1] https://www.destroyallsoftware.com/talks/the-birth-and-death...

[2] https://executeprogram-misc.s3.us-east-1.amazonaws.com/pytho...

[3] https://www.executeprogram.com/courses/everyday-typescript




Execute Program is one of the best tools for learning a programming language out there. I’ve worked through several of your courses on TypeScript and the Modern JavaScript, SQL, and Regex courses as well. Can’t wait for this one.

Thanks for everything you do!


As a big fan of spaced repetition I appreciated your previous courses. Going through the python course right now.


For the beta python course is it supposed to be locked for everything other than the first step?


Yes, currently there's no way to jump to the middle of a course. That lets us keep the lessons shorter, without needing to recap earlier topics. We're planning to add a way to skip, but that's not in yet unfortunately.

Edit: Just to be clear, all of the lessons shown on the course page are available, but you have to start at the beginning for now.


> you have to start at the beginning for now

add this comment to the course's page, as it may not be obvious that it is not locked due to the beta status


It definitely was not


Looking forward to trying this


excited to try this. i've learned a lot from your work. thanks!


cool.

Was going 2 or will do something similar, but offline, actually in the terminal and monkeytype style, using textual/rich and maybe add some hyper-terminal animations for gamification (whatever non-hyper-terminals are capable of).

feel free to beat me to it =] I know almost nothin about code, yet.

Will try to finish your beta in that 1 week cuz I'm poor (not a _complete_ beginner, though, I understand pointers!) and I promise to give well formulated and constructive feedback

<3


This is fun!


Can you learn elixir like that?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: