Fog Creek Software
Discussion Board




When you can't find qualified applicants ...

This subject came up here recently - too few qualified applicants to choose from when hiring. It must be a hot topic lately as hiring is on a slight uptick because several friends have mentioned the same thing, and the subject came up on a mailing list I subscribe to.

The common thread that I found was that most of the companies that were having trouble finding qualified applicants were hiring for C/C++ positions.

Is this what other people are finding too?

I've seen several theories batted around:

1. The talent pool has been diluted by the proliferation of languages. Many shops haved moved away from C/C++ so the % of developers using them has dropped.

2. Many C++ developers have worked within the MFC framework. While their knowledge of MFC may be good, their knowledge of language fundamentals isn't that good because the app's they develop are fairly simple and don't require them to stray far beyond the MFC toolset.

3. Many older developers have just plain left the business and newer ones are subject to #1 above.

4. The final theory that I've heard is that the job market is tighter so employers expectations are higher. An typical employer would have had the same mix of candidates 5-10 years ago but would have been more willing to take on inexperienced developers and train them.

Comments and opinions?

anon
Sunday, August 03, 2003

The problem is employers false advertise jobs or may actually think that the job requires proficiency in some language or tool. It goes back to As hire As, Bs hire Cs. It seems the Bs and Cs are trying to fill a position they do not understand and want a god willing to to work for a low salary. If they ever fill the position the god quickly becomes bored and leaves or gets fired.

Phil McKraken
Sunday, August 03, 2003

It depends what you think of as qualified... I think of myself as a qualified C++ programmer, but quite frankly some of that stuff in the latter part of the C++ thread was language lawyer junk.  People who love that kind of stuff are likely going to sit around discussing new programming language paradigms rather than actually coding and producing profit.

I don't think language proficiency is necessarily a good judge of a good programmer.  There are a lot of practical skills you need, like good debugging skills, that don't necessarily come hand in hand with knowing every part of the C++ standard.  I think a good test is to see who uses static_cast<T*> rather than (T*) : )

Andy
Sunday, August 03, 2003

Anon,

"The common thread that I found was that most of the companies that were having trouble finding qualified applicants were hiring for C/C++ positions."

Some of the theories you mentioned seem to me to be reasonable explainations.  The problem as I see it is that every employer has their own definition of what constitues a qualified job applicant.

"When you can't find qualified applicants ..."

IMO a professional programmer is more than just a warm body who has memorized the syntatic and semantic rules of a particular programming language.  Among many other things, a professional programmer knows how to design software applications and can learn how to productively use a similiar (i.e. C++ programmer who needs to quickly learn about Java) programming language within a couple of weeks.

Frankly, I amazed that so many employers are bitching about not being able to find qualified job applicants.  The market is currently flooded with people who have the memorization part down (i.e. people who have a variety of certifications, H-1B workers, etc.) and this seems to be about the only thing most employers test for nowadays.

One Programmer's Opinion
Sunday, August 03, 2003

It all boils down to the fact that in most companies the nonprogrammers run the IT shop or HR drones are screening resumes, and they don't know how to determine which candidate has the best chance of doing a good job if hired.  So they play Wheel of Fortune with buzzwords.

They also don't realize that if a system has components in multiple languages and platforms, it is not necessary for each individual to have expertise in all of the languages and platforms.  If they have a system built with Java and Oracle running on a Linux server which talks to a legacy COBOL subsystem, and VB and C++ on the client, they want ONE person who is an expert in Java + Oracle + Linux + COBOL + VB + C++ + Windows/MFC.

Another problem is that most of the good and smart people already have jobs, and they aren't looking to change jobs because in this economy it takes a huge effort to find a job and they aren't likely to find something that pays more than what they already earn.

T. Norman
Sunday, August 03, 2003

There are no companies whatsoever with acceptable working conditions and market salaries that are having the least bit of trouble finding qualified applicants.

Dennis Atkins
Sunday, August 03, 2003

Above-average programmers are less likely to be layed off compared to below-average programmers and will generally find new positions more quickly. Consequently, a vast majority of job-seekers are below average.

Obviously, there are lots of good coders in the job market; they're just outnumbered by people with weaker skills.

Julian
Sunday, August 03, 2003

"... market is currently flooded with people who have the memorization part down (i.e. ...people who have a variety of certifications ...) and this seems to be about the only thing most employers test for nowadays.

Really? I don't do consulting and haven't been on the job market lately, so I hadn't heard of this. In fact, I thought that programming certifications didn't mean jack to most employers, unless you're doing consulting or the company is a MS Partner.

"Another problem is that most of the good and smart people already have jobs, and they aren't looking to change jobs"

This seems pausible.

"There are no companies whatsoever with acceptable working conditions and market salaries that are having the least bit of trouble finding qualified applicants."

