Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My situation is this. I will be graduating soon with a degree in Computer Science. I did have a job for a while working as a Web Developer for a small graphic design company. During this time, we did work on a few large scale projects for the local university. I eventually had to leave that job after the economy crashed due to a lack of available work. Since then I haven't had any jobs related to my field as there aren't usually many available in the area I live in. I have been actively searching for jobs for the last 4 months and have had very little if any positive feedback. This has left me wondering if perhaps my qualifications are what they should be. I would say in general I have a basic to intermediate understanding of many languages and systems. I'm not sure I could say I'm specialized in anything, though web development using PHP/MySQL would be the closest thing I have to a specialty. That being said I'm not sure at this point that I want to pursue only web development as I would prefer to get more into desktop application development. Do employers look more for people with specialties than they do those that have broad general abilities?

share|improve this question
add comment

8 Answers

up vote 8 down vote accepted

I've found that employer preference depends on the size of the company. Big companies are designed around maximizing the use of specialists, but small companies need generalists. At a very small company, you'll be expected to diagnose problems with your own PC, do the database management, write the web interface for the reporting engine, and write the desktop client application.

share|improve this answer
add comment

Do employers look more for people with specialties than they do those that have broad general abilities?

This is dependent on employers. From experience, most employers are looking for worthy applicants they can potentially mould to fit the position. However, some are looking for the niche-like, highly specialised software engineers who are proficient in a rare skill.

As you are just finishing tertiary education, it's unlikely you're one of these speciliased software engineers (sorry if I'm wrong!). From here, it's easier to advance by showing employers that you can adapt and learn quickly (as well as showing them that you have learnt something while completing your degree).

Aside: it sounds like you're going through what others have gone through! See:

share|improve this answer
    
+1 for listing dupes. –  Aditya P Apr 5 '11 at 4:59
add comment

Both - employers will generally want someone who has strong knowledge of one or two languages/technologies (although they will not necessarily expect too much in-depth if you are only a graduate as opposed to a ten-year veteran) - but they also like to see that you are flexible and aware of other technologies.

Personal example - I've spent years focusing on PHP and MySQL, a little less so on HTML, CSS and JavaScript (libraries like jQuery rather than low-level stuff), but have also been exposed to C++ (Qt), Python, Perl, PostGreSQL, BASH, and sysadmin stuff.

In fact, if you want more examples - look at job requirements in adverts - they typically have a core list of required knowledge/skills/experience followed by a longer list of would-like-to-haves. Obviously, you don't need to fill out all of those would-like-to-haves, but if you can demonstrate a rudimentary awareness of each of them, along with strong knowledge in each of the required items, then you'd very likely win out over the other candidates.

Word of warning - you can get usually away with a little exaggeration, but try not to outright lie... and sometimes, the best answer to a question that you don't know the answer to in an interview is "I don't know".

share|improve this answer
    
... to the point where as an interviewer I usually dig and dig until I find something they don't know just to see if they'll admit it or guess. –  pdr Apr 4 '11 at 23:51
3  
@pdr: I do both; if I get stumped by something in an interview my response is usually along the lines of "Hmm, I'm not sure on that one. If I had to guess I'd say maybe X, based on what I know about Y and Z- of course I'd probably try looking up foo or bar to get a definitive answer if I ran across that problem." –  CodeninjaTim Apr 5 '11 at 2:39
    
And I thought foo was just something my compilers instructor used as a name filler! hahaha... –  Kenneth Apr 5 '11 at 3:41
add comment

Ultimately I would recommend aiming for building up as broad a skill set as you can manage & where you can find the opportunities to do so - that will make you more useful in the end and give you a robust skill set that can manage the changes in technology and the economy.

...but (& there always is) when the immediate challenge is getting your foot in the door, you really want some kind of strong suit that puts you ahead of other candidates for the same job. That never changes whether you are at the start of your career, half way through it or if you're unlucky enough to be looking for employment near the end of your work life, then too.

share|improve this answer
add comment

Based on the amount of keyword stuffing I see on resumes, I'm assuming jack of all trades is more sought after.

share|improve this answer
add comment

Both. You need to rock in at least one specialty, for example Java development. You need to have breadth at all other areas, for example database development/features (something like Oracle will take you at least 1000 hrs to get a decent grasp of), networking, operating systems (not just Windows but Unix/Linux). Why? Today's distributed systems are a complex mix of all of these technologies. Even in large companies, the silos make problem solving difficult, as specialists point fingers at each other. Being the guy who can cut across all domains and solve problems will make you very valuable.

Also do not overlook the domain knowledge in your specific industry. Working within the same industry, for example Oil and Gas, for your whole career, makes you much more attractive ($$) to prospective employers in the same industry, due to the fact that you already have the domain knowledge.

Also note that your specialty will change over time, as technology (and employer demand) changes, so you need to realize that you can never stop learning.

share|improve this answer
add comment

If I were you, I will choose to specialize myself in a specific part of the industry. I have knowledge in php, java, python, shell, .net. But, that's it. I just understand the syntax so that I can learn or maybe fix stuff on an opensoure project that I use and have problem with or need something enhanced but core dev doesn't have time. I don't really know the inner strength of all those language.

But, on the other side, I specialize myself on PHP & Wordpress. I know ins and out of those product and I market myself as experienced wordpress developer. Without me telling them that I do know other languages.

Up until now, I keep happy with this strategy, customer flocking in (wordpress customer, actually) and I still able to do something on other languages.

share|improve this answer
add comment

I am a jack of all trades. I have held positions in software, systems, and network engineering. Regardless of my official title, I tend to wear multiple technical hats. I would have left the industry years ago if all I did was bang code.

You need to look at your career from this perspective. Do you want to have twenty years of experience in twenty years, or do you want to have twenty times one year of experience? If you specialize now, you will more than likely have twenty times one year of experience in twenty years.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.