I am a student and am unsure about whether to focus my studies to generate a broad background with many experiences/technologies or on a specific skillset.

In one, I will have a deeper skillset with less exposure and experience to other technologies but in the other I will have a lot of exposure but less depth.

It seems like oftentimes companies are looking only for those with depth of experience. It makes me want to focus my studies on these skills and not care about the others.

How can I determine when it is beneficial, especially as a student, to focus on? What are the implications on my future career?


My own opinion is that it is best to be a jack of all trades but master of one. For me that means you get a general idea of the most important technologies that are in use today, but you specialize in a single one.

When I was a student I used to try and learn every language I could. But after a few years working, I realize that gaining expert knowledge in any single technology takes many years. That's not something you can do for every language.

To answer Question 1 directly, companies looking for people with one or two experience in a technology (e.g. C#) will usually at least consider someone who doesn't know that technology but has used something comparable (Java).

But that's not the case with more senior positions: if they need 8 years of C# experience, having a rough idea of the language won't land you a job.

To answer Question 2 directly, this is really a matter of preference, but my recommendation is to do the "jack of all trades, master of one" - specialize in something you like, but do keep reading about all the rest.

  • 3
    I'd like to add that you'd do well to have not only different languages, but also different language types. That is, not only a few different OO languages, but also one or more procedural ones as well as functional ones.
    – Jenny D
    Feb 28 '15 at 19:00
  • 2
    @JennyD And SQL. If you're a programmer, SQL should be relatively easy to pick up, and you'd be doing your bank account a disservice not to learn SQL.
    – nhgrif
    Mar 1 '15 at 1:39
  • Databasing, OOP, Command Line, Networking, just to name a few fields you should dip into when becoming an "IT Professional".
    – Zibbobz
    Mar 6 '15 at 17:56

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.

  • 1
    Yes, I wholeheartedly agree! College will almost never teach you the skills you directly need for your first job, and hiring managers will not expect students to have the necessary knowledge for the position. However, they will value someone who has proven that they can learn new tasks quickly and effectively.
    – David K
    Mar 6 '15 at 17:43

You must log in to answer this question.