Software Development - too much focus on prior skills?

Ancalagon

Honorary Master
Joined
Feb 23, 2010
Messages
18,207
Reaction score
3,678
So, since I'm currently unhappy in my job and considering alternatives, I've started thinking about that old problem again - recruiters who follow instructions to the letter and will only recruit candidates with, say, 5 years experience in Visual Studio 2010.

Does anyone think there is too much focus on the amount of time you have spent with one language and not enough on your actual development skills? I mean, in every single job I've had, without exception, I've had to learn on the job. Generally, I learn a new language within a day or two, and will become very proficient in a week or two. For example, recently I had to learn Java again to start development of my game. And learn a whole bunch of game development techniques I didnt know before. I didnt say to myself, "You know, I dont have the experience for this therefore I'm not suitable for it" before I started! I learned how!

I think too much of a job description, and to some extent, what employers actually expect from candidates, revolves around the technology rather than the skills. To me, languages are just tools to accomplish something. Its the mindset, and skills that apply across language, that really determine how good you are.

I just get irritated when so many job adverts state a particular minimum length of time with a particular technology. I dont know, to me it misses the point about what being a good developer involves. Its not about how well you know the syntax or the libraries, its about whether you understand how to structure your solution so that its easily readable, maintainable, testable, robust, and fits any other requirements your project might have.
 
You have 2 choices early on in your programming career... Build a name or build a CV. Building a name sells your awesome coding skills... building a CV plays the corporate card quite better.
Surely, by now you have enough contacts to organize something without the hassle of recruitment agencies.
 
Very much agree BUT there are companies that will hire you without the relevant language skills as long as you prove yourself to be a strong developer and possess the right attitude. That exact thing happened to me moving from C# into Java with no experience with the latter. IMO those companies have realized the importance of the points you raise and look beyond "syntax skill" and "framework knowledge" and just look for good developers with a solid practical foundation and that fit into their organization's environment.
 
I know a good recruiter who doesnt focus too much on what languages you know, but hes very rare. Most people in his business dont understand development and go according to the exact specification without understanding it.
 
So, since I'm currently unhappy in my job and considering alternatives, I've started thinking about that old problem again - recruiters who follow instructions to the letter and will only recruit candidates with, say, 5 years experience in Visual Studio 2010.

Would be extremely difficult to get 5 years experience in VS 2010 ... :D But I catch your drift and agree 100% - it is stupid!
 
I've just completed this exact process, and find that the larger dev companies in particular will have you write an psychometric evaluation. this gives them an idea how fast you learn, for example. Case in point; the company that has just taken me on placed me in their SharePoint team, despite me having no experience in SharePoint. They are confident that I will learn quickly, and that my experience will serve me well.

In short then, don't worry too much about the ridiculous recruiting specs - just get your CV out there, and fill in those time-consuming skills matrices. I think they look at those more than anything else - it's the client that looks at your CV, in my opinion.
 
