cartesiandaemon.livejournal.com |
Tue 2006-05-16 11:26 |
* IO port and transistor level does crop up *sometimes* as you no doubt know better than me, just being a layer or two below machine code, but you'll probably only come across it if you start low down.
* PS. Is that last sentence correct? Do we have a particularly good abstraction? Do you ever need to know stuff that low level? I guess you need to know the chance of memory being cosmic rayed, and latencies in processors and network cables?
* I also learnt reasonably bottom up, and got frustrated when doing otherhow (eg. plunging into windows programming without really knowing how the gui works, or frobbing perl scripts without knowing anything about unix), though was reasonably successful doing it.
* I learnt a lot of my lower level stuff for fun, and then it came in handy as background knowledge when I learnt higher level stuff for real. Maybe this should be encouraged, perhaps, frighteningly, by going back to approving low-level compsci degrees as training for real programming jobs.
* OTOH, I'm biased -- I want to think the way I learnt is valuble, so may be over optimistic in justifying that.
* Perhaps attempt to encapsulate where lies/abstractions leak. Teach someone how to make a database, and say "And whenever it runs slower than foo, or before you finish planning, building or releasing, go and ask someone who knows how it works on the disk what's wrong, and listen and undertand the answer." Admittedly, this is dodgy for security/reliability issues, you need to understand as you go along. |
|