The New Coder's Hierarchy of Needs
Part 1: Define Terms
Turning on the computer, remembering your password , installing Python.
Let's face it. Most people don't get past step three but we can mostly forget about all of this now thanks to Replit et. al.  Thanks, guys!
Adding forgotten parentheses, spotting unclosed quotation marks, and eliminating Unexpected Indentation Errors, etc.
Typing code is hard. Most people didn't realize there are so many types of braces. Most people don't realize that this one \ is the backslash. But this can become easy with practice.
Ability to predict the behavior of code before it runs and generate informed hypotheses about how a change to the code changes its behavior. (See also: the notional machine)
There are a lot of syntactically correct programs out there and writing one is easy once you get the hang of it. Understanding how the relatively simple rules of a programming language compose into complex behavior is a little more complicated.
I received a specification, and I created a computer program that meets that specification, hooray!
If computers are your thing, the hooray in the preceding sentence might be genuine. If you're 90% of students completing 90% of school assignments, there's a 90% chance it's sarcastic.
I invented a specification for a computer program that would be entertaining/useful/profitable for me, and I succeeded in implementing it, hooray!
Yeah, this is the good stuff.
Part 2: Draw and Subsequently Invert Pyramid
Part 3: Status Quo
Scratch successfully inverts the learning-to-code pyramid to our preferred orientation. Scratch meets students where they are, getting them engaged with computer science by allowing them to quickly prototype animations and games. Using a block coding environment on your Chromebook to make a game circumvents problems of setup, syntax, and to some degree semantics. The platform's focus on sharing creative projects is amazing, and its usage numbers reflect how good it is.
Part 4: Future Solutions
 The closest I've ever come to quitting coding was 10 minutes into Comp11, where I couldn't figure out why the computer wouldn't accept my input for my password. Turns out, Unix systems don't display *'s as you type your password, so my password was in fact being typed. Who knew!
 Even in Replit, the default project type is a "Blank Nix Environment". The number of times I've seen a student accidentally type 20 lines of python into a config.nix file is crazy
 pickcode.io (We're about 15% of the way there)