On Wed, Dec 11, 2013 at 7:34 PM, Devin Jeanpierre <jeanpierr...@gmail.com> wrote: > On Tue, Dec 10, 2013 at 2:02 PM, Ethan Furman <et...@stoneleaf.us> wrote: >> Doesn't sound like they do, as that's causing plenty of problems. In >> today's world that level of knowledge isn't always necessary, especially if >> your degree is not in CS. One of the (many) nice things about Python is one >> doesn't need to know that stuff to Get Things Done. > > You don't need to know how to use the brakes to drive to Wal-Mart, > either. "Get Things Done" is not the one and only goal. It ignores > productivity, correctness, ethics... It isn't a bad thing to learn > things that are unnecessary to get the bare minimum accomplished.
When you tell a story, it's important to engage the reader from the start. Sometimes that means starting the story in the middle of the action, and filling in the important-but-less-exciting details later, when they mean something. [1] Teaching a skill often hits the same sorts of issues. Rather than explain "This is how to manipulate registers in a CPU", explain "This is how to print Hello World to the console" and worry about what exactly the console is (and how redirection affects it) later. My tutorial on assembly language programming did the same, though it used a one-character-output operation so it printed a single asterisk to standard out. (Manually setting CPU register AX to 0200 and DX to 002A, placing an INT 21 command in memory, and single-stepping it.) Learning how all that functions - or even what the INT opcode means - came later. Start with something visible and engaging. After that, learn/teach as much background as is of interest, and improve skills. But start with something that gets something done. [1] http://tvtropes.org/pmwiki/pmwiki.php/Main/InMediasRes ChrisA -- https://mail.python.org/mailman/listinfo/python-list