Show HN: Learn Basics of Programming in 40 Minutes
easylang.online
easylang.online
This is the part that I think we assume without consideration. If someone has trouble learning programming the way we teach it we never think it's the methods or languages we try to teach them. Starting from zero, I think a non-procedural table of inputs to outputs is easy to understand on paper. Then to program it, we don't need any computation 'steps' that execute in a time dimension with mutable values, only logical building blocks that do what we learn they do and can rely upon. The emphasis could be on the invariants before and after a non-procedural expression.
I would also avoid rebinding values to vars: = means equal to at scope (let), not re/assign. They would probably hit recursion much sooner and be confused by it at first, but then be so much better off learning to decompose problems.