Yeah, complexity and that we hide the carrots. Bear with me.<p>I still remember a point in my early teens when I decided I wanted to learn to program. I ran into a wall so hard I stopped for a good year or two.<p>The complexity is a considerable cliff unless you have a guiding hand (thanks dad for throwing me a copy of K&amp;R and going off to watch startrek!), and if you didn&#x27;t, you&#x27;re not getting to Python around today.<p>First there&#x27;s the &quot;What language do I learn&quot; search query that turns up so much confusing information. &quot;Depends on what you want to do with it&quot;. Oh gee thanks, but I don&#x27;t know what I want to do with it. I just see that other people are doing cool things with it, so I want to know how they do it.<p>So you dabble in Python, C, Java, whatever has install instructions you can follow, because the moment a terminal prompt pops out you&#x27;re scared that you&#x27;ll screw up the family magic box and get into a lot of trouble. At this point curltarmake sounds like a Polynesian dish to you. Ack.<p>But you never actually do something useful. Thank you helpful online tutorial, I now know how to print &quot;Hello World&quot; 100 times without copy and pasting it (though that&#x27;d have been faster). There&#x27;s carrots for sure, but you never see them at that point. So you&#x27;re like &quot;eh, this tutorial is silly, let me try another of these 10 languages suggested&quot;.<p>And then later on, in high school you may have the considerable fortune to get to take a programming class that walks you through Java out of all of the things. All these OO concepts make little sense to you, but eh, you&#x27;ll be tested on this. The code is still onerous and useless, but you signed up for the class. Towards the end, you&#x27;ll slowly get an idea of useful things you can do with it (finally! after all these years!). Most of all, you&#x27;ll develop a distaste of Java.<p>The wonders of childhood. I honestly believe Assembly is much more straightforward than trying to grasp the current programming ecosystem as an outsider or a kid. There&#x27;s so much stuff to become acclimatized to.<p>So recently I&#x27;ve been working with a guy who wants go get into programming, did a bit of HTML&amp;CSS&amp;JS&amp;Whatnot half a year ago, but he was stuck in that &quot;I don&#x27;t know where I&#x27;m going&quot; stage. First thing I recommended him was &quot;Automate the Boring Stuff with Python&quot;, which is a book I absolutely adore, because it first walks you through the basics (including setup), and then immediately gives you one library after another to string scripts together with.<p>Yes, the code may not be teaching the best conventions or habits, it never delves into OO or version control systems, but then it&#x27;s interesting hubris to think beginners care about that before they got any utility out of the skill.<p>And he enjoyed it, learned a bunch of things, started writing his on scripts and is now getting into Django and reading through the python cookbook.<p>So yes, I think we&#x27;re missing the mark on showing kids and newcomers how to program, in part because it&#x27;s gotten more and more complex, and in part because we give them keys to doors they don&#x27;t even know about, whilst withholding those to doors they care about. We&#x27;ve got a major sequencing problem here.