To view parent comment, click here.
To read all comments associated with this story, please click here.
As much as I appreciate the low level stuff, I think it's hard to make a case for why most students would ever need it.
I can think of quite a few big market who might actually need it, such as embedded stuff or hardware development. Now, I guess what you implied is that "one doesn't really need the low-level stuff to build user-mode software".
I'd say that this, too, can be debatable, though. As an example, when people know so little about computer memory hierarchies and their management that they end up considering memory allocation as a magic thing that brings extra objects to their code whenever they need it, memory management overhead will cause performance problems in their software in the long run.
Edited 2012-09-22 07:06 UTC
Perhaps. Are you talking about manually-managed languages like C or ones that use reference counting and/or garbage collection like Python, Javascript, and certain approaches to using C++?
...because for something as high-level as Python or Javascript, I can easily see a "you can lead a horse to water but you can't make him drink" problem in teaching lower-level details.
There are a lot of high-level programmers who fairly firmly see anything beyond the care and feeding of a reference count system or the tips for getting along with their particular garbage collector as too academic to be worth their precious attention.
Of course, I will definitely agree that high-level teaching needs to be improved. I'm mostly self-taught (because most of what University taught me about computer science, I'd already taught myself) and it was little more than luck that I recognized "syscalls are heavy. do as few of them as possible." as a general rule from reading Python profiler reports.
(At which point, a friend who studied CS about 15 or 20 years ago said something along the lines of "Of course. Is that no longer one of the first things you learn?")
Edited 2012-09-22 22:03 UTC





Member since:
2011-01-28
I guess low level is a bit vague, but when I use it I'm referring to understanding what the hardware is doing at a hardware level. Conversely high level for me would mean hiding the hardware behind abstractions.
As much as I appreciate the low level stuff, I think it's hard to make a case for why most students would ever need it.