Recruitment agencies over-complicate your CV with skills matrices and pages upon pages of bull****. I've spoken to several clients when I went on interviews organized by the recruitment agency where the job description didn't even closely match what I was there for (wasting both our time, not to mention the recruitment agency's)

Recruitment agents feel they have to do a lot of work to justify asking the client the price they're charging for the placement for some odd reason. The clients I spoke with all said that if the CV was simpler/more understandable they wouldn't have to go through such a long process of hiring someone.

I had a "race" between 3 recruitment agents and myself once, told them I bet them I can organize more interviews in a week than they could in 2. I had 11, they had 3. All just because people loved my CV and wanted to see more. CV gave them exactly what they wanted, a quick overview of what my skills and work experience was. Then they call for an interview. Easy as that. But anyway:

RE: the VS.NET 2010 comment, you do realize that VS.NET 2010 is usually released a year before and in beta stages 2-3 years before then even? Right? So it's quite possible having 5 years experience (in a GUI? yea, that shows caliber...lols)
 
RE: the VS.NET 2010 comment, you do realize that VS.NET 2010 is usually released a year before and in beta stages 2-3 years before then even? Right? So it's quite possible having 5 years experience (in a GUI? yea, that shows caliber...lols)

Dont come here with your logical tendencies! Agent!

I think a lot of recruitment agents only go for the people they think are guaranteed to be hired. They simply dont have the capacity to evaluate whether you are fit for a development job. The only guy I've met who did seem to understand, and thus got me something like 7 interviews in 2 weeks, and 3 offers, got me my current job, even though I lacked experience according to the spec.

I'm still considering whether to move, but I did brush up on my CV last night. Really irritated where I am, I've asked my company to do something about it, but they seem to be dragging their feet.

Do you guys think its normal to not be able to find a developer to hire after looking for 6 months? They have been looking for a guy to replace me on support since October or something and STILL havent found someone. I hear there is a skills shortage, but man, I'm starting to think something else is up. How could it take 6 months to find a new developer? Its not like they need an architect or something, a junior would do.
 
While I do agree that too much emphasis is placed on specific technologies, and not enough on common logic and programming ability, I have to add to the argument for x amount of years on a specific technology.

While you may be able to (re)learn Java (or any other language) in a short time, the finer details and intricacies are learned over time.

An example:
What is the result of this bit of java code:
Code:
public class Whatever {

    public static String a = "a";
    public static String b = new String("a");
    public static String c = "a";
    public static Integer s1 = 1;
    public static Integer s2 = 1;
    public static Integer s3 = 128;
    public static Integer s4 = 128;

    public static void main(String[] args) {
        System.out.println(a.equals(b));
        System.out.println(a == b);
        System.out.println(a == c);
        System.out.println(s1 == s2);
        System.out.println(s3 == s4);
    }
}
You would be surprised how many Java developers will get this wrong. More so the newer ones.
To find out why you get the answers you do you have to look at the Integer.valueOf(int) method.
This may be something small, but used as example.

On the other hand there are many things that can be transferred between different languages. Knowledge and skills that can be gained anywhere and used within a new technology. Agencies and most companies do not focus on this enough.
Another example:
Using bitwise compares to show user levels
Lets say you have the following users types: admin, supermod, mod, normal
How do you know which user belongs to which group(s)?
Do this:
admin = 1 (boolean:0001)
supermod = 2 (boolean:0010)
mod = 4 (boolean:0100)
normal = 8 (boolean:1000)
Bob is an admin, and naturally of course a normal user, so he gets a value of 1 + 8 = 9 (boolean:1001)
So to see if Bob is a supermod you do a bitwise compare between Bob and supermod: 9 & 2 (boolean:1001 & 0010). This will return false or 0.
To see if Bob is a normal user you do a bitwise compare between Bob and normal: 9 & 8 (boolean:1001 & 1000). This will return true or 8 (language dependent)

This is something I picked up while doing some random PHP coding. I may have picked up many more of these transferable skills during my (as example) 8 years PHP development, which will give me a good skillset in any programming environment, but because I only have 1 year Java experience, some agency/company will not accept me for position X.
 
@uFiS

Your Java example is just a trick though. It would take me about 5 seconds to learn. Try teach someone why unit testing is important, takes much longer!

The bitwise thing is quite commonly used. I learned it using some Linux commands - some of them use it to pass in options instead of, or in addition to, flags like -o or -f.
 
Bare in mind, a developer with 5 years experience in a particular technology will be considered a more senior member of a team. They're supposed to hit the floor running, act as mentors and produce quality code quickly. If you have to Google issues 50 times a day, you're wasting time and shouldn't really be occupying a senior position. When a company asks for someone with 5 years experience they don't want to invest in a person's skills - hence the inflated salary. Knowledge and experience are often more valuable to a company than one's ability to learn.
 
You have 2 choices early on in your programming career... Build a name or build a CV. Building a name sells your awesome coding skills... building a CV plays the corporate card quite better.
Surely, by now you have enough contacts to organize something without the hassle of recruitment agencies.

Very well put.
 
Agreed, but that should necessarily mean 5 years in one particular skill. If you had to hire a senior Java programmer, and you could either hire a C# architect with 5 years of experience, or a junior java developer with 6 months of experience, I would think the choice is obvious. You would hire the C# architect because he would start running a lot faster, and when he gets up to speed, he would have more to contribute than the junior java developer, despite the junior java guy technically having more java experience.

Yes, in the real world the java developer, if applying for a senior position, would likely be senior himself. But then I would say, if you need someone who can start writing code this second, hire a contractor. Its lower risk and they are expected to do that. If you want a better long term investment, hire whoever is the better developer, without concern for the languages. More than likely, you wont develop only in one language anyway, rendering the supposed language advantage non existent.
 
Apart from the great comments already posted (and I agree, way too much focus on tech), I would like to add one more thing: Skills requirements in job adverts are (usually) the employer's idea of the perfect candidate for that position.

So...
1) If you meet all of the requirements, you're probably overqualified for the position and are going to be paid less you should be.
2) If an advertised job looks interesting, go for it. Even if you don't strictly meet the requirements. You might be a better candidate than other applicants and, if the employer needs to fill the position ASAP, they might not mind investing some time to get you up to speed.
 
@uFiS

Your Java example is just a trick though. It would take me about 5 seconds to learn.
Hence the
This may be something small, but used as example.
:)
And I would call it a feature, not a trick.

Try teach someone why unit testing is important, takes much longer!
This is not limited to one technology though. This will fall under "Picked it up while doing java, can now implement in C#"

The bitwise thing is quite commonly used.
You would be surprised as to how uncommonly it is used or known.
 
So, since I'm currently unhappy in my job and considering alternatives, I've started thinking about that old problem again - recruiters who follow instructions to the letter and will only recruit candidates with, say, 5 years experience in Visual Studio 2010.
I do agree with you. But imagine when you've become the person with 5years experience - then i doubt you'd be against it?

Then again, 5years is crazy. I reckon you learn 95% of a language you'd actually use in the job in the first 6-12months. Thereafter you'll just pick up little snippets here and there to help out.
 
Top
Sign up to the MyBroadband newsletter
X