3 ms·
For some reason, the vast majority of developers take 'premature' to be a synonym of any. If CS majors spent a fraction of the time learning how to optimize th
by hindsightbias 12y ago
For some reason, the vast majority of developers take 'premature' to be a synonym of any.
If CS majors spent a fraction of the time learning how to optimize the way EE/CEs do, we'd need a lot less magic from the latter.
- TillE 12y agoA huge amount of CS is algorithms and data structures. My undergrad degree also required two semesters of learning how a computer works from a logic gate level upwards, culminating with writing a simple pipelined CPU in Verilog. After three years I had a pretty good understanding from both the high level (algorithms) and the low level (caches, etc). CS programs vary, but basically all of them give you the tools needed to write efficient code. They generally don't teach you much about software "engineering", though, which remains a chaotic mess of a field.
- ajarmst 12y agoPart of the problem, is that Dijkstra's complaint is often still quite relevant: "Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter 'How to program if you cannot'."
- knightofmars 12y agoDrawing a parallel between software optimization and hardware optimization is unsure footing at best. Trying to map real world and often vague requirements to their corresponding software implementation is outright difficult. The closest analogy I can come up with regarding hardware would be to implement a piece of hardware that can take a varying number of I/O each with a completely unique decoding and encoding scheme.
- a1369209993 12y ago> a piece of hardware that can take a varying number of I/O each with a completely unique decoding and encoding scheme. So, a CPU?
- knightofmars 12y agoIf that CPU is magical and can encode/decode audio, and video, and any other format without additional software written for it, then sure, "a CPU" as you so simply put it.