[HN Gopher] Show HN: Futurecoder - A free online interactive Pyt...
       ___________________________________________________________________
        
       Show HN: Futurecoder - A free online interactive Python course
        
       Author : alexmojaki
       Score  : 59 points
       Date   : 2021-10-03 15:10 UTC (7 hours ago)
        
 (HTM) web link (futurecoder.io)
 (TXT) w3m dump (futurecoder.io)
        
       | plondon514 wrote:
       | Hey this looks really cool! I'm working on a similar project with
       | https://codeamigo.dev and I'm looking for someone to work with...
        
       | andrewnc wrote:
       | If 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.
        
         | alexmojaki wrote:
         | The 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
         | 
         | 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/ 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?
        
           | Leparamour wrote:
           | Check out this thread:
           | 
           | 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.
        
           | codetrotter wrote:
           | > 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.
        
         | [deleted]
        
       | Melting_Harps wrote:
       | Pretty 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 wrote:
         | Glad you like it! Yes, the basics of f-strings are covered in
         | https://futurecoder.io/course/#IntroducingFstrings
        
       | tomcooks wrote:
       | Congratulations, 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 wrote:
         | Thanks for pointing this out, will investigate.
        
       | alexmojaki wrote:
       | 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'.
        
         | wirelesspotat wrote:
         | 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
        
           | alexmojaki wrote:
           | - 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.
        
         | pax wrote:
         | 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.
        
       ___________________________________________________________________
       (page generated 2021-10-03 23:01 UTC)