While most programmers are web and mobile application developers, not all are. Yes, there are people out there doing systems programming, contributing to the Rust compiler, and all those things. Further, debugging a system is harder than writing the system and much, much harder if you do not have a suitable store of background information.
Insert story about explaining to my aerospace engineer buddy why
for i in 1..n:
s += y
for strings s and y was fine on one browser and very, very slow on another.
When was the last time I wrote a red-black tree? Never. I've never had to write a red-black tree. If I need one right now, I'd have to go look it up. (But then, I'm charging $5 for hitting the pipe with a hammer and $95 for knowing where to hit the pipe with the hammer.) On the other hand, I had to build some damn data structure or other last week, and that is a very similar problem. Don't miss the forest for the trees.
Should programming be a large part of CS? Yes, absolutely. Doing these things in practice is a big part of learning them, and that's why a person with an undergrad degree in CS is employable and a person with an undergrad degree in Archaeology isn't.
Insert story about explaining to my aerospace engineer buddy why
for strings s and y was fine on one browser and very, very slow on another.When was the last time I wrote a red-black tree? Never. I've never had to write a red-black tree. If I need one right now, I'd have to go look it up. (But then, I'm charging $5 for hitting the pipe with a hammer and $95 for knowing where to hit the pipe with the hammer.) On the other hand, I had to build some damn data structure or other last week, and that is a very similar problem. Don't miss the forest for the trees.
Should programming be a large part of CS? Yes, absolutely. Doing these things in practice is a big part of learning them, and that's why a person with an undergrad degree in CS is employable and a person with an undergrad degree in Archaeology isn't.