Hacker News new | past | comments | ask | show | jobs | submit login

Highlights:

- 100% free and open source (https://github.com/alexmojaki/futurecoder), 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 (https://pyodide.org/). 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 (https://futurecoder.io/course/#ide) 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.

- Every exercise has many small optional hints to give you just the information you need to figure it out and no more.

- 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.

- Construct a question that will be well-received on sites like StackOverflow: https://futurecoder.io/course/#question

----

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.

------

I posted futurecoder here over a year ago: https://news.ycombinator.com/item?id=24020906

It'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's plenty more to do, futurecoder is no longer a 'work in progress'.




Most interesting ! I love the use of Pyodide. It reminds my of https://basthon.fr/about.html . What is the libraries situation ? I'd be most interested in pandas, seaborn and SciKit-Learn to contribute teaching materials. Also, I have had the time to look into the architecture, but the best use of the Open Source nature of such project would be, imho, to have both a repository of teaching materials and one or more courses assembling a selection from the teaching materials repository. So that people could easily fork the repository to reuse some of the teaching materials and create new teaching materials for their own classes and contribute their new teaching materials upstream to you. Also, I haven't checked into the i18n / l10n situation of your project, but it would be nice to have the infrastructure to easily provide translations (I would be happy to contribute in French). Kuddos and best regards !


Packages supported by Pyodide (anything that can be installed with micropip) are installed automatically when imported. So if you just import pandas, sklearn, or matplotlib, it'll just work, although it'll take a while the first time. Unfortunately seaborn doesn't seem to work. But in any case, there's no graphical output section for plots and such.

I would like to eventually have multiple courses available, whether that's for covering different topics/tracks (like data science), different styles of teaching, different levels, or different languages. But the current course still isn't 'finished' so having alternatives hasn't been a priority. If you're interested in contributing course material, the basic topics that I want to cover next are listed in https://github.com/alexmojaki/futurecoder/issues/165 . If you'd be more motivated to write a course about pandas or a French translation then I'd be keen to implement the necessary architecture to make that possible for you.


This looks very cool - thank you for making this!

> For example, here are some drawbacks of Codecademy

Could you share some drawbacks of Futurecoder compared to Codecademy or other options? Would be useful to know when Futurecoder is and isn't the best option


- While I know that some people have used this with children and the children said they liked it and made some progress, I imagine some children need a game like https://codecombat.com/ to not lose interest.

- This is targeted at beginners. If you already know how to program and just need to know how Python differs from other programming languages, I would personally expect this to feel a bit too slow. However this is just a guess, I've been told that it's fine by someone who was relearning Python and even made a PR: https://github.com/alexmojaki/futurecoder/pull/171#issuecomm...

- I think futurecoder is the right place for learning the basics, i.e. for a complete beginner or for someone who has struggled with other learning resources. But it's just that - for now the course content doesn't go that far (https://futurecoder.io/course/#toc) and a student will need to find another resource with more content once they finish futurecoder. Even then, they may still find the debuggers and IDE helpful long after.

- The course is not designed for a teaching/classroom environment. It's usable, but it may not fit with how some teachers want to teach. For example, students can get solutions to any exercise. However the IDE may still be useful in a classroom even without the course.

- For mobile devices: Tablets seem like they might be OK but it's not optimised for that and you still have to type lots of code. Phones will technically work but the CSS is basically broken at that screen size. (EDIT: just discovered that telling my browser to look at the desktop site works pretty well)

- Safari doesn't work at all because it doesn't play well with Pyodide, see e.g. https://github.com/pyodide/pyodide/issues/441

- There's no videos, which I assume some people would prefer, but honestly I don't think that's the right way to learn coding.


looks inviting!

I was looking for a description of the concepts / chapters covered – I'd suggest having a prominent link to https://futurecoder.io/course/#toc on the front page.

I'd also add the 'no account required' in the first screen – maybe next to the 'Just code' button.




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

Search: