5 ms·
Show HN: Futurecoder – A free online interactive Python course
- andrewnc 5y agoIf you can, you should consider supporting mobile browsers. This tool could be a powerful way for those with only mobile computing power to improve their situation via coding.
- iota7 5y agotyping text on mobile devices are usually not a good experience
- alexmojaki 5y agoThe only modern browser that I know really doesn't work is Safari, which unfortunately doesn't play well with Pyodide, see e.g. https://github.com/pyodide/pyodide/issues/441 https://github.com/pyodide/pyodide/issues/441 It should work to an extent on a mobile device, but I can't imagine how to make it a good user experience while actually coding. A tablet should be okayish, it's just not optimised for that. Typing code on a phone sounds awful. For anyone who really wants that I recommend https://grasshopper.app/ https://grasshopper.app/ to learn on the go while dragging and dropping, but this comes with serious limitations. Ultimately I don't know what the long term plan is for someone without a desktop device. Do people write full programs on mobile devices? Is it easy enough to install external dependencies? To build and package software for release?
- codetrotter 5y ago> Typing code on a phone sounds awful. For sure. But I’ve heard of people who literally don’t have money for a computer and who so started coding on their phone.
- Leparamour 5y agoCheck out this thread: https://news.ycombinator.com/item?id=27903630 https://news.ycombinator.com/item?id=27903630 It's impressive what some people can achieve under restraints. Following the recommendation I started to use Pydroid (on Adroid) from the Playstore and even without an external keyboard it's great for little scripts (or exercises) on the go.
- deleted 5y ago[deleted]
- Melting_Harps 5y agoPretty cool, I'm getting back to coding after a 4.5 year hiatus, and I'm seeing how much cleaner F-strings make python code. Does this course cover them? I'd like to something to measure my progress against and this could be pretty neat to play with. Awesome job, I just through ran through a few of the levels and it seems easily digestible as a refresher.
- alexmojaki 5y agoGlad you like it! Yes, the basics of f-strings are covered in https://futurecoder.io/course/#IntroducingFstrings https://futurecoder.io/course/#IntroducingFstrings
- plondon514 5y agoHey this looks really cool! I’m working on a similar project with https://codeamigo.dev https://codeamigo.dev and I’m looking for someone to work with…
- alexmojaki 5y agoHighlights: - 100% free and open source (https://github.com/alexmojaki/futurecoder 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/ 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 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 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 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'.
- tomcooks 5y agoCongratulations, this is really a nice project. Beware, when signing up with my email the white overlay signup container became empty (full width, a few pixels tall, no content inside). I clicked outside it to close it, header still showing the blue login/sign up button. Reloading the page showed me as logged in (my email in the header)
- alexmojaki 5y agoThanks for pointing this out, will investigate.
- anadem 5y agoditto (firefox 92.0.1) and I can't get past 'hello' + 'world' .. there's no Next button, only Previous
- alexmojaki 5y agoAt every step, you need to run code to advance. On that page (https://futurecoder.io/course/#AddingStrings https://futurecoder.io/course/#AddingStrings) you first need to run `'hello' + 'world'` in the shell as instructed. The next step is an exercise: you have to output the same thing with a space in between words, so code such as `'hello' + ' ' + 'world'` is accepted. The 'Next' button only appears at the end of the page. You're not the first person I've seen get confused about this, I'll need to find a way to make it clearer that the interface is waiting for you to run something.
- rmbyrro 5y agoIs it really a good idea to train people to code in an environment that is so different from the one they'll have in real life? I know the goal is to lower the bar to start out. But anyway, I just wonder whether we're going to far that might actually mislead people about how hard it is to program professionally.
- yingliu4203 5y agoIs it possible to use VS Code as editor? It will be a wonderful experience.
- jasfi 5y agoCan Futurecoder be easily extended to support other programming languages?
- alexmojaki 5y agoI'm afraid not, several of its features are specific to Python.
- benkkey 5y agoIt took so long before it finished loading for me. Also, is there a plan to create another programming language, or is it solely for Python online?
- alexmojaki 5y agoSorry to hear that. Which part of loading are you talking about? The home page? The course? Being able to run code? There's no plans for other programming languages, a lot of the features are Python-specific.