Computer science major = waste of youth?

In summary, the conversation discusses the concerns of a computer science major who feels that their field is evolving at a rapid pace and the knowledge they are acquiring may soon become obsolete. They wonder if engineering would be a better fit, as their post-graduation learning would better their understanding of the physical world, while post-graduation learning in computer science would require learning arbitrary changes in arbitrary things. However, it is pointed out that the foundations and fundamentals of computer science, such as algorithms and data structures, remain relevant and evolve at a slower pace. It is also noted that self-learning in computer science is more accessible compared to other fields.
  • #36
However inapplicable pure maths may be, it will never change.

If it's really inapplicable, then what's the point of not changing? Its worth is zero and since it can't change, its worth will always be zero. I actually don't completely dismiss the value of math for math's sake, but I think that applies more to simple things than the kind of baroque, ultra-complicated stuff I see mathematicians working on today. On the one hand, you could look at something like a proof by pictures of the Pythagorean theorem that doesn't require a ton of background to appreciate. I once explained it to a graduate student in music, and I could tell he was really excited. Ignoring the immense practicality of the Pythagorean theorem, that kind of mathematical beauty comes quite cheaply, and I would say it's worthwhile, just purely for the fun of it! But as you get deeper and deeper, the price of admission gets bigger and bigger. You could take a theorem like the spectral theorem of functional analysis that's pretty deep and not really accessible to laymen, but you don't exactly need to devote your life to understanding it. If you go much further than that, it gets to some unknown territory for me. Maybe I'd see more value in more math if I understood more of it, but I do have the distinct impression of having diminishing returns, as far as I did get. I don't think it's worth all the intense competition and all the insanely hard work. Not even by a long shot. Not for me, anyway. Unless it can make a difference in people's lives.

I think you're not seeing the forest through the trees when it comes to programming. Programming is very logical. The particular details of syntax are not that important. The concept of a for loop makes sense, independent of the details of how it has been implemented in various languages. It's DRY. Don't repeat yourself. If you didn't have loops, you'd have to type the same code over and over, possibly hundreds of times. The necessity of iteration can therefore be viewed almost as if it were a timeless mathematical truth. When you are stuck looking at the trees, you don't see this forest. Don't worry about the fact that it has to be

for(int i = 0; i<100; i++)
{
// do stuff
}

Who cares about that? If you learn it in C++, it's the same concept in Python, even if the exact way that you write it out is slightly different.

It's a form of engineering. Do you think if someone designs a car that they had to make every piece exactly the way they did or was there some wiggle room? Obviously, there was some wiggle room--just look at all the different kinds of cars out there. And math is that way to some degree, too. A proof doesn't have to be done exactly the way they did it. There may be 50 different ways to prove the same thing. Which way do you choose? As it turns out, the choice in the way the same piece of mathematics is proven can evolve over time.

Plus, a PhD in maths would allow you to enter academia, where you would age like wine as an employee (tenure = unfirable). Programmers age like fruit - at 40+, your value as an employee drops like a rock.

I have a PhD in math and to put it in Biblical terms, it would be easier for a camel to pass through the eye of a needle than for me to enter academia. Except as an adjunct, but I'm not sure that's any better than flipping burgers, prestige aside--there's definitely no aging like wine there.

I'm not sure it's really true that programmers age like fruit. Especially someone like me because if I break into programming, my math expertise will open a lot more doors when combined with being able to say I worked professionally using Java or C++ for X years.
 
  • Like
Likes ulianjay
Physics news on Phys.org
  • #37
jtbell said:
Specific languages and technologies come and go. Fundamental stuff like algorithms, data structures, and good practices in software engineering, stick around and evolve much more slowly.

This is what I was going to say.

Many people say that the book "Structure and Interpretation of Computer Programs" by Gerald Jay Sussman and Hal Abelson revolutionized the way CS is taught. Instead of spending all the time learning specifics about some programming language, you spend more time learning fundamental things that never change like algorithms, data structures, maths, etc.

It didn't revolutionize it at all universities, many universities still use the old methods, in which students spend 4 years learning the specifics of languages and when they graduate, they can't program in any language other than the ones they learned.

Try to take as many subjects about fundamental things and less subjects about specific languages or specific technologies. You can always learn those on your own, like if you know C language, you can easily pick up web development due to common syntax.

What I did is a double major in EE and CS and I love the EE stuff. Can you do that? CS goes well with many majors, like maths, biology, physics, economics etc. and makes your experience at university more interesting.
 
  • #38
annoyinggirl said:
thank you for sharing your experiences with me. However, i feel that it is not exactly a valid analogy. This is because the technology that you learned for analog microwave technology is still embedded in physics. Your engineering degree taught you physics, which would NEVER change. Also, because what you learned for analog microwave technology is physics, it could be applied to newer technologies as well. At the very least, it taught you better understanding of the physical world. The same cannot be said for programming, where the languages are man-made and arbitrary. New programming languages come and go, and unlike physics, they will always change.

I see why you adopted the name of annoyinggirl :)

At some level, everything boils down to math and physics. And you're right, it doesn't change. But the methods, materials, applications, and design practices DO change. Driving a truck uses math and physics too. So what?

You could also argue the same thing about ethics. One could say that ethics all boil down to the Ten Commandments. While that may even be true, it doesn't tell you how to handle everyday situations you are likely to encounter.

This is not about learning math and physics. At the end of the day, while those concepts are almost timeless, the applications do change. And we're not talking about small changes, we're talking about enormous transformations, that cause social and even ethical changes.

Schools spend a lot of time teaching those practical things as well. Even the examples they show are examples of practices from every day life. The examples I learned when I was in school are irrelevant today because of newer designs, practices, and materials. Thankfully, I'm always learning new things, and I adapt.

You should too.
 

Similar threads

Replies
18
Views
3K
  • STEM Career Guidance
Replies
1
Views
2K
  • STEM Career Guidance
Replies
18
Views
4K
  • STEM Career Guidance
Replies
1
Views
1K
  • STEM Academic Advising
Replies
23
Views
3K
  • STEM Career Guidance
Replies
4
Views
1K
  • STEM Career Guidance
Replies
4
Views
6K
Replies
4
Views
2K
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Career Guidance
Replies
16
Views
3K
Back
Top