> >Even if someone > > ends up using a higher level language once they get going, the insight > > gained from doing a few assembler projects will be valuable. > > Why doesn't this same theory apply to Macs, Solaris, Windows, or Linux boxes? > What is it about small systems that turns this on its head? Because those systems have infinite resources for the purpose of most programs, and all the processor and peripheral details are abstracted thru drivers and interface libraries. It's all just software layered on more software, and a few extra cycles or memory locations don't matter. You can write large useful programs without having a clue how a computer really works, although on rare occasions at the edges of the architecture it can be an advantage to understand how the compiler is using the stack, for example. The abstractions and generalizations by and large work. If your program is a pig, no problem. For a few 10s of $$, you can add another 128Mbyte of memory. No big deal when the system costs $1,000 in the first place. I also disagree somewhat that the theory of learning bottom up doesn't apply to large systems. Bottom up learning in most subjects generally takes longer to produce "cool" results, but in the end produces better results. It therefore makes sense to use that approach for the truly motivated and those that need to really understand. If you aked me to teach an accountant how to program so that he could write his own programs for adding up lists of numbers, I would show him a high level language. If you asked me to teach freshman computer science students with the end result measured 4 years later, I would absolutely start with the low levels on simple systems and work up. Each step of the way I would have them discover for themselves the motivations for things like assemblers, linkers, device drivers, operating systems, compilers, etc. Four years later they'd be able to jump into any system anywhere and pick up new information easily. You also have to take into account different learning styles. Some will want instant gratification. They just want to get a job done and superficial knowledge is good enough. They might delve into the details later. Frankly I've seen these types of people produce useful results and get good but never great. They get stumped more and end up getting help from the guru. However, the truly interested will feel "naked" until they understand what is really happening. Working top down will frustrate them. Teaching them bottom up is how you create the next generation of gurus. ***************************************************************** Embed Inc, embedded system specialists in Littleton Massachusetts (978) 742-9014, http://www.embedinc.com -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.