Be prepared to become a master in whatever job is offered
This does not mean becoming a master of all possible fields at the education level - in fact, I actively discourage this approach. You should definitely branch out into multiple fields, and you should try to master at least one that you find interesting so that you have a firm understanding of it, preferably one that is a core field in the area you are studying.
However, there is no sure gurantee that you will find a career in the mastery of that one field - but learning how to master that one field prepares you for the most difficult challenge of job-hunting: mastering what they are looking for.
As a personal example, I was not a Java master when I applied for this position. I was an information-design specialist with a focus in web page design. But I found many of the places I would apply for asked for someone with expertise in Java. What I did was take a certification course, and largely self-taught myself through books and online resources how to use Java effectively enough that I could, at the very least, write on my resume that I was an 'expert' in Java.
Finding a niche in the workforce is less about being really good at one thing and applying for it, and more about knowing how to become an expert in a field. Flexibility, and the ability to master what is needed, is far more valued in an employee than just being really good at one thing.
In short: What you should be learning is not a broad set of software languages, or one language very well. What you should be learning is how to learn, and to learn well.