How To Find Bad Programmers
AmberShah writes "The job post is your potential programmer's first impression of your company, so make it count with these offputting features. There are plenty of articles about recruiting great developers, but what if you are only interested in the crappy ones?" I think much of the industry is already following these guidelines.
Go to India?
You want bad programmers? Start a MUD/MUX/MUSH and advertise for coders, you'll get the damned scum of the earth, a Mos Eisley cantina of crap coders
Step 1: Create an Ask Slashdot looking for (ironically) *good* programmers
Step 2: Identify all self-identified good programmers
Done!
Use a recruitment agency.
Most of them just do buzzword matching on CVs rather than actual filtering by skill, so you'll get some really rubbish dregs turn up with inflated CVs.
Also, try to get one going through a relationship break-up (especially an expensive divorce), or one with criminal/drug addict children / wife. These will increase their productivity as they will want to stay in work.
Young programmers always say things like "proficiency with the technology is more important than years of experience" and "Old programmers probably can't make use of new technologies" and "I don't have much working experience but I guarantee I am a better choice that someone who does, just because I am that smart!"
Once they work for a while, get bitten a few times by their own crappy code, learn a few things, and realize just how worthless they actually were right after they graduated...they change their tune. It never fails.
You want a good coder? ... Have them write you something small for free.
Most of the good coders I know would walk right on out the door if the first thing you asked them to do was write something for free.
If libertarians are so opposed to effective government, why don't they all move to Somalia?
You get what you pay for. You want a good coder? Look at their code. Make them take some written tests and an oral exam. Have them write you something small for free.
Hell yeah. That's why, when deciding whether a job is worth taking, I always ask the prospective employers to give me a month of salary without working for it.
There does seem to be an awful lot of shitty jobs out there, though.
No problem is insoluble in all conceivable circumstances.
That's what the roll of carpet and shovel is for...
Blank until
A close acquaintance of mine hired an Indian web developer to build his site. Granted, it was a very simple site I could've done in a day, but the Indian guy did it way cheaper for the whole package - including domain name and hosting. A year later, the site spreads malware (blocked by FF) and the Indian guy is nowhere to be found. My acquaintance can't even get his password to login to the site and disable the malware.
You get what you paid for.
Microsoft full of bad programmers?
Linus Torvalds wouldn't say that.
Theo de Raadt wouldn't say that.
Larry Wall wouldn't say that.
RMS wouldn't say that.
Anybody on a major OSS project wouldn't say that.
The reason we will never win is because the OSS movement consists more of ignorant fanboys than competent programmers dedicated to the cause.
The really classy HR and Recruiter turds put down requirements for years of experience greater than the time the technology has been in existence. For developers, 16 years J2EE required! 10 years .NET a must! 8+ years Red Hat Enterprise Linux deployment!
Bonus points for confounding distribution release numbers and internal software version numbers, or assuming only RedHat distributes GNU/Linux.
Knowledge of 6+ OSes and at least 15 programming languages, developer experience in everything from industrial controls to web apps, etc. Hire the applicant who looks like he's fresh out of college. There's your bad programmer.
Personally I love it when they ask for this. Nothing pleases me more than writing a resume whose formatting seems to change based on what version of Office you're using...
Well, it has never been successfully tested.
Have them write you something small for free.
I have seen exactly one instance of this happening. I walked right out. Four months later the company as charged with unethical buisness practices. They even got sued by a Church of all things.
Asking to look at existing samples (a portfolio) or testing is one thing. Asking for free work is bound to get only inferior employees, lawsuits and criminal charges.
You have definitely come to the right place!
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Interviewer: "Do you code exclusively in PHP?"
Answer: "Yup! Been using it ever since I gave up VB6."
Interviewer: "You're hired!"
The world's burning. Moped Jesus spotted on I50. Details at 11.
Bill? Is that you?
Immediate need for programmer with 10 years experience developing Objective C 2.0 for the iPad. Experience with developing for Intel i9 based Mac Pros is a major plus!
There's a difference between example or interview code ("Write a function to reverse a string"), and asking them to do part of the work, up front, for free. Anyone worth their salt will correctly balk when asked to do the latter.
You only ever hear the fanboys. The real supporters are too busy doing things that matter.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
The problem isn't about whether it's hard or not for those that don't wish to use proprietary software to open Word docs. The problem is that Word docs are not platform neutral - the font that you used on your resume' might not line up with the fonts that I have installed on my system and vice-versa. Plus, the version you're using might not be the same as the version I'm using and might get rendered differently if you use any sort of fancy-ish formatting (tables, columns, sections, etc.). This would be an issue whether the person on the other end wanted a Word doc, an ODF file, or any other non-trivial word processing document. Realistically, if you want to submit your resume' and have it look as good as possible, you want to know that the person on the other end will be able to see the same thing that you see when you created it; if they're making that functionally impossible by requiring it in a non-print safe non-vendor neutral format, it shows they don't understand such issues, which hints strongly at how well they pay attention to such issues with the rest of their work.
Put another way, imagine working for an employer whose corporate culture can be summed up as "Works for me", then imagine how much fun it would be to fix the consequences of such an ethos when a major customer or the CEO finds something is broken.
Add me to it.
Simple test: Ask me what 3 questions *I* would ask if I were looking to hire someone, and what my answers would be. Then see how many of them *you* would have gotten right. And wonder why not *one* of those 3 questions had anything directly to do with writing code ...
It is VERY rare, but I did run into one company that posted a sort of puzzle. It was a screen scrapping test with several layers. They did things like inserted hints in custom headers and if you didn't notice those, you would go on following the trail who knows how long to get to the end, which was a the email address to send your resume. So it only took about 30 min to do if you knew your stuff, it could take all day and more if not. It was FUN! btw I got the email address in about 2 hours, I did go down the wrong path for a bit and then went back and started looking at headers and cookies and found the clues.
You want a good coder? Look at their code. Make them take some written tests and an oral exam. Have them write you something small for free.
Maybe that is specific to rent-a-coder. I do a lot of interviewing for technical positions, and I don't give code challenges. Anything beyond CS101 fodder is too time-consuming, and asking CS101 questions doesn't really tell me anything.
I'm a big fan of "what's the difference?" questions. I'll take two similar technologies from their resume and ask what's the difference between them. It tests both the candidate's level of experience, as well as the candidate's ability to think and articulate an answer.
I have to say, I've gotten some pretty (ahem) creative responses, too. And for all you job hunters out there, if you put "C/C++" on your resume, I guarantee my first technical question is going to be, "What's the difference between C and C++?" All the while knowing that there is a >50% chance I'm about to get a "creative" answer.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
Some people here could fill that job!
And....
Okay, I have to write this to get past the lameness filter. But listing too many languages is likely to get you a very experienced engineer, not a bad programmer.
The society for a thought-free internet welcomes you.
If your friend has 20 years of experience they were probably just looking for a way to eliminate him. Hiring practices have never been objective, it's just that today the song-and-dance has better production values.
There's all sorts of relevant, pertinent information about people that can be found on Google. And, as long as you don't use anything from one of the legally protected classes of information to base your hiring on (such as race, religion, gender, etc), you'd be a fool not to use it.
I once had a candidate tell me they were the primary developer of a certain open source application. By looking them and the project up on Google, I was able to determine they were lying out of their ass. So, I was able to weed them out.
Well, you'll certainly get bad programmers if you choose the ones with 'C+' on their resume.
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
Let HR write the job requirements, conduct the interviews and hire, all without the input of ANYONE that knows how to do more with a computer, than just turn it on.
"Be polite, be professional, but have a plan to kill everybody you meet." General James Mattis
Good question...
I had one candidate who sold their self as an experienced Business Analyst. By googling them, I found a posting by somebody with the same name, location and contact number who listed their experience as Admin Assistant with relevant skills in typing, scheduling and filing. Hardly what they claimed on their resume.
In another case I flew a candidate out for an interview, only to find that they posted to their myspace how they 'jacked' a free trip out of some sucker and were heading to Mexico for a vacation after the interview since we flew them out here.
Neither one got my recommendation, hardly grounds for any lawsuit
Wherever You Go, There You Are
For instance, requiring that prospective hires know how to use Linux, Unix, and Solaris. Or require knowledge of Visual Studio 2005 and Visual Studio 2008. An alternative is to require just one such thing with the implication that you'll throw out all the others, so your job posting says Visual Studio 2005, leaving the guys who used 2008 wondering if their resumes are going to be thrown out.
Another is to be overly specific. We don't just want SQL, we want this brand of SQL from this company and this year. Yeah, they're not all exactly the same, but still. You can do this for non-language requirements too. "Experience with data driven applications involving medium-sized distributed computer systems which process customer orders in Swiss French in the used wristwatch industry. Swiss German not acceptable."
Also, I could never figure out why companies who want C++ and not C always say "C/C++".
And as someone who codes, and has hired coders, I would reply "Please don't let the door hit you on the way out, and by the way, there are 199 other people waiting to interview for that position. Please try and stay out of their way as you go down the stairs."
And by the way, the fact that you didn't get that "write something for free" means, a small, noncommercial piece of sample code that demonstrates that you know how to create class foo with a member function that loops from 1 to 10, exits appropriately and returns a string that says "I'm finished." is indication number two that you are a f***ing lamebrain with neither perspective nor common sense.
In short, you just lost the job due to stupidity, an overblown sense of entitlement and childish arrogance. I have time for none of these.
Please do not read this sig. Thank you.
Business Analyst
experience as Admin Assistant with relevant skills in typing, scheduling and filing
They sound overqualified. Can they suck the life out of a roomful of people?
Populus vult decipi, ergo decipiatur...
"Force shits upon Reason's back." - Poor Richard's Almanac
Early on in my career, I showed up for an interview. I drove 30 minutes to get there, was in my suit, and ready to rock. I got there, and the front desk person handed me a 10 page document, and told me to sit down and fill it in. I hadn't even met anybody else yet. It was a programming test. I filled in a page or two, decided I didn't want to work at a place like that, and walked out.
I later interviewed at a large corporation as a Perl programmer. I passed all the interviews, and then they wanted me to write a Perl programme to show them I actually did know what I was talking about. I took their specs, which they said should take maybe an hour to finish. It took me 7 hours. I handed it in, along with my notes on where their specs were vague and why I'd taken the route I had. I got the job and they rewrote the test after that.
Maybe I'm a good programmer or maybe I'm not, but I'm with you that programmers will be more likely to take a test when the risk/reward balance is topped to the correct side.
www.clarke.ca
Immediate need for programmer with 10 years experience developing Objective C 2.0 for the iPad. Experience with developing for Intel i9 based Mac Pros is a major plus!
I've seen that sh*t too. Back in 1995 I was applying for a VB 3.0 job and got rejected because I didn't have 7 years of experience (VB 3.0 was less than two years old, and the whole VB line wasn't 7 years old at all.)
Move the clock forwards to 1998, same deal, got rejected at two applications: one for not having 7 years of experience in Java and another one for not having 8 years of experience with C++ STL. 1998 people!!!. And then in 2001, same again, but this time it was 10 years of Java experience. How the hell can HR screw up like that is beyond me. I was very desperate to get a job on those years, leaving me very bitter against HR and recruiters. Now I laugh.
If someone tells me that they are looking someone with 7 years in JavaFX, I'll just laugh, looking at the whole thing as a sign of God to avoid working with retards.
Listen, buddy, I don't know how you did it, but my company's lawyers will be contacting you shortly.
There is no way in hell you should have gotten a copy of our hiring procedure through any legitimate means, but if you did you had to have signed the NDA that came with it.
"This post contains words, known to the State of California to cause thought. Wash brain thoroughly after reading."
Microsoft full of bad programmers?
I'd say that judging by the Microsoft engineers i've met (who were nearly all from the Mac Business Unit), they really don't have a shortage of coding talent over there. What they have is a mind-boggling surplus of bad management, starting with Ballmer.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
I know how to find one bad programmer at least. Hire the guy who wrote that article.
Yes he does have a point, but he goes overboard and on several point shows a complete lack of being able to work within the system. No job environment is perfect.
1. List a String of Acronyms for Technologies
This is indeed bad, but you also need to be clear about what you want and the clearest way to list what technologies are needed for the job is to make a list. The list ain't bad, a long unfocused list is bad. If a job doesn't have a short list of what is required then I know they don't have a fucking clue what they are looking for. Only apply if you wish to hold their hand on every decision making process, which will turn out to have a lot of similarity with a random number generator.
2. Put an Arbitrary Number Next to Each Skill
Yup can be pretty bad but how else do you attempt to make it clear you need someone with experience with HTML, not just someone who has seen the acronym once? Personally I would use the experience level you must have for the job rather then years. Because years don't mean anything. I have used databases for 20 years now, but am not a DBA'er (I once talked to a girl after all).
3. Say Nothing Positive About the Position
Yeah, I do notice that. The old "what we offer" seems to have gone missing in action. But on the other hand, am I the only one who hates the boiler-plate "fresh and young company with an informal attitude"? Only put things here if they are relevant and true.
4. Use Euphemisms for the Negative Aspects of the Job
Oh boy. Don't forget the "flexible" one. Means: We are going to screw you every which way but whine like a girl if you ask for a single thing back. Basically, jobs are like girls. Nobody who doesn't have a multiple personality could ever hope to succeed.
5. Require Resume to be in Word doc Format
I like this one, good way to avoid MS shops. ALWAYS look for the desktops being used. All MS? Then run. Fast.
I am actually working on a little site myself that will advise people on how to buy a website. How do you handle the process? How do you determine your true requirements so you don't get hussled? What can you do to avoid becoming the dreaded "scope creep" client and the huge costs that come with it?
What the article/site will mostly focus on is trying to educate customers about the product they are buying and a LOT of companies hiring programmers don't have a clue about programmers or the job they are supposed to do. And this is odd, because if you are going to buy a car, you bring that friend who knows everything about cars. But anything to do with IT and those Luddites from HR can surely handle it. Would you let the guy who doesn't drive handle purchasing the company cars?
So, here is my own list of how to find a GOOD programmer.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
I always insist on Word format. I'm filtering out programmers who will refuse to follow simple, clear shop standards just because they personally disagree with them. You know, sometimes I don't care what your arguments are about whether we should drive on the right side of the road or the left - the important thing is that we all use the same standard!
Also, you'd be amazed how many places still OCR resumes and send the text around. Word's Times font is what all the OCR software (in this domain) expects, so you look better if you use that exact body font.
Socialism: a lie told by totalitarians and believed by fools.
Fair enough - there's definitely value in having clear shop standards, so I can certainly understand wanting to weed out those that are too inflexible in their own ways to work properly with a team. Personally, I keep my resume' in a variety of formats so I can "play along" anyway, so it's not a huge deal; that said, I'll have to remember to create a Times New Roman vanilla formatting version one for companies like yours.
This being Slashdot and all, though, I will note that binary Word docs are neither simple, clear, nor standard, even among versions of Word, much less non-MS products. I'll also note that allowing Word docs as your only standard opens the door to a ton of undesirable and unintended flexibility, such as using complex sectioning, versioning, and incompatible fonts, which might freeze up your OCR systems. Given what you've stated thus far, a far more simple and clear test of shop standard adherence would be just requiring plain-text resumes, which I've seen many places do quite successfully.
All 10-15 minutes of said time?
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
If you have a full-time job you like and do consulting work on the side, why would you be applying for another job? If you hate your job, it's probably worth a code sample or two to get a better one.
If you're smart enough to recognize the problems inherent in Word, you're smart enough to preview your doc with WordPad and use only the two Microsoft ur-fonts (Arial headers over Times New Roman body). You can produce a very professional resume with just those two fonts (miserable as they may be), good use of white space, and moderate use of bullet lists. Man I'm tired of sans-serif resumes with tiny margins that are nothing but bullet points (usually for 8 pages, not that I ever read past page 2).
Socialism: a lie told by totalitarians and believed by fools.
This is the third post today where I've thought, "Damn I wish I could mod that up!" Why do I only get mod points when the page is full of Idle crap?
"Think about how stupid the average person is. Now, realise that half of them are dumber than that." - George Carlin
Maybe I'm a good programmer or maybe I'm not, but I'm with you that programmers will be more likely to take a test when the risk/reward balance is topped to the correct side.
Well put. Excellent comparison. And it's clear you are a good programmer. A one hour estimate taking seven hours to do correctly is par for our industry.
rd
...judging by the Microsoft engineers i've met (who were nearly all from the Mac Business Unit), they really don't have a shortage of coding talent over there. What they have is a mind-boggling surplus of bad management, starting with Ballmer.
That's something that MS doesn't have a patent on.
One of my favorite examples, that gets knowing looks from lots of good programmers: Some years back, I was hired to implement a specific standard (which one isn't important here, but you'd recognize the name). When I started, I was bemused to see written orders that explicitly included not implementing a critical part of the standard, because "it isn't needed in our system". So I did the sensible thing: I implemented the entire standard, but included a switch that disabled the part they didn't want. I was also a bit annoyed by the fact that they explicitly denied me the use of a downloadable compliance test package (which was even free).
After a while, the project was working well enough that they delivered the first release to several customers. Among the bug reports, every customer included the fact that my part didn't pass their compliance test (which was the one I'd been denied access to), and they explicitly noted the one part that didn't work at all, which was of course the part I'd been ordered not to implement. Every customer said they wouldn't accept the product until that part was working. I got a "top priority" request asking how quickly I could implement the missing feature. I flipped the switch in my test setup, thoroughly tested it, and reported a few days later that it was ready for delivery. My managers were duly impressed by how quickly I'd done it, and the customers all accepted it.
A few months later, they were setting up for the product's "2.0" project. I noted that my standard was included, and that they again explicitly required that I not implement that one part that they "didn't need".
I sent my resume around, and a few weeks later, told them that I wouldn't be working on release 2.0.
It's interesting how many of the good programmers that I know have stories very similar to this. And most of them don't work for Microsoft.
Those who do study history are doomed to stand helplessly by while everyone else repeats it.
I'm confused, what?
brilliant but unmaintainable code
I've read most of your comments in this thread and largely agree with you. However, there is no such thing as brilliant but unmaintainable code. Brilliant code is typically something you would never have thought of doing, but what it does and how to change it is immediately obvious when you look at it.
I worked with a guy who was very smart and could solve problems that most of the rest of the staff would have trouble with... and I advocating firing him because it was less of a time drain for me to help the other guys figure out a good way to solve the tough problems they ran into than it was to help them figure out what the hell genius boy had done. Most of his code required total rewrites in order to make useful changes. I suspect you meant that kind of coder. Solving difficult problems does not necessarily amount to brilliant code, and sometimes simple problems can have brilliant solutions.
William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
There is, but there's not much call for it nowadays. The kind of stuff Steve Wozniak could do in 256 bytes of 6502 assembler (e.g. stuff which behaved differently -- and usefully differently -- if you jumped into the middle of an instruction).