Actually, the guys I know who were having trouble finding good candidates both worked for good companies that paid good salaries. Plus I don't but it because of the C/C++ angle. I don't hear anyone saying, gee, we can't find enough good Java, VB, or even .Net coders. I only hear it about C/C++ (especially C++).

anon
Sunday, August 03, 2003

"Really? I don't do consulting and haven't been on the job market lately, so I hadn't heard of this. In fact, I thought that programming certifications didn't mean jack to most employers, unless you're doing consulting or the company is a MS Partner."

When it comes to certifications and their value it really depends on what type of employer and what type of programming you are talking about. 

"Actually, the guys I know who were having trouble finding good candidates both worked for good companies that paid good salaries..."

You never did mention:

* What type of programming your buddies do for a living.
* The type programming experience they are looking for. 
* Where and how they are looking for suitable candidates.

There are many different types of software developers out there that have C++ programming experience on their resume.  I wouldn't expect a currently unemployed in-house corporate developer (who has C++ and perhaps two or three other programming languages on their resume) to know much about developing software for the gaming industry, embedded software, etc.

One Programmer's Opinion
Sunday, August 03, 2003

One Programmer's Opinion hits on a good point.

The problem probably isn't finding the C++ skills, it's all the other skills that companies mandate to go along with them.

If you're going to get extreamely picky and demand people have worked on the exact same project as the one you're running, of course it's going to be hard to find people who are "qualified".

COmpanies need to worry more about finding good people and less about finding qualified people. Unfortunately many people doing the hiring don't know how to identify a good person, so they instead go for the qualified option, which is easier on them.

And the horse you rode in on
Monday, August 04, 2003

Companies what people who are already doing the exact same thing that they will be doing, but want to do it for less money, and that is hard to find considering how cynical the average programmer gets when he hears stuff like: But our working environment is better, or but you have job security here

Daniel Shchyokin
Monday, August 04, 2003

C++ is a huge world (amount of knowlege-wise).  I don't think there's any one person who has a good handle even on all the BIG issues for every different quarter where C++ is used... I'm talking just about the sphere-centric but in-situ CLASSIC "how are you guy's approaching this" technical problems. 

People ask for a C++ guy, and imagine that their own issues are everybody's issues. 

If some body tried to put together a plain C++ specific, 'everything BIG there is to know about COMMON C++ implementations' CS grad course, it would take at least 4yrs and be largely obsolete in many areas before anyone could complete the course.

The problem is that employers have come to expect that they shouldn't have to make any investment in, or then attach any significant value to, very highly trained people... they often regard them as cogs who should be instantly replaceable, even when some consideration of reality dictates that 'there's no way in hell that there could be some great unknown pool of people here who could have exactly this background'.

Depending on what you're doing, even a NIX / Windows transition is going to take at least 6 mos., maybe years to really get to equal standing with all the tools and COMMON knowledge.

Recruiters, in general, don't have a clue... or more likely don't care and have never even thought much about it.

Usuallly the HR application filtering people haven't done 2yrs dedicated study and work in any realm. They don't realize it would take their (well grounded) but otherwise skill-set imperfect-match job applicant half as long (maybe 2 mos.)to learn everything the recruiter knows about anything as to absorb and digest all there is know in the transitrion from WorldX to WorldY in C++.

'''''''''''''
Aside:
I think C++ (just the language) could be improved and simplified to the benefit of all new projects, if to the detriment of compatibility for some established code bases (converters could be written).  To me it still seems to be the most powerful language there is, but also past the point of becoming a terrible mess.  I am most definitely not a C++ guru, although I've read and played with it (mostly part-time) for more than 6 yrs.

John Aitken
Monday, August 04, 2003

Like somebody said: 'The typical hiring process filters on buzzwords'.  There's lots of people available who know as much as you could possibly expect.

John Aitken
Monday, August 04, 2003

"People who love that kind of stuff are likely going to sit around discussing new programming language paradigms rather than actually coding and producing profit."

I'll second that.  I used to work on a maintenance team where we had a lot of time to sit and talk about the finer points of the language. 


Monday, August 04, 2003

Now that I have been out of work for a month, it is time to start being a bit more aggressive about the job search.  So far I have sent out my resume to about half a dozen places, with zero response.  Employers can't be too desparate for C++ programmers.

Yesterday I sent out a couple more.  One will be of particular interest to me in seeing just how difficult it is to get a job doing C++ development (and how picky employers are in this job market).  They do emphasize "PLEASE, ONLY QUALIFIED CANDIDATES NEED APPLY. ", but the only specific requirements are an MS or PhD in a scientific field and 3 years experience in C/C++.  I meet these easily.  It will be interesting to see if they respond at all.  The next step is a "technical assessment".

More later if anything interesting develops.

mackinac
Monday, August 04, 2003

mackinac,

