Why the New Guy Can't Code 948
theodp writes "'We've all lived the nightmare,' writes Jon Evans. 'A new developer shows up at work, and you try to be welcoming, but he can't seem to get up to speed; the questions he asks reveal basic ignorance; and his work, when it finally emerges, is so kludgey that it ultimately must be rewritten from scratch by more competent people.' Evans takes a stab at explaining why the new guy can't code when his interviewers and HR swear that they only hire above-average/A-level/top-1% people. Evans fingers the technical interview as the culprit, saying the skills required to pass today's industry-standard software interview are not those required to be a good software developer. Instead, Evans suggests: 'Don't interview anyone who hasn't accomplished anything. Ever. Certificates and degrees are not accomplishments; I mean real-world projects with real-world users. There is no excuse for software developers who don't have a site, app, or service they can point to and say, 'I did this, all by myself!' in a world where Google App Engine and Amazon Web Services have free service tiers, and it costs all of $25 to register as an Android developer and publish an app on the Android Market."
Why is this a nightmare? (Score:5, Interesting)
Firstly, why is this a nightmare? Who wants extra competition?
Secondly, "technical interview" is a misnomer. They're actually "potential colleague" interviews. Who is going to pick someone who is smarter than them, or who is going to give them competition for promotion?
Those who get through technical interviews are either smart enough to bluff to the interviewer that they're not quite as smart as the interviewer, but an ok guy to hang out with; or are genuinely not as smart or talented as the interviewer, but are an ok guy to hang out with.
Quick tip: when you attend a technical interview, answering the questions correctly doesn't get you the job. Being amazed at how much the interviewer knows does.
Re:Experienced only? (Score:5, Interesting)
Re:Experienced only? (Score:5, Interesting)
I think the problem is that a lot of people, no matter how skilled and dedicated, may not have had any summer jobs or internships (at least around here those are very hard to come by) that led to them taking part in the creation of "real" applications as well as not really have any "finished" applications to show off (as in, they may have dozens or hundreds of little apps but you rarely want to show an interviewer that 900 line perl script you wrote that has half a dozen required and undocumented parameters and does something extremely specific to your home computing environment.
I was actually in that sort of position after college, I ended up working tech support for over a year because I couldn't find a "real job", the reasons for why I either didn't get an interview or why they didn't find me interesting post-interview were split between no reason given, "You're not quite what we're looking for" and "Please try again when you have at least three years of experience, the ad might've said 'entry-level' but we really meant we were looking for someone with a few years of experience...".
Re:Why is this a nightmare? (Score:5, Interesting)
As the rule goes
B class managers hire C class people.
A class managers do not feel threatened, so they hire the best there is. The result is a great workplace.
B class managers on the other hand want to make sure their staff is dumber than them selves, so they make sure they hire C class staff.
So the rule is, if your boss is a moron
Re:Experienced only? (Score:4, Interesting)
Applications you've made because of a school project will not count.
That's stupid. As an EE, a buddy of mine and I made a spiffy wireless sensor system which we presented at a conference. We did the project all on our own without any direction from any professors and received a $5000 grant from an independent organization interested in publishing our work. And we did it all for 6 credits worth of independent undergraduate research classes, too. Just because you get college credit for a project doesn't mean it isn't a real project.
Re:Move along, sexists writer. (Score:4, Interesting)
Re:Why is this a nightmare? (Score:5, Interesting)
I'm a lead. I like my two worker bees. They are both better than me at everything technical, but neither could be a lead (yet). I don't feel threatened one bit, even though I know both of them are smarter and technically more competent than me. Plus, most organizations don't replace leads without a reason, so unless I go to another position, my two guys won't get my job. If I lead like I were in fear of my job, I'd be a terrible lead.
What is your proudest accomplishment... (Score:5, Interesting)
..as a programmer?
That question is one of the best filtering questions around.
Re:Experienced only? (Score:5, Interesting)
All good ideas...for people with tons of free time. When you get a job doing this stuff, you get 8-10 hours a day to do it. I'm hard pressed to think of any time outside of my work hours that I have 8-10 hour blocks of time to do stuff for fun.
Exactly.
It's all well and good to tell people they ought to have prior experience... And that they ought to be coding on OSS projects or something in their spare time... But spare time is something I've just now discovered - at the age of 34.
There's a reason why they consider 12 credits "full time" (at least here in the US) - if you're taking classes that are even remotely challenging you'll be putting several hours of work outside of the classroom into every single hour of work in the classroom. And then you throw in a job on top of that... Doesn't leave much time for OSS projects.
Then I graduated, and got a job at Electronics Boutique, because nobody would hire me in anything even remotely IT-related. It was part time, hourly work... Which meant absolutely no benefits, a schedule that would change wildly from one day to the next, and no sick time. I was constantly dropping everything to cover for someone. Had to take every hour I could get to make ends meet.
Then I grabbed a second job, because EB wasn't working out - taught things like Microsoft Word at a local community college. Prepping for class... Teaching the class... Office hours... Grading... All in addition to working at EB.
Then I finally got a job in IT. Worked for one of the local repair shops for a while. Quickly moved through the ranks from bench technician to lead network engineer (a fancy title to make up for the lack of pay). I don't know how much overtime I put in there... Came in early, worked through lunch, worked late, came in on the weekends...
My current job is the first one where I can actually leave work at 5:00 on a routine basis. It's the first one where I don't wind up working weekends on a routine basis. It's the first one where I actually have some time to myself at the end of the day. Time I could spend doing some OSS coding...
Except that my days of writing software are long behind me. I've got experience now, but it isn't in software. I've wound up on the sysadmin side of things. Yes, I write scripts fairly frequently... But I sure as hell couldn't be trusted to do anything substantial.
And I graduated with a Computer Science degree that was very heavy on programming. I originally intended to write code. But nobody would hire me. The local repair shop only hired me because they figured I could probably replace a HDD without drooling all over it first.
Re:Experienced only? (Score:5, Interesting)
I agree with Vectormatic. Just because its my job which I enjoy and I'm good at, does not mean I'm going to sit around doing it for free. If I have extra time on nights/weekends to do some coding, I'm going to bill for it.
I've been a developer for 13 years, at a half-dozen jobs. I've never been asked for a code sample, and I wouldn't have one to provide if I were.
Re:Experienced only? (Score:4, Interesting)
It all depends. When I first got out of school (B Sc Elec Eng), I coded at work, and I coded at home. Later, I got married, and the coding at home started to drop off, but not completely. Now I have three kids, and the for-fun coding has dropped to near, but not quite, zero. However, I don't think that my day job had anything to do with it - if I were doing Electrical Engineering, my for-fun coding would still have dropped to near zero, if not actually zero. It's just a matter of having other events in life that readjust your priorities.
Mistake not to mention personal project ... (Score:3, Interesting)
I did write lot of stuff for my enjoyment. still, the assembly bump mapping demo doesn't really seems to me a good thing ti show off. also, it doesn't run on windows. or linux, for that matter.
You are very mistaken. When interviewing recent grads I explicitly look for things people have written for their own curiosity or amusement. To me that separates those who have a genuine interest in programming from those who only look at it as a good career path. Your mistake is common, I often have to dig these projects out of interviewees. When hired they were shocked to learn they were preferred over a 4.0 student who never wrote anything except for class assignments. FWIW, my year+ project staffed with such individuals was delivered on time with only a few weeks of "crunch time". The product (molecular modeling and visualization) received good reviews and few bugs were discovered when it got into the hands of customers.
It's hard to see work (Score:4, Interesting)
I once ran an employment ad "Send us a thousand lines of C++ that you're proud of". Very few people submitted code. Lots of excuses, though. What I was looking for in code, incidentally, was proper paranoia. This was an embedded project for a large machine, and I wanted to see conservative code that would clearly not do bad things. I actually sent one application back with "Your application has been received. Your first buffer overflow is on line 22. Thank you for your interest."
I once encountered an applicant who claimed to be an experienced C++ programmer, and sounded convincing. I sat him down at a computer, demonstrated how to type in, edit, and compile "Hello World" in that environment, and asked him to code something. Anything. He got stuck at "int main...".
Re:Experienced only? (Score:5, Interesting)