I went a similar path (doing physics but not really excelling at it) and ended up a programmer. I'm pretty happy with programming overall. Note that in real-world applications, most of the effort goes into the engineering-like side of making sure your code is clean and maintainable, rather than the comp-sci-like side of having clever data structures and algorithms. It certainly doesn't feel "too easy" most days, though it can sometimes be frustrating when you end up spending time struggling with tools rather than what you're really trying to do.
Perhaps I should've said, hard in the wrong ways. The long term goal for a good professional programmer seems to be understanding what the client wants. Some math is needed to understand the tools, so you can give some context for options. But I spend most of my creative energy making sure my programs do what I want them to do, and that is really hard when each language has it's own prejudice motivating its design.
I seriously considered looking into real time high risk software applications. But I just decided that instead of learning new languages until I ran out of youth, it'd be more fun learning general relativity, or even measure theory. The ideas in those subjects will probably hold out a lot longer then python.
I'm sorry if this is the wrong place for this, but I'm kind of trying to find a turning point in my life.
I've been told repeatedly that I have a talent for math, or science (by qualified people). And I seem to be intelligent enough to understand large parts of math and physics. But I don't know if I'm intelligent enough to make a meaningful contribution to math or physics.
Lately I've been particularly sad, since my score on the quantitative general GRE, and potentially, the Math subject test aren't "outstanding". They are certainly okay (official 78 percentile, unofficial 68 percentile respectively). But that is "barely qualified" for a top 50 math program.
Given that I think these scores are likely correlated with my IQ (they seem to roughly predict my GPA so far 3.5, math and physics major), I worry that I'm getting clues that maybe I should "give up".
This would be painful for me to accept if true, I care very deeply about inference and nature. It would be nice if I could have a job in this, but the standard career path seems to be telling me "maybe?"
When do you throw in the towel? How do you measure your own intelligence? I've already "given up" once before and tried programming, but the average actual problem was too easy relative to the intellectual work (memorizing technical fluuf). And other engineering disciplines seem similar. Is there a compromise somewhere, or do I just need to grow up?
classes:
For what it's worth, the classes I've taken include Real and Complex Analysis, Algebra, Differential geometry, Quantum Mechanics, Mechanics, and others. And most of my GPA is burned by Algebra and 3rd term Quantum specifically. But part of my worry, is that somebody who is going to do well, would never get burned by courses like this. But I'm not really sure. It seems like one should fail sometimes, but rarely standard assessments.
Edit:
Thank you all for your thoughts, you are a very warm community. I'll give more specific thoughts tomorrow. For what it's worth, I'll be 24 next month.
Double Edit:
Thank you all for your thoughts and suggestions. I think I will tentatively work towards an applied Mathematics PHD. It isn't so important that the school you get into is in the top ten, and there will be lots of opportunities to work on a variety of interesting important problems (throughout my life). Plus, after the PHD, transitioning into industry can be reasonably easy. It seems to make a fair bit of sense given my interests, background, and ability.