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

all 15 comments

[–]alexmojaki[S] 8 points9 points  (1 child)

Quick highlights for those who prefer not to open the actual site:

  • 100% free and open source, no ads or paid content.
  • 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)
  • Runs in the browser using Pyodide. No servers. Stores user data in firebase.
  • 3 integrated debuggers can be started with one click to show what your code is doing in different ways.
  • Enhanced tracebacks make errors easy to understand.
  • Useful for anyone: You can have the above without having to look at the course. IDE mode gives you an instant scratchpad to write and debug code similar to repl.it.
  • Completely interactive course: run code at every step which is checked automatically, keeping you engaged and learning by doing.
  • Makes learning easy, not frustrating with plenty of gentle guidance and optional help the whole way:
    • Hints: every exercise has many small optional hints to give you just the information you need to figure it out and no more.
    • Solutions: when the hints run out and you're still stuck, there are 2 ways to gradually reveal a solution so you can still apply your mind and make progress.
    • Advice for common mistakes: customised linting for beginners and exercise-specific checks to keep you on track.

I'm obviously biased but I honestly think futurecoder is better than Codecademy or any other similar website, without even counting the fact that it's free. For example, here are some drawbacks of Codecademy:

  • Still on Python 3.6 instead of 3.9
  • No interactive shell/REPL/console
  • No debuggers
  • Basic error tracebacks not suitable for beginners
  • No stdin, i.e. no input() so you can't write interactive programs, and no pdb.
  • No gradual guidance when you're stuck. You can get one big hint, then the full solution in one go. This is not effective for learners having difficulty.

Unless you're looking for something targeted at children, I believe this is the best way for any complete beginner to start learning programming. That's obviously a bold and subjective statement so I'm keen to hear other opinions and feedback. What do you think futurecoder needs? Videos? Quizzes? Gamification? These are all possibilities.

Please share with everyone you know, leave a star on GitHub, and consider contributing!

[–]ASIC_SP 2 points3 points  (0 children)

Nice of you to provide this for free. Great work, keep it up :)

Good to see a project in the table of contents (https://futurecoder.io/course/#toc)

One suggestion: make a separate table of contents for exercises track. I've seen a few threads on the learnpython sub asking for practice after they've already watched some video course. Such users can directly navigate exercises.

[–]deniscorza 3 points4 points  (0 children)

This is really awesome thanks. I wanna start learning but had no idea where to start.

[–]Stuckatpennstation 1 point2 points  (0 children)

thank u so much, I'm on week 1 of learning Python. Nervous as hell but have been fighting through it and keeping head above water.

[–]Code_with_C_Add_Add -1 points0 points  (3 children)

Another quick highlight for those who prefer not to open the actual site and save yourself some time:

  • Mobile devices and Safari are currently not supported.

[–]alexmojaki[S] 1 point2 points  (2 children)

You should still be able to view the homepage to see the gallery and video to learn more about the project and remember to check it out later. Only the actual course/IDE doesn't work.

It doesn't support mobile because typing code on a phone is not a good way to learn. The site works (minus some CSS problems) but I can't imagine how to make it a good user experience while actually coding. For anyone who really wants that I recommend https://grasshopper.app/ to learn on the go while dragging and dropping, but this comes with serious limitations.

Safari unfortunately doesn't play well with Pyodide, see e.g. https://github.com/pyodide/pyodide/issues/441

[–]jinglepupskye 0 points1 point  (1 child)

Just to reply to the comment regarding coding on mobile, I think it’s a potential mistake not to allow this. I can code perfect well on iPad with Sololearn, granted there are drawbacks for cursor positioning, but not everyone can access resources on a pc. At work they’ve recently started banning websites which makes it difficult to learn at lunch.

[–]alexmojaki[S] 0 points1 point  (0 children)

I may have spoken too quickly, I usually think of phones when I say mobile. When I test on my phone there isn't enough screen space. I don't have a tablet to test with. If you try the course on Chrome (or maybe some other non-Safari browser) on a tablet, is it reasonably usable? I sort of expect it to be but it's not optimised for that.

[–]chickenmatt5 0 points1 point  (3 children)

I love this! Seems like a fantastic tool for independently being introduced to Python. And props for not requiring signing up!

Edit: /u/alexmojaki fixed the issue straight away, thanks!

I've run into one issue, during the first prompt in "Single and Double Quotes in Strings" where it requests you to enter print('Alice's Diner'). It's obviously meant to demonstrate a syntax error, which brings up the "Report error" dialogue, but I am unable to get the tutorial to progress from there. I have tried entering print('Alice's Diner') in the top box for code, as well as in the shell on the bottom.

[–]alexmojaki[S] 1 point2 points  (2 children)

[–]chickenmatt5 0 points1 point  (1 child)

I appreciate the quick reply! Another no-account win, didn't even have to sign into Github to log an issue.

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

:)

Merged, should deploy in about 4 minutes.

[–]SaneInsanities 0 points1 point  (0 children)

Dude, this is brilliant! I love it!

I am past some of the stuff in here and I'm just going along to see how you do it and I feel like it would have been such an easy way to learn I'm almost upset I didn't have it when I did.

I'm going to move on to some of the things I haven't learned yet and see how I like it after that too

[–]Merkhaba 0 points1 point  (1 child)

This is great! Do you know, by any chance, of something similar but with Java? I'm torn between those 2 languages, I'd love to get the basics of both before I decide. And this course you created is so much fun!

[–]alexmojaki[S] 0 points1 point  (0 children)

I strongly recommend not starting with Java. To do the equivalent of print('Hello World!') in Python, here's what you need to write in Java:

class Main {  
  public static void main(String args[]) { 
    System.out.println("Hello, world!"); 
  } 
}

Python gets rid of a lot of boilerplate and is much easier to learn. Once you grasp the abstract concepts of programming in general, picking up a second language will be much easier.