Good luck.  I'm currently employed and have 7 years of C++ windows programming, plus 1 year of C#/.NET.  I've been sending out resumes for a little over 6 months and have only gotten 1 interview. 


Monday, August 04, 2003

You're having trouble finding qualified applicants in *this* market??

pb
Monday, August 04, 2003

> I don't hear anyone saying, gee, we can't find enough good Java, VB, or even .Net coders. I only hear it about C/C++ (especially C++).

I have had 8 years experience with C++, mostly on Windows, mostly writing server-side code. I didn't reply to any ad for which I wasn't qualified, so if the ad said that "several years" of { VB | .NET | Java | embedded | Unix | Oracle/Sybase | <industry-specific> } experience is REQUIRED then I didn't apply.

I'm pleased to have accepted a job from a company which didn't mention "Linux" as a requirement in their ad, and who don't anticipate it'll be a problem for me to get up to speed with it.

To be honest I too don't expect that Linux will be an insurmountable problem for me; I've already programmed for (1) a telecom switch O/S, (2) DOS, (3) Win16 and Win32, (4) NT kernel, (5) Netware, (6) Solaris ... the insurmountable problem would have been the employer's listing N years of Linux experience as a requirement.

Christopher Wells
Monday, August 04, 2003

I was one of the original posters of a complaint that I couldn't find decent C++ programmers - I posted my first five C++ questions.

Just to add my two cents: The vast majority of C++ programmers don't read about C++.  They don't read books.  They don't read magazines.  They don't visit websites.  They don't subscribe to newsletters.  They don't read other peoples code (unless they have to).  They have no curiosity about the language.  They cannot understand the error messages the compiler reports; they just hack and hack and hack until it shuts up.  (The <reinterpret_cast> operator is their new best friend in this regard.)

In fact, I'm considering dumping all my C++ questions, and just asking, "What's your favorite C++ book?  What's your favorite programming website?"

Grumpy Old-Timer
Monday, August 04, 2003

Is "I read my daughter books by Stroustrup and Meyers as bedtime stories." a good answer?? :-)

Andy Wilks
Monday, August 04, 2003

No, but "Joel on Software" is an instant-hire response to "What's your favorite programming website?"

(oh, wait, you're Alyosha` on that board?  In that case, don't bother replying to our offer letter ...)

Alyosha`
Monday, August 04, 2003

Grumpy Old Timer:

Post your position here, and I'm sure you'll get lots of applicants.  There are a few of us hunting for work.  Not that we'll necessarily qualify.

One of the problems I've noticed is that C and C++ have long histories. An experienced programmer in these languages probably means five to ten years of experience, whereas one to two years qualifies you in most trendy languages like VB or C#.

I'm reasonably competent in C and C++, but compare me with somebody who's been working with it consistently for five years and I'll look like a rube.  The language is just a lot deeper, and provides a lot more opportunities to learn.

Clay Dowling
Monday, August 04, 2003

"The vast majority of C++ programmers don't read about C++.  They don't read books.  They don't read magazines.  They don't visit websites.  They don't subscribe to newsletters.  They don't read other peoples code (unless they have to).  They have no curiosity about the language."

The core language isn't so bad that you need to keep reading about it in perpetuity (sp?). At this point in my career, I have absolutely no desire to learn more of the intricacies of the language -- I can capably use exceptions, templates, basic STL containers, inheritance, etc.

My reading time is better spent on something else, where I will gain more from the time I spend -- Shakespeare comes to mind.

"They cannot understand the error messages the compiler reports; they just hack and hack and hack until it shuts up."

Well, that's just sad.

Gustavo W.
Monday, August 04, 2003

I just haven't seen anybody advertising for C++ in my area.  I've seen only a couple of ads in the last several months.  I applied for one, interviewed, got turned down.
I've seen lots of VB/Java/Web stuff though.

"
Monday, August 04, 2003

>"The core language isn't so bad that you need to keep reading about it in perpetuity (sp?). At this point in my career, I have absolutely no desire to learn more of the intricacies of the language -- I can capably use exceptions, templates, basic STL containers, inheritance, etc."

I think the poster was referring to not just the language per se, but also the various libraries, frameworks and algorithms associated with it.  Whether it is VB, Java, or C++, any of those languages has enough stuff surrounding it to keep you reading in perpetuity.

T. Norman
Tuesday, August 05, 2003

Well, at least I got noticed.  I sent my resume in response to an ad in the Sunday Post.  They sent back a "technical evaluation".  If you thought the questions in the early thread were simple, you should have seen this.  A few questions to see if I knew something about pointers and related C features.  Nothing about C++ or OO.

The response from my submittal was basically, "we'll put you in our queue and call if something comes up".  They're just collecting resumes.  They don't actually have anything and I won't be going for an interview any time soon.

mackinac
Tuesday, August 05, 2003

*  Recent Topics

*  Fog Creek Home