Knowing how to tell computers how to do things is essential, and there will be more and more computers that need to be told what to do. the question is "can we teach everyone to do this job?" if the answer is yes, then of course, it will get cheap. If the answer is no, then we're going to be wealthy for the rest of our days.

Nobody knows the answer to this question. In the '80s and '90s, programming tools got better and better and we all thought that we'd have some rational case tool type deal that managers would voice activate and make software without programmers, or, if programmers were still needed, they'd be regular joes making regular joe money. And that looked realistic. as a teen in the mid '90s, home computers were super common and a bunch of people at my (not very good) high school did basic programming. None of us thought this was the road to dentist money. (but then, most of us would have been pretty happy with manufacturing money. Expectations were low.)

In the aughts, this idea fell away, and now in the teens, it's nigh unthinkable; big companies throw a lot of money at the best computer people they can find, and these people then code in editors that look primitive compared to the IDEs of the late '90s. I strongly suspect we'll see some swing back towards more reliance on tools and less reliance on genius in the coming decades, just 'cause I expect things to cycle that way. I personally think there's something to genius? but... I also think that things won't always be as good for us as they are now. Perhaps it is because I started my first programming job in '97, but I expect business cycle swings to be extreme and temporary. The business cycle goes up and the business cycle goes down.

If you had my opportunities (i.e. no college) I'd say that CS was almost certainly your best bet; go deep, go hard, ignore everything else and get yourself a job while the getting was good. learn breadth later. But if you are the sort who got into an elite school, well, you have a lot more opportunities, most of which I probably don't entirely understand (and that I'm certainly not qualified to evaluate)

I would bet all the money I can borrow on the continued importance of computers... but my personal bet? my personal bet is that in the future it will be more like literacy. Sure, sure you need to be able to tell computers what to do. but you also need to know a thing so you know what to tell them to do. Tools will continue to evolve. There will be lots of spaces for people who can understand both what we are trying to get the computer to do (be that business, medicine, whatever) and how to tell the computer how to do it.

My own advice to you is to get some breadth. I mean, if you can, get that FAANG internship; working at a top-tier company has huge differences in pay and prestige from working at a second or third tier company. Do that now while it's hot, if you can. (this is general advice I'd give to young me: don't be so afraid of super hot trends, they are fun, and super remunerative!)

It took me two decades (more if you count the IT work I did in high school) to get to a top-tier company, and it is a huge difference. If you can do that out of college? you will have a huge leg up financially. (and in terms of choices as to what you can do next)

All that said, you have a lot more opportunities than I did. You'll be fine. Enjoy it. Learn stuff. meet interesting people. Leave college with a full rolodex (or linkedin or whatever) and call (or email or however you kids communicate) every now and then. friends are great on a bunch of levels.