> But I respectfully decline your advice and take the opposite stance that it is my duty to not devote my time for years to staged academic exercises but instead work on real problems
I have no idea what particular university or course you are talking about. You might be right for some of them.
But I have been working only 5 years after finishing university and I can already spot right away backgrounds in engineering, computer science or none.
It's not about the piece of paper, never cared about those.
It's not for everyone, so it's your choice, really. But I had the time (and money) to go through very theoretical cs courses and I am extremely happy I did not choose the "real problems". I feel I have a lot more options, and I can understand the various problems I find a lot better.
I will admit I found the applications of a lot of the theory only much later than I initially though, and I don't use the theory of some of the course I followed, but I still find that knowledge irreplaceable.
I had (and shared with colleagues) a few "so that's why we studied that!" moments, I found those very insightful, sorry you might not have had yours.
Good luck in life, but I guess if your experience has been only of "staged academic exercises" either you did not get the point or they could not transmit it.
Oh I got a lot of value out of my degree. I enjoyed the theory the most. Trees, Graphs, Algorithmic Complexity and Artificial Intelligence are my deepest interests and I have studied the theory of them in depth. It is just that the way how the knowledge is transferred and especially how it is examined and marked is sadly often not goal orientated. I am happy that I spent a lot of time on my CS education in university, I just see no point in "finishing" it (getting the "special" graduation paper).
It's interesting to see the bifurcation between developers and software engineers continuing to deepen. Most developer jobs have been simplified, compared to pre-2000 development, that the knowledge conferred by a CS degree is indeed no longer required and knowledge of in vogue languages and frameworks is more immediately useful.
The rub is, of course, that creating those frameworks, language compilers, etc., still does require knowledge of CS. Knowing how to operate a car is not the same as knowing how to design and build one. As a person advances in their career, more and more deep knowledge is required and they may find themselves hitting a wall mid- to late in their career because they never acquired these fundamentals. And, unlike tools, these fundamentals are built on each other so that one has to acquire one before going on to the next; you can't just skim a book on compiler design without the prerequisite knowledge.
So, it's kind of a gamble that their career trajectory is going stay in the space where they never need that knowledge. It's not necessarily a bad gamble either since there are always going to be such jobs but the risk should be understood by anyone intending to follow the poster's advice.
I got the most value out of studying deep theory and then applying that knowledge to real problems. That is just a rare combination for most courses in my experience to offer. Sadly most are of the form: study a lot by heart for the finals. Repeat 5 to 6 times per semester, repeat for 6 times and graduate. Just not my style of learning.
4 comments
[ 4.7 ms ] story [ 18.5 ms ] threadI have no idea what particular university or course you are talking about. You might be right for some of them.
But I have been working only 5 years after finishing university and I can already spot right away backgrounds in engineering, computer science or none.
It's not about the piece of paper, never cared about those.
It's not for everyone, so it's your choice, really. But I had the time (and money) to go through very theoretical cs courses and I am extremely happy I did not choose the "real problems". I feel I have a lot more options, and I can understand the various problems I find a lot better.
I will admit I found the applications of a lot of the theory only much later than I initially though, and I don't use the theory of some of the course I followed, but I still find that knowledge irreplaceable. I had (and shared with colleagues) a few "so that's why we studied that!" moments, I found those very insightful, sorry you might not have had yours.
Good luck in life, but I guess if your experience has been only of "staged academic exercises" either you did not get the point or they could not transmit it.
The rub is, of course, that creating those frameworks, language compilers, etc., still does require knowledge of CS. Knowing how to operate a car is not the same as knowing how to design and build one. As a person advances in their career, more and more deep knowledge is required and they may find themselves hitting a wall mid- to late in their career because they never acquired these fundamentals. And, unlike tools, these fundamentals are built on each other so that one has to acquire one before going on to the next; you can't just skim a book on compiler design without the prerequisite knowledge.
So, it's kind of a gamble that their career trajectory is going stay in the space where they never need that knowledge. It's not necessarily a bad gamble either since there are always going to be such jobs but the risk should be understood by anyone intending to follow the poster's advice.