Show HN: Futurecoder – A free online interactive Python course
Highlights:<p>- 100% free and open source (<a href="https:&#x2F;&#x2F;github.com&#x2F;alexmojaki&#x2F;futurecoder" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alexmojaki&#x2F;futurecoder</a>), no ads or paid content.<p>- No account required at any point. You can start instantly. (You can create an account if you want to save your progress online and across devices. Your email is only used for password resets. You can sign up separately for email updates on the home page)<p>- Runs in the browser using Pyodide (<a href="https:&#x2F;&#x2F;pyodide.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pyodide.org&#x2F;</a>). No servers. Stores user data in firebase.<p>- 3 integrated debuggers can be started with one click to show what your code is doing in different ways.<p>- Enhanced tracebacks make errors easy to understand.<p>- Useful for anyone: You can have the above without having to look at the course. IDE mode (<a href="https:&#x2F;&#x2F;futurecoder.io&#x2F;course&#x2F;#ide" rel="nofollow">https:&#x2F;&#x2F;futurecoder.io&#x2F;course&#x2F;#ide</a>) gives you an instant scratchpad to write and debug code similar to repl.it.<p>- Completely interactive course: run code at every step which is checked automatically, keeping you engaged and learning by doing.<p>- Every exercise has many small optional hints to give you just the information you need to figure it out and no more.<p>- When the hints run out and you&#x27;re still stuck, there are 2 ways to gradually reveal a solution so you can still apply your mind and make progress.<p>- Advice for common mistakes: customised linting for beginners and exercise-specific checks to keep you on track.<p>- Construct a question that will be well-received on sites like StackOverflow: <a href="https:&#x2F;&#x2F;futurecoder.io&#x2F;course&#x2F;#question" rel="nofollow">https:&#x2F;&#x2F;futurecoder.io&#x2F;course&#x2F;#question</a><p>----<p>I&#x27;m obviously biased but I honestly think futurecoder is better than Codecademy or any other similar website, without even counting the fact that it&#x27;s free. For example, here are some drawbacks of Codecademy:<p>- Still on Python 3.6 instead of 3.9<p>- No interactive shell&#x2F;REPL&#x2F;console<p>- No debuggers<p>- Basic error tracebacks not suitable for beginners<p>- No stdin, i.e. no input() so you can&#x27;t write interactive programs, and no pdb.<p>- No gradual guidance when you&#x27;re stuck. You can get one big hint, then the full solution in one go. This is not effective for learners having difficulty.<p>Unless you&#x27;re looking for something targeted at children, I believe this is the best way for any complete beginner to start learning programming. That&#x27;s obviously a bold and subjective statement so I&#x27;m keen to hear other opinions and feedback. What do you think futurecoder needs? Videos? Quizzes? Gamification? These are all possibilities.<p>------<p>I posted futurecoder here over a year ago: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24020906" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=24020906</a><p>It&#x27;s had a major overhaul since then, including the switch to running in the browser with Pyodide, signup being made optional, and a whole bunch of major new features (e.g. IDE mode, question wizard, Parsons problems, friendly tracebacks, linting, auto-installing imports, and multiple choice questions) and course content. While there&#x27;s plenty more to do, futurecoder is no longer a &#x27;work in progress&#x27;.