I'm not sure where our industry went wrong. You'd never ask a doctor medical school trivia during an interview.
I'm not sure where our industry went wrong. You'd never ask a doctor medical school trivia during an interview.
And in the case of the doctor he'll have to have a verifiable degree from a verifiable university as well a verifiable several year long 'internship' from a reputable 'company' before you would even consider interviewing him.
I think "dignity" is a spot on word for it: professionals like doctors and civil engineers are generally assumed to have the qualifying skills that their resume says they have; software developers are assumed to have no skills unless proven otherwise and your resume barely gets your foot in the door.
On the other hand, if you don't ask at least some basic questions, you risk hiring the Brillant Paula Bean [1].
Another way to get a good contractor (in the first place) is to ask around via a somewhat orthogonal method. For instance, we needed to get a new block fence installed around our house. This wasn't going to be cheap, and we wanted it done right. My wife interviewed several contractors, and half of them were drunk, and the other half couldn't figure out which end of a tape measure to use.
So we got creative: "Who should we call that might know who is a good contractor for block fence construction, and who isn't?"
Well - that's the kind of thing you have to go "inside" the industry; so we figured, well let's call some suppliers of concrete block. A few calls around to these places, asking the people "who would you hire to build a fence" produced a list of candidates from each vendor - and where there were matches, that boosted them on the list. Narrowed it down to three, had them come out and bid, then we went with the guy who struck our fancy best (not with the cheapest - never go with the cheapest, unless they seem the most competent).
We've used this kind of system since (along with checking references and such), and haven't had a problem finding a capable contractor for construction and maintenance work.
If Dr. Nidal got his MD from Johns Hopkins and did his residency in pediatric oncology at Sloan Kettering where he is a fellow and has published 2 papers on Nueroblastoma you can safely assume he knows a thing or two about high risk pediatric solid tumor cancers.
What do we have for programmers?
I'm looking for someone to cut my hair. Can you tell me how many hairs are in a typical human head? Can you show me how you hold a scissors? I'm only looking for people with the best scissors skills.
Oh, you're here to fix my microwave? Great. Before we start though, can you show me the contents of your toolbox? I want to make sure you are familiar with all the latest brands of screwdrivers and wrenches. Come over to this whiteboard and draw a typical microwave, labeling the major parts.
My degree was an ABET accredited engineering degree that required practical software development skills (including soft skills). Outside of interviewing in my hometown, no one knows that or cares.
The software industry tomorrow could easily adopt the internships and test/certification requirements of a profession like medicine or engineering. The industry doesn't seem inclined to do so, however, for a weird variety of reasons and excuses, and seems for the most part overly satisfied with trivia questions and whiteboard problems.
I agree and it is puzzling to me as well. My own CompSci degree as ABET accredited and I did two years worth of internships before working full time. It doesn't translate into a strong credential though. I still get asked to do whiteboard shit, just like everyone else.
I think it's a complicated issue and is in some sense due to the immaturity of the industry (only a couple of decades old, whereas some other professional disciplines are centuries old). In any case I'm glad it's a topic of frequent discussion in the community. It's important and the discussions are usually good ones.
At one point in the past I worked with someone who was incapable of understanding pass-by-reference; something like:
int getFoo(foo *out);
A colleague spent multiple hours per day for a week trying to explain this to them. After a week they still were unable to successfully make use of this interface.Their resume claimed 5 years experience in C.