Find something that interests you in very advanced computer science or mathematics and learn it extremely well, while building out a breadth of shallower expertise in foundational and peripheral CS/math.
You do this for two reasons: 1) if you learn (and can apply) what is very difficult for others to learn, you'll have very good job security and better overall work opportunities; 2) everything else that becomes vogue will be comparatively straightforward for you to learn, because it's merely an application of what you already know. This gives you a head start on what's vogue in the future.
Let's look at an example: say you understand linear algebra and statistics extremely well, and can productively write performant code that leverages this understanding. You are now good at machine learning (or have the capacity to become good)! You're also good at understanding cryptography, which means you can ride the cryptocurrency job boom if you want.
I can guarantee you that there will be, or is now, an emerging renaissance in some field which will be happy to pay people with very rare, useful and generalizable skills compensation that would make you double take. Don't kneecap yourself by learning "just" AI.
This should be the big highlight of your comment. A lot of people out there don't seem to realize that the mass adoption of AI that is being claimed to happen still can go up in smoke if
1) the tech is proven to be unscalable,
2) the tech has a huge expense (money, personal info, etc),
or
3) the tech is seen as tacky and gains the associated brand image
Right now, AI requires a lot of FPGA power to do, so 2 might be the most likely scenario in the short term. Long term, unless non-technical users can be convinced to let go of their privacy enough for highly public contextual computing to be performed, then 3 will occur.
As for the OP, I'd recommend Full Stack since you get exposure to almost everything that you'd encounter in 90% of dev environments out there.
If you want to be positioned for the long term, build your own business by mastering marketing and building a network and selling and producing and project management.
In the medium term, learn mathematics so you can benefit from the shift to AI/ML. I am not personally doing this because math is not fun for me.
Find something that you are passionate about or at least a domain that you find fun or interesting. The horizontal landscape of CS is incredibly vast. The last thing you want to do is to learn something you are not interested in. Let's say you will make lots of money from quadcopters in the future, but would you still do it if you ended up hating yourself?
One thing that is important is the fundamentals and basics of CS. You usually want to have a good base so that learning other things built with the fundamentals becomes easy. IE: You dont want to learn calculus without learning basic arithmetic first.
Figure out what domain you want to be in, for example real estate. Once you find that out, look for the programming languages, math, and technology they are using. This is one way to get a job right away after graduation.
Go talk to other students in other faculties from STEM to Humanities. You'd be surprised how they use technology, which you might have not realized before.