|
|
|
|
|
by nikdaheratik
3651 days ago
|
|
I have very mixed feelings about this article. For one thing, there are a couple of different kinds of CS programs. The basic division is, or used to be, whether it was more Math or Engineering heavy. In fact, some schools attach the program to a BS in the Math department and others in the engineering with more exposure to EE and Computer Engineering. Neither of these are necessarily helpful for becoming a programmer in today's market, but they do generate very different experiences. The biggest benefit for me was the complete understanding and model you get of the entire computer. How it works, what theories it is based on, why things are the way they are (in terms of the Turing model, the way microprocessors work, etc). I don't believe this knowledge is helpful from a software engineering point, and I may have been a better programmer if I had spent those years learning more about how to work as a team and how to solve real-world problems. However, I do feel that it has allowed me to switch between different fields of programming without completely being thrown for a loop. It has allowed me to understand the issues that crop up when something goes wrong on a much deeper level, or why problems crop up on one part of "the stack" that I may not have understood had I focused merely on learning how to program. These are personally valuable to me, whether or not they may have been more valuable to my career. |
|
I definitely think that understanding the lower levels helps me write better software, largely for the reasons you list.