Fog Creek Software
Discussion Board




where did all the software jobs go?

I've been unemployed for almost a whole year now. Pretty much after a few months I gave up on the usual job agency route of getting a job. It seems as there are only two private companies in the whole of London seemingly wanting to hire software developers. These two companies have a recruitment process that goes on year round!

So I decided to apply direct for standard (I mean non-research) software development jobs at universities and local governments. I've got nowhere. Local governments don't reply. From tens of university applications, I've only got three interviews. At all of them not one real technical question has been asked.

My first interview lasted only a matter of minutes. All they did was take my photograph, say they couldn't answer any questions about the project until the second interview and that I should leave then and there. I didn't get the job or a second interview there.

At my next interview I was told they didn't see people as academically well qualified as myself (I got A's at Advanced level when I was 18 years old - over a decade ago now) and that I could do all the work in 1 day. I didn't get that job either.

At my third interview (at a former polytechnic/college that gained university status after a change in UK law) one of the interviewers was bordering on rude and made fun of me when I said I was reading technical books and writing software in the spare time I had.

What is going on? Where did all the jobs go? When will they come back?

Bagpuss
Sunday, May 18, 2003

I heard that around 80% of jobs are not even advertised. That was in Toronto, I guess the figure is more or less the same in other countries. An applicant gets the job thru his people network.

There are many people in the industry who are not even up to their job but hold a position (and sometimes get good pay). How good you did in school means almost nothing, esp, in a job market like this.

S.C.
Sunday, May 18, 2003

Here's one hypothesis... packaged software is getting better and better and so there's less of a market for custom software, which puts programmers out of work.

For example packaged CRM and HR software as a category didn't even exist 5 years ago, big companies had to write their own, now it's readily available off-the-shelf.

Hypothesis two: the trend of outsourcing to India is peaking. I personally don't think this will last, for reasons too complicated to go into here, but that puts pressure on software jobs outside India.

Hypothesis three: spending for IT goes in waves. It's at the bottom of a cycle now, recovering from an orgy of Y2K and Internet spending which was perceived by Upper Management as being a waste of money. So now IT is starved for resources. Even a 5-15% reduction in IT budgets basically means a 100% reduction in new hires -- all the brunt of this downtrend is being borne by new hires and consulting firms. On the other hand I'm starting to see signs that this wave is turning around and there will be a burst of pent up demand in the next year or so.

Joel Spolsky
Sunday, May 18, 2003

I didn't bring up how well I did in school at the interview. The Human Resource woman did. The other interviewer said I could do all the work in 1 day.

I got the impression they were saying I wasn't suitable for the job or they thought the job was really a bit low.

I was miffed slightly because if they thought I wasn't suitable for the job they shouldn't have interviewed me.

Bagpuss
Sunday, May 18, 2003

I agree with Joel's Hypothesis three.

IT booms seem to be driven by innovations, followed by a bust. I wonder if it will just continue to peak and bust every 5 years or so?

Matthew Lock
Sunday, May 18, 2003

I don't get it.  Every job sector, save healthcare, has been battered with the weakened economy. Why do so many programmers talk as though it's just the software industry in the doldrums?  When the economy picks up, so will hiring in the IT sector.

I don't dispute the fact that there aren't jobs that are not advertised - I just think the percentage is inflated.  I've heard the 80% figure batted around for years - mainly by headhunters - but I doubt it's traceable to any legitimate and comprehensive study.

Every company I've worked for (which have ranged from small companies to large corporations) has advertised any job they fill from outside and most that they fill from within.  They have to for EEO reasons.  Not advertising the position opens them up to discrimination lawsuits (in the US, anyway).  That's why I think 80% is high.

Nick
Monday, May 19, 2003

Joel,

I agree with hypothesis 1 and 3.

But I am not very sure what are the reasons you have to say things will change as far as outsourcing to India is concerned.

Could you please elaborate more... or may be write your next article on the very same topic? Computers Jobs in <PUT COUNTRY NAME> and Outsourcing to India.

Regards,
JD

JD
Monday, May 19, 2003

I have noticed also that the quicker you reply to a job advert the more likely you are to get an interview.

I guess companies must be overwhelmed with all the applications they get, and so would probably pick the first few that looked decent and interview them.

The 500th resume would probably be unlikely to be read.

Matthew Lock
Monday, May 19, 2003

<< IT booms seem to be driven by innovations, followed by a bust. >>

Innovation? Where? I haven't spotted innovation in the software industry in the last 10 years or so, and we sure did have a boom.

Ori Berger
Monday, May 19, 2003

How about the World Widde Web as an innovation? That was what kicked the whole dot com thing going.

Matthew Lock
Monday, May 19, 2003

I have noticed a trend that companies aren't advertising. They're basically cheesed off with getting snowed under with CVs, so they just don't bother. They don't need new people /that/ much anymore, so they just don't wander out to hire people.

On the other hand, if good people turn up, they talk to them.

Because good people are **THAT** thin on the ground - it's not worth looking for them in the mass of people available at the moment. Sooner or later they'll turn up on your doorstep.

Katie Lucas
Monday, May 19, 2003

Bagpuss, the sad fact is that the longer you remain unemployed, the harder it will become to get a job. You're competing with people who may already be in work or who have been unemployed for less time.  Employers really don’t like to see large periods of unemployment in your career history.

I do sympathize, of course. As a (UK based) contractor, I have spent a fair part of the last 12-15 months out of work, although I have managed to get enough work to pay the mortgage and household bills.

It is unfortunate that almost every employer in this country chooses to use recruitment agencies. Whilst as a whole that industry has a parasitic image, the role they fulfill for employers is invaluable - they have to deal with hundreds of CVs (US: Résumé) and act as a filter. I suspect this is the main reason your letters go unanswered – let’s not get into a discussion here on the impoliteness of that; there’s another thread on the board somewhere about that.

Matthew is quite right; anything after about number 20 goes in the round file. In the past I have applied for jobs which have been oversubscribed in about 20 mins.

I assume you have tried the usual route of applying for jobs:
http://www.jobserve.co.uk
http://www.theitjobboard.co.uk
et al.

You might also try going for smaller freelance work. It won’t pay a great amount in this market, but it will provide some spare cash and will help fill the gaps in your history. Try http://www.freelancers.net/ or similar. I would avoid elance, a) because it costs money – not necessarily a bad thing, but I don’t believe you’ll even cover that investment and b) because you will have to compete against people who will throw a whole team at a project for 3s, 6d per day*.

Also worth looking at are http://www.contractoruk.co.uk and http://www.namesfacesplaces.com for advice and articles – warning some of these make depressing reading.

What have you spent the last 8-9 years doing? Anything you could conceivably write about, given all this time you have spare?

Justin
Monday, May 19, 2003

A few months ago I was interviewing for a C++ developer position in Nottingham in the UK. I noticed a number of things.

1. Recruitment agents will basically send you everything they've got, regardless of whether the applicant in question has any of the skills you've asked for. I haven't got a clue how they manage to get away with charging 20% of the starting salary for knowing where the Send button is on Outlook.

2. About 60% of the applicants I received we're from people who've been out of work for over 3 months. I'm sorry to say it did put me off them a bit. Many of them had fantastic CVs (resumes) full of sexy web technology contracts during the late 90s. I found myself wondering why they hadn't found anything for so long. Non of those applicants I interviewed who'd been out of work for a long time we're appropriate for the position, for a variety of reasons.

3. The whole process took months, it's not just that I was being picky, there are just so many people out there who blagged their way into the industry five years ago and who can't write decent software to save their lives. The first technical test we gave them was to spot all the problems on an A4 page of code. There we're 12 errors, the pass mark was 6. The average score was about 5. People we're missing really obvious things like undefined variables and missing semicolons. If I'd have had a contact in the industry who I knew was decent, and who was looking for work, I would have jumped at the chance to hire them.

I think the industry went insane for a few years, and lots of bad software was written in the process. These days companies have to make their IT budgets count and are not prepared to hire just anyone. Hopefully, the recruitment agents, and the dead wood that they are trying to push, will find something else to do soon so that the *real* programmers find it easier to get work.

Daniel
Monday, May 19, 2003


Why would a technical test be given with errors a compiler would catch?

Joe AA
Monday, May 19, 2003

Daniel,

You're making the mistake that because there are a lot of people out there looking for work that you can find exactly the people you want.

If you have a very good idea of the competencies that are required (and no I don't mean experience with a particular IDE or a particular class library), then you can use an agency to filter for you.  But that is all an agency will do.

If you have a very well defined person specification (which has nothing to do with their technical competencies), then you can successfully recruit yourself directly and those people applying will generally filter themselves. 

Agencies seem to be very bad though at interpreting person specifications, they seem unable to match individuals in that way, whereas the individuals themselves tend to be very good.  Oh, of course people will exaggerate their own accomplishments to themselves but on the whole they are more likely to apply if they recognise the person specification.  Note.  Good team player is a start of a person specification but without some idea as to what you mean by a team it  isn't very useful.

The most important thing to remember when recruiting is that you are not recruiting skills, but individuals and individuals that should both fit into the culture and surroundings you already have and with luck provide new experience or outlook to the organisation.

I dislike technical competency tests because they either measure very little (your syntax checking), or they measure so much as to be too difficult to quantify.  I find it more effective to discover from the individual how they approach problems and how they best work.  There are people that can talk a good talk but good diagnostic skills in the interviewer will discover how deep that knowledge is.

Simon Lucy
Monday, May 19, 2003

U guys totally wrong.

The gold rush is over and it shall not return.

Realist
Monday, May 19, 2003

There were many types of error on the test, the missing semicolon was a give away. Any smart programmer would head straight for the things that are obviously going to be on a syntax test like that and pick up four or five points in the first few seconds. Anyone who doesn't find the obligatory missing semicolon is either not very smart, can't code, or isn't reading the code very closely.

Its more a test of attention to detail, and their ability to read code and figure out what it's supposed to be doing. Both of those things are important in my view.

Daniel
Monday, May 19, 2003

I'd be interested to know if any of the people who did score lower than you expected on the syntax test you'd otherwise have considered?

Simon Lucy
Monday, May 19, 2003

I agree Simon, what took me so long was interviewing people in order to discern things like their level of intelligence, their problem solving skills, their attention to detail, their attitude towards customer requirements, their response to pressure. Assuming the particular individual made to the end of the interview it would have lasted between four and five hours.  I wouldn't have expected an agent to do that for me, but generally speaking, when I gave them a technical spec. (or even an experiential one) they completely ignored it and forced me to spend hours trawling through my inbox reading CVs. Hence my point, which is that I would have jumped at the chance to bypass the system and hire someone I knew.

Daniel
Monday, May 19, 2003

Yes, some of the people looked *really* good, until we put them through some basic code based tests.

Daniel
Monday, May 19, 2003

Non research software development jobs at universities go to the CS researchers that are between funded research contracts.
Research funding is not smooth at all with high peeks and deep valleys and has no possibility for dampening these fluctuation (you can't say, hey, we got this big grant for the next 3 years but we are not going to spend it now but apply it more judiciously over the next 6 years and go for "organic" growth). To save valuable experience from leaving this is one of the tricks applied.
Now is an especialy bad time since we are inbetween EC research funding frameworks. Many positions are only advertised externaly because it is obligatory to do so.

Just me (Sir to you)
Monday, May 19, 2003

I think then that you might have stumbled onto the changes in how software is written now.  Back in the days of my almost youth desk checking was the only sane thing to do (nightly turnarounds of cards). 

Now though all of that work is pushed back onto the hinting IDE and the compiler.  Depending upon the IDE it might now be very difficult to produce the kinds of syntax errors that you presented so that kind of approach has died out.

The first real application I wrote for myself in C was a listing output generator that would give me nested structure and comment extents (largely because Lattice C allowed nested comments).  That kind of tool would be almost entirely useless today, instead I rely upon syntax colouring.

Similarly I use spell checking to discover mistyped variable names in large scripts.

That's not to say I decry being able to parse the source by eye, its a continuing skill I have and one for which I'm grateful.  But that gratitude is on a similar level to the one I have to learning to type properly 32 years ago on a manual typewriter.

Simon Lucy
Monday, May 19, 2003

[anyone who doesn't find the obligatory missing semicolon is either not very smart, can't code, or isn't reading the code very closely.]

Finding a missing semicolon or not has nothing to do with intelligence. We are not practiced at searching through code for lines missing semicolons, since the compiler finds them. It would be a waste of time to become proficient at something like that.
Similarly for undefined variables -- progammers do not normally spend their time searching manually for things like that.

It's possible you should revise your test, so that it really tests programming knowledge.

The Real PC
Monday, May 19, 2003

Admittedly, giving people code and asking them to find the errors is a bit of a blunt instrument.

Although, I'm not entirely convinced that the skill is one we don't really need anymore. The position we were recruiting for involved some very low level bitmap manipulation and I know from working on it, you need a very good internal interpreter to get it right. So perhaps it was a bit different from the majority of coding projects these days. Nevertheless, I can't help but feel uneasy about trusting CTRL+J and the compiler to replace a programmer’s ability to spot what they've done wrong and correct it.

I'd ask what people thought, only I think we've strayed off the subject at hand.

Daniel
Monday, May 19, 2003

[ Finding a missing semicolon or not has nothing to do with intelligence. We are not practiced at searching through code for lines missing semicolons, since the compiler finds them. ]

Unfortunately, this just isn't always the case with many C++ compilers (eg. MSVC and GCC). I've frequently had to spend ages looking for a misplaced semicolon (or even better, a colon disguised as a semicolon!) in a header file.

The reason being that the compilation error you get is often an extremely obscure one 500 lines later, as opposed to the "missing semicolon on line X" error you'd expect. Likewise for mistakes such as misspelling class names, missing out #include guards, and so on.

I'd agree that a basic bug-finding test is very useful in an interview, simply to weed out the completely unskilled.

But let's not turn this into a semicolon-finding flamewar :)

Ashley
Monday, May 19, 2003

>> "On the other hand, if good people turn up, they talk to them."

This kind of statement irritates me.  Who are the "good" people and who in the hell are you to call them good.  If I showed up on your doorstep would you call me "good".  Don't get me wrong, I am good.  Damn good. At everything I do.  The thing is that I don't have anything to put on a resume to show for it, except my school experience and some "personal projects".  Why because I can't get a job.  Then people like you who do the hiring simply laugh and say, 'Why is all this scum applying for >this< job '.  As if your job was some high tech thing that no one but a guy with 3 master's degrees and 25 years of experience could comprehend. 

No one will give me a chance.  So when people show up on your doorstep asking for a job,  don't just shut them out because you think your good enough to label other as "good enough".  Big egos suck.

^_^
Monday, May 19, 2003

Ashley,
That's true, the compiler seldom tells me exactly what the error is or where. But I have learned to guess what the compiler means, in many cases. I never search through my code to see if all the semicolons are present -- I compile it first. If I get vague error messages, then I might comment out sections and play "20 questions," and eventually zero in on the error.
There are all kinds of ways to get rid of minor syntax errors, and proof-reading through the code has to be the least efficient.

The Real PC
Monday, May 19, 2003

"Big egos suck. "

Whiners suck even more...

You have no right to demand a job from anyone. They are not compelled to give you the job just because you think you are all that.

You want a job? Then show a potential employer that you will make them more money than you will cost them. Or that you will save them more money than the Total Cost of Employing you.

If you have no experience, then you have compensate in other ways. Document an open source project, join one as a coder. Just do something that shows an employer that you are that good, and that you can work hard on your own initiative. Demonstrate also that you can work as part of a team, both as a dogsbody, and as a leader, and you are halfway there.

The onus is on you to prove your worth, just as it is on the company to prove that they are an employer worthy of you.

tapiwa
Monday, May 19, 2003

Joel's hypothesis #1: "packaged software is getting better and better and so there's less of a market for custom software, which puts programmers out of work."

This statement might be true at the bigger company level, but in our experience it sure isn't at the small business level.  In the past year, the custom software market has really increased - especially with the troubled market.  Our clients are looking for software that will streamline their internal processes and save them money.

Also, we are finding that there are a *ton* of large vertical market applications that are reaching end of life and showing it.  The user interface is clunky, the application slow, and any ability to access the application through a web interface is a kludge that frequently doesn't work as advertised.  Many clients want to make custom changes to these applications so it will perfectly match their business flow, and the applications simply cannot handle many customizations.  (In fact, it is often cheaper to re-write the entire application than get it set up and customized).

My hypothesis as to why programmers are out of work:

a) reduced focus on product innovation (riskier) and many companies haven't shifted to offering process innovations (what our customers are buying) in this economy.

b) increased competition.  In 1998/1999 there was lots of hype about the tech "shortage" and the high salaries available.  Many people were inspired to go to local tech colleges and / or get a degree in Computer Science or Engineering.  They are all graduating around now. There's also extra competition from people who were working for large tech companies that were forced to do layoffs because the telecommunications sector tanked.  Here in Ottawa, Canada, one of the bigger employers is Nortel, and they laid off thousands of people in this area alone.

What's the solution?  Find a shortage and exploit it.  That shortage will vary depending on your region.  It may require that you do something that is mainly unrelated to software, but where you can bring in your software skills to improve your process.

Phibian
Monday, May 19, 2003

>> "Whiners suck even more...

You have no right to demand a job from anyone. They are not compelled to give you the job just because you think you are all that."

Who's whining?  Not me.  Who's >demanding< a job from someone.  Not me.  If you advertise a position and I apply for it I am not demanding anything but a fair chance.  A shot at the job without being judged by my experience level.  I can code just as well as (and possibly better than) someone with 3-5 or more years of "experience".  I have also read and can apply all the "good" coding techniques that you read on this site and in books like "Code complete".  The fact is employers laugh at you when you come to them with things like "well i've been reading and coding personal projects, I can show you them if you like?"  They don't give a shit about the books you've read or the project you've done.

Most importantly I am not whining.  I am stating facts.  The fact that everyone who sends in a resume should be given a fair shot.  You can't look at my resume and say, "Well no experience to hell with 'em."

You can take your "whining" and "demanding" and shove 'em up your ass.

^_^
Monday, May 19, 2003

One thing I have learned after actually being a professional software developer for about two years is that I really wasn't "all that."

I had plenty of "experience," as the whiner calls it, doing personal and academic projects. I quickly learned that knowing how to code was only about 20% of what I needed to know. The rest was UI design, architecture of our massive hardware and software systems, talking with clients, dealing with other developers, marketing, and probably most of all, learning all of the non-technical apsects of our problem domain.

How did I get the job? Networking.

Fred
Monday, May 19, 2003

Bagpuss, according to Names Faces Places there are about 30,000 non-UK residents working in the UK outside normal immigration arrangements i.e as a special favour to business.

On top of that are significant numbers of Indian companies exploiting loopholes in international company transfers to bring in even more programmers.

http://www.namesfacesplaces.com/html/view_article.asp?id_no=629&photopage=0

http://www.namesfacesplaces.com/html/view_article.asp?id_no=682&photopage=0

Yes, well
Monday, May 19, 2003

^_^:  "A shot at the job without being judged by my experience level. "

Well, what should you be  judged on? Number of fingers?

If I have you up against 500 other resumes, all with more experience, guess which one gets dumped? You have to differentiate somehow, and unless I'm looking for cheap, I'll be looking for experience.

Sure you may talk a good game (although honestly, from here it doesn't look like it, but I can be wrong), but if I have 500 resumes (not uncommon at all), why would I waste time on someone who only *can* talk.

I hate it when people get overworked about what they 'can' do. What the know how to do. The only thing that matters is what you have demonstrated. I only expect to be judged on what I have produced so far. That's all. I don't expect to be judged on some airy claim I can make, because that's all it is, a claim.

Put up or shut up kiddo. It's about showing, not talking.

Mike Swieton
Monday, May 19, 2003

Dear Yes well,
                      Do bear in mind that there are large numbers of UK nationals living abroad who are there on non-standard immigration visas because they are doing a contract job for the parent company. I suspect you would get even more unemployment if you repatriated them all to replace all the people you are talking about.

                      That said there does appear to be a serious abuse of L1 (or is it L2) visas in the US, where companies such as Siemens are using them to bring in cheap programmers who have no rights at all.

Stephen Jones
Monday, May 19, 2003

>>> "On the other hand, if good people turn up, they talk to them."
>This kind of statement irritates me.  Who are the "good"
>people and who in the hell are you to call them good.  If I
>showed up on your doorstep would you call me "good"."

Being considered good is a sort of invite-only club that you'll never, ever, ever, ever get to join. We'd take an instant dislike to you because your hair's the wrong colour or your eyes are too close together or something...

Katie Lucas
Monday, May 19, 2003

>> "I hate it when people get overworked about what they 'can' do. What the know how to do. The only thing that matters is what you have demonstrated. I only expect to be judged on what I have produced so far. That's all. I don't expect to be judged on some airy claim I can make, because that's all it is, a claim.

Put up or shut up kiddo. It's about showing, not talking."

The problem is you are not listening sir.  I did in fact say that I had projects that I had completed and books that I had read.  That is "putting up" as you call it.  What more do you expect?  How do you get a foot-hold without getting a job or writing a full-blown software package.  Who has time to write a full software package?  You are wrong by not giving me a chance to prove myself. (i.e. by giving me a test or reviewing my work).  I am good no doubt and I'm not just spouting off at the mouth either.  It is YOU the EMPLOYER that has to take the time to look at MY work.  That's my point, employer's are lazy.  They say they're strapped for time but I don't believe this.  You have time to come on this board and make posts?  Then you have time to at least glance at my work, my websites and any other material I submit for you to look at.  How else is it done?  You yourself blatantly said that you simply ditch the folks with no experience.  Well you're missing out on some good programmers there.  Have it your way.  Hiring is done unfortunaetly done by people who are mislead to believe that "experience" is everything.

^_^
Monday, May 19, 2003

May I suggest to my friend with no experience (I'm in the same boat as you), that you post a link to a site you've done and are proud of? You can show people here that you have put up, and if they have any constructive criticism, they will hopefully let you know about it in a polite way.  Even better if they did so on here, so those of us who read this site looking to learn new things could learn along with you.

BTW, I just graduated from college and work seems impossible to find. My plan for the summer is to pay rent through some sort of crap job (minimum wage/hr) and attend a class on db stuff (to refresh what I covered 3 years ago) and spend my spare time going through some books that I didn't have time to complete during the semester. You say you have skills, you're lucky. I feel like, although I learned how to learn and the basic concepts of cs, we didn't have enough chances in classes to actually do anything that I would be proud enough of to use for a job inteview.

Have a good day all, I'm off to my class.

Tim
Monday, May 19, 2003

Uh,  ^_^ :


Part of what you are complaining about is the "chicken and egg" nature of hiring. You apparently cannot figure out how to get past the conundrum of employers hiring experience and you not having the experience to be considered.


I am here to offer you commiseration that may help you understand the nature of the beast better. You've been beaten up enough in this thread.


My $0.02:


Most business appears to be about arrogance and self justification. I've worked with several small businesses. I've found that arrogance goes hand in hand with success. It's so tightly interwoven that it's not possible to seperate the two.


EVERY going business has this political line that goes as follows:


- We only hire excellence.
- We are great. You are questionable.
- We make money, so we are wonderful.
- You are coming to us groveling for a job, so you are questionable.
- Since we only hire excellence, anyone who does not make the cut is a loser.
- We are a true meritocracy. So if you don't make the cut, you can't do much of anything.
- Everything we do with candidates is fair, wonderful, justified, and informative.

The bottom line is - it's all a game. In fact, I would say that if a company that approaches you does NOT exude arrogance, beware... they are probably struggling.


Now, can you change this? No. It's human behavior. In fact, as economies flounder, I would expect the few 'good' businesses to become even more self satisfied and cocky.

The arrogance pervades the local environment. The owners have big weenies and know it. The staffs are trained likewise in "gatekeepers against rabble of stupid commoner" thinking.


As far as getting past the chicken and egg issue: I have found that the companies that are technology-based (IE, software companies) are the most stringent about specific and often irrelevant experience. Techies and geeks proud of their achievements who work at these places love to ego trip on applicants.


I know of a local geek company - a headhunter told me that one of the senior developers there "helped write MFC". So... that means that anyone who interviews will invariably run into this dickhead who will grill them on every arcane method and internal variable of MFC, never mind that the damned source code is there for the inspection. So, deep knowledge of some really stupid aspects of MFC, and not ability to get the job done, will be a hiring criteria.


So, your best bet is probably to look at end user organizations. IE, companies and businesses that don't make a primary business of technology. That way, you avoid prima donnas who get their rocks off on demeaning applicants who "don't measure up", and more to the point are simply looking for someone to do the work and who don't have people on staff who think they know it all.

Bored Bystander
Monday, May 19, 2003

Hey anonymous, you're not getting the answers you want to hear... but you're maybe generating noise when you should be listening.  (Those guys who call you a whiner likely have hit some point in life where they were hard on themselves and pulled themselves forward, and perhaps mistakenly believe you should do the same.)

Why don't you start a new topic on what people want to see on resumes?  Perhaps you can show yours with personal info omitted.  It would be more useful than railing against people uselessly, since doing so won't change the world.

I remember emailing a guy in Frankfurt, and mentioned Joel's interviewing guide.  He laughed and said he did pretty much that, though previously he tried training people.  Now he just goes for the so-called superstars.  So many learn this strategy, not just being arbitrary.  Anyway, enough noise from me...

Tj
Monday, May 19, 2003

"On the other hand I'm starting to see signs that this wave is turning around and there will be a burst of pent up demand in the next year or so."

Joel, could you elaborate?

Jim Rankin
Monday, May 19, 2003

Border Bystander:

You are correct.  I think you'd make a good mentor.  You seem to have an uncanny ability to identify with folks and explain things.

^_^
Monday, May 19, 2003

>The fact is employers laugh at you when
>you come to them with things like
>"well i've been reading and coding
>personal projects, I can show you
>them if you like?"

This is dangerously close to saying "blond people stink" or "women are lazy"  or whatever.  It's a generality, and, by definition, all generalities have exceptions.

A couplea years ago, the company I was working at hired a career-changing mechanical engineer.  He had a degree in ME and 10+ years experience as an ME - then decided to switch jobs and become a coder.  (Might have been a little less, but I think it was around 10 years)


He wrote a graphics-library in his spare time, and we wanted to make a graphical product.  He brought his laptop to the interview, and did well enough that management made him an offer.

Why?

1) Most schools don't -really- teach graphics programming, so a CS degree wouldn't add much.

2) Anyone with "deep" professional experience would live in Dallas or SoCal, and not be willing to move - or - worse yet, would have been out of our price range.

3) This guy had specific experience coding for our niche. He litterally cut/pasted a lot of his code into our product and saved us time.  That made him valuable.

So, in other words, if you develop a niche, then find employers looking to hire that, yes, you can find work.

If you're in a urban area, I would think you could find work somewhere as an entry-level PC tech, Web Grunt, or maybe MS Access-Developer.  Then, when an opening comes up on the coding group, someone will say "hey, doesn't johhnny have a CS degree?  And he allready knows the business ..."

Sha-Zam.

Even in a down economy, opportunity exists.  All it takes is a little bit of innovation, a little bit of dedication, and a whole lot of effort ...


regards,

Matt H.
Monday, May 19, 2003

"It is YOU the EMPLOYER that has to take the time to look at MY work."

Sorry but no, they don't.  Employers don't have to be fair (except in certain legally mandated areas, such as race and sex).  They're not examiners, your CV isn't being marked, and they don't have to justify their opinion to an external assessor.  They're looking to fulfil a need, and it's your job to convince them that you fulfil that need better than anybody else who's available to them.

There is no cabal.  Everybody here who has a job (and everyone who has previously had one) has had been through this.  Most of us will have been through it in a considerably more favourable climate than currently exists - however, railing at the weather isn't going to make the sun come out.

You probably don't want to hear this, but your chances of getting a job in this industry at the moment at entry level are minimal.  Most companies currently have hiring freezes, except where they have projects which need doing urgently, where they will *only* consider applicants with previous commercial experience simply because they don't have the time to ramp up newly qualified recruits.  And they have plenty of applicants to choose from.

You may be able to get a position at one of the large companies which operates a full graduate trainee program - some of those are still operating.  The competition will be high, but you'll be judged by your scholastic/personal work and your performance during the application process rather than on previous experience.

Alternatively, you may have to choose another career.  Programming was not what I came out of university intending to do, but I couldn't break into any of the areas which I did have in mind.  It took me a few years, lots of work, some money, and a lot of subsistence work (call-centres - *shudder*) to get into a position where I could find a job I liked.  I know a lot of people who had to do the same.  You might have to travel that right, too.

JP
Monday, May 19, 2003

I would add to Bored's comments that it really, really is a buyer's market out there.

Some people, especially contractors, are so desperate that they'll consider almost any work for very little financial gain.

This means that you are competing with people who *do* have experience, who are willing to work for almost the same money as you. It was stated previously (by Mike?) that if an employer has to choose between candidates, all else being equal, they will choose the one with more commercial experience (I'm paraphrasing).

So would you ^_^, if you thought about it briefly - No, don't attack me...think about it.

All else being equal, the one with more experience wins.

It's the same in any market. Computer builders, pizza, anything. If there is only 1 distinguishing feature, a buyer will use that to discriminate. Particularly if there is lots of choice.

There's your problem, right there. You are unlucky enough to be trying to get a job at a time when they are in very short supply.

Saying "it's not fair" doesn't help. You're right; it isn't fair. I know that. So does every other participant in this discussion. And *that's* why you get flamed by them.

If life was fair I would be on the same rate or better than I was 2 years ago (about 8 times what I currently earn).

So..."Put up or shut up"? That's not helpful, although it's right. Most people here are willing to help. I'll go a little bit further sometimes. Mail me your résumé, ^_^ , and I'll take the time to go through it and will reply, privately, to you with comments. Web projects? Post the links as someone suggested. You may well get roasted. If you do...Again, think about the criticism and grab with both hands the chance to improve.

Final comment: be grateful Bella hasn’t seen this thread. S/he is a cantankerous bastard, but if you can read past the vitriolic comments, there’s always insightful advice to be had.

Justin
Monday, May 19, 2003

^_^ ,

When you say "I can code just as well as (and possibly better than) someone with 3-5 or more years of "experience". " you simply prove how inexperienced you truly are. After a decade of working in the packaged/shrink wrap software arena, I can unequivocally state that you cannot.

I can only base my assumptions on what you have written here, but let me suggest that the reason people won't hire you has nothing to do with you ability and everything to do with your attitude. I wouldn't hire you because you lack the social skills to integrate with my team. It is that simple.

I just hired a fellow this week and I didn't hire him because he stringently conformed to the job description. In fact, there was no job description because we were not looking to hire anyone. He got in via networking. That simple. Someone I respect passed his resume to me and I took a look at it. I had him on the phone within the hour.

Networking is vitally important. The fact is, were it not for someone handing me his resume, it would have normally have been filtered out by HR early on. Why? Well, we are working on a pre-packaged solution written in C# and using SQL on the back-end. This guy has NO C#, .NET, or SQL Server experience.

So why did I hire him? Well, he does have commercial software experience via some games and major-label products. So that told me he understood the domain we work in. He also presented himself extremely well and flat out blew me away. It wasn't his answers to the questions I asked that impressed me, it was his questions of me.

So, if you want to work for me then check your attitude at the door. The last thing I need is another premadonda. Excpecially one who doesn't deserve to be one yet.

Marc
Monday, May 19, 2003

Marc:

What questions are those that so impressed you?

Mike Swieton
Monday, May 19, 2003

You're a perfect example Marc.  You exhibit just the attitude that Bored Bystander says all employers exhibit.  Hey! Ya know what? You think I have an attitude?  Look in the mirror.  Instead of hiring the guy who had experience why didn't you consider hiring someone out of school?  If I called you up one day and said something to the effect of 'I just graduated and am looking for an internship or even a little work, could you use or would you consider me?'  You (the employers) are saying no because you don't have enough experience.  I'm saying ok, well can you at least give me a chance to prove myself.  That's all I'm saying.  Catch my drift.  I'm not being mean or sarcastic to anyone.  I don't expect a job from anyone.  What I do expect is that if I were the guy you networked with that I would be considered just like him.  From reading your post this is not true, because you hired him for "experience".  I do not have an "attitude" as you put it. But when I am called a whiner then I do tend to get a little on edge.  I sure don't go to any employer with an attitude of "you owe me a job".  I try to present my skills and abilities and how I can apply them to their business.  The problem is like Bored Bystander said it's the employers with the attitude that their shit doesn't stink.  Not me.  I'm trying to get a job like everyone else.

^_^
Monday, May 19, 2003

You're not listening, ^__^.  Marc not only told why he hired someone with experience, but why that experience was important to him:

"So why did I hire him? Well, he does have commercial software experience via some games and major-label products. So that told me he understood the domain we work in. "

JP
Monday, May 19, 2003

^_^,

(How DO you pronounce that, anyway?!)

I only posted the description of employer's attitudes with the thought of validating the fact that it's extremely difficult for a job applicant to establish a level of communication and mutual respect with employers.

Please note - this description is ONLY a description. It's definitely not a solution to your problem, which is getting employed again.

The sad fact is, any one of these employers may have the job that you need.  And every employer with any degree of success will have *some* attitude, count on it. I have worked in industry for over 20 years. I have been a contractor for 10 years.  My experience has been that the only employer who will not demean you in some way at some time is - yourself.

My commisseration was only that - I described one possible avenue to getting a job.

My gut impression is that you need to get off this message board and stop letting people that don't know you beat you up and demoralize you. The mental and emotional activity that this causes is not constructive to your purposes.

You did get some decent advice in this thread, but it was spread a bit thin to suit me. You also got a lot of blame. You're frustrated. Pissed off. You have a right to be, but you absolutely can't let that show through in the job hunt process. Remember, employers are on top, they think they're masters, and they can smell fear and frustration and they do count it against you (and me, too.)

Employment in IT even in good times is tough, and anyone who postures that they are on Mt Olympus basking in sublime competency while you are undeserving is an arrogant, stuck up jerk. You're only human.

Get off this board, and take action. Prove some of the people demeaning you here *wrong* about you. Boards like this do have a valid use in job searches, but it's limited to specifics such as Q&A about strategies. Next time here I would sincerely advise that you not spill so much about your frustrations. Save it for trusted friends who know you. People on boards like this can be complete assholes at times.

I wish you well.

Bored Bystander
Monday, May 19, 2003

By the way, you guys who are dumping on  "^_^", lay the hell off.

YOU all had to get experience at some time and you're acting like dicks to minimize the difficulty that he faces. This has to be the worst hiring environment ever for IT and technical disciplines.

Keep it real. None of you are "all that."

Bored Bystander
Monday, May 19, 2003

Have you tried getting a job in technical support?  Hard times call for craftier strategies.


Monday, May 19, 2003

Hm, I know I'll be unpopular for saying this but I never did win Miss Congeniality.

The basic coding skills test Daniel brought up that was jumped on by a number of people, is totally appropriate and reasonable. It wasn't some deep test of obscure computer science trivia, nor was it a high-stress code-in-time challenge,  but merely a basic reality check of first semester coding compentance at *recognizing* (not even requiring writing bet just *recognizing*) basic correct syntax.

Look, I can see missing one or two points on it, but 50%? I feel very comfortable siding with Daniel here and knowing for a fact that not a single candidate he bypassed because of getting less than 6/12 was competant. I also have some grave concerns about you folks who don't like his test. Any coder who knows *anything at all* would not be the least threatened by this test. Really. It's just basic syntax like do you know what a correctly formed for loop loops like and didja happen to know that C requires semicolons at the end of a statement. The arguments  that you don't need to know syntax because the compiler will fix it for you are so absurd as to border on pathetic and sad. This is like saying the New York Times should hire Editors woo rits lyk dis beecuz hee ssez thut Werd has a spelink an gremer chekir. Come on now!  that's not just uninformed but incredibly stupid.

So you guys that feel threatened by Daniel's basic competance test, I hate to break this to you, but -- you can't code. you're not compentant. No one should hire you as a developer. Sorry. That's just the way it is. Best to either upgrade your skills to where passing basic competency tests doesn't feel like a big bad scary threat to you, or move on to an industry where you can do a good job and not be threatened by basic skills tests that show you have more than five days of effective experience in the field.

This whole thing reminds me of the fiasco in New York right now where they are requiring that *teachers* pass a basic skills test showing that they know how to read and write. You'd think there would be no controversy, until you realize the sad state of US education, the Myth of Entitlement, and the hatred of competance that is becoming the norm. Teachers are failing the tests in droves and making the exact same arguments I am hearing from some of the people here. I feel for you guys that you can't find a job because you don't have any skills. Instead of playing video games all night long, check out some of the self-evaluation tests on the internet, or make an appointmetn with a transitional career counselor. Find a field you enjoy and then work to become competant at it. Don't mess around with something where you feel threatened and outraged by extremely basic skills tests that could be passed by a third grader.

Dennis Atkins
Monday, May 19, 2003

I don't feel threatened by it, I just think it's stupid.

   
Monday, May 19, 2003

Dennis,

As much as I love to stick up for the underdog, I totally agree and Daniel's explanation was decent. A working developer ought to be able to recognize patterns in source code, and missing punctuation is dead simple. Undeclared variables take more care but are straightforward to find.

Some developers treat IDEs with intellisense and instant hinting like Borg facial implants - IE, crutches and prostheses. Personally, I think that most developers should start out with command line tools for awhile.

Only one objection to the syntax error test method that I could make: what about a candidate with extremely poor peripheral vision, such as that caused by glaucoma or other visual disorder? I've worked with a few developers who had to serially scan through individual lines of code in order to grasp the code. It did not mean that they could not create or grasp abstractions or write code, it just meant that their vision sucked.

Bored Bystander
Monday, May 19, 2003

I don't mind tests like Daniels, but I don't know what good they do. 

What I do hate is being asked crap like this:

http://www.braithwaite-lee.com/tips/fooT.html

   
Monday, May 19, 2003

Dear Dennis,
                    As far as I can tell there is only one guy in this discussion who doesn't have a job. The others are not saying they are incapable of doing the test, they just doubt its usefulness.

                  I agree with you about many "teachers" lacking basic skills. The other forum I post to is an EFL forum and the quality of the spelling and general writing is vastly inferior to here; and it has a spell checker!

                      What I find frightening are the "English teachers" who insist on their "professionalism" but refuse to use a single full stop or capital letter. It's not that they make typos; it's that they don't even bother.

Stephen Jones
Monday, May 19, 2003

>> "As far as I can tell there is only one guy in this discussion who doesn't have a job."

I hope you are not insinuating that I could not pass or do not want to take that test (in order to make yourself feel superior).  I never said anything about that test.  The fact is, I said I want to be tested. I could pass that test with flying colors.  In fact at every interview I pass "the test" with flying colors.  It just happens that I'm never selected for the job. 

Anyway, I'm leaving this board (and the programming field).  Later.

^_^
Monday, May 19, 2003

"^_^", in case you are still around - you might want to take a close look at how you as a person come across at those interviews.

You're definitely not a candidate for most likeable person in this thread here - and liking the candidate is a big part of the hiring step. And no, it's not unfair: People have to spend 8 hours a day with you. Don't you think they have a right to pick somebody that seems to have an agreeable personality?

I predict that whatever your new field is going to be, employment is going to be hard to find unless you accept that fact.

Good luck with whatever your new endeavor is!

Groby
Monday, May 19, 2003

Dear ^_^,
                I wasn't saying you couldn't take the test. I was contesting Dennis's claim that those who disagreed with the test were afraid to take it and shouldn't be coders.

---" In fact at every interview I pass "the test" with flying colors.  It just happens that I'm never selected for the job."-----

Frankly, that might have something to do with how you come over. If you come over at interview like you do in this forum then I wouldn't select you for any job, period. (well, kamikaze pilot perhaps!) 

Stephen Jones
Monday, May 19, 2003

When I was tech-screening C++ people, 90% if the people I screened were, frankly, hacks.  About 5% were just "okay", but not stellar by any means.  Another 4% knew their shit.  The top 1% - hell, they knew more that I did, but when we hired 'em, we couldn't keep 'em long!

I guess my point is that someone famous said that "90% of anything is crap", and that goes for programmers, too.  The people I respect in this business are always working...

Spaghetti Rustler
Monday, May 19, 2003

"The people I respect in this business are always working... "

The programmer (contractor) I respect the most usually takes off several months per year.  At least 3.

   
Monday, May 19, 2003

Yes I wouldn't be at all bothered by taking a syntax desk check test.  I was interested that the same people 'passed' the conversational element and that leads me to believe its current practices and tools that have reduced the need to be your own compiler.

I'm the kind of person that stares at their app running, the code running through my head and I come to the realisation that its all going to go horri......

I also fix bugs by staring at listings and becoming autistic.

I don't expect anyone else to work this way and I'd probably not enjoy working with that many other people who do. 

Simon Lucy
Monday, May 19, 2003

Those of you in the "attitude" crowd can leave now.  Go away.  This person doesn't need to hear that and 20 people don't have to tell him/her. 

To ^_^:

Bored Bystander probably offers the best advice.  Get off this board and don't look back.  You have a bunch of people you don't even know offering advice.  They only irritate you more.  Red flag.  Stay away.  Don't come back.

I wouldn't just "quit" the programming field.  You just seem frustrated and angry that you haven't found a job.  This is understandable.  You seem to have a degree and you also seem to be a smart person.  Take a break maybe.  Go on a vacation.  Work at a different job.  Forget about computers for a while.  Then when you feel refreshed start looking for a programming position again, if you wish to.

The professionalism shown in this thread is very poor on all sides.


Monday, May 19, 2003

When I was tech-screening C++ people, 90% if the people I screened were, frankly, hacks.  About 5% were just "okay", but not stellar by any means.  Another 4% knew their shit.  The top 1% - hell, they knew more that I did, but when we hired 'em, we couldn't keep 'em long!


Pay them or treat them well and they'll stay. They quit for a reason and you should know what that reason is.

Tom Vu
Monday, May 19, 2003

^_^, here are a couple of suggestions:

1. Don't be desperate, because desperate people don't get hired.

2. The interview process is about you putting goods on the table then letting the hirer make a decision. What you have to do is work out what your goods are and make sure you lay them out. I think you probably do have some good talents. Work out the details of what you've achieved in your projects and present that. Don't overdo it.

3. Be aware that junior people can easily exagerate their capability. In a few years time, you will be looking back and shaking your head. (By the way, almost all hirers also exagerate their capability and importance too.)

4. Possibly you have options of striking out on your own. If you can develop useful software, don't be afraid of doing that and trying to find buyers or markets. It's not that much harder than finding a job these days.

Must be a manager
Monday, May 19, 2003

Re Daniel's test, I think it's ridiculous. Software development is not about finding grammatical constructs.

Compare this with other professions. Writers are not assessed on how well they spell or on their ability to find typos on a page, except in hick magazines and irrelevant firms who lack the expertise to properly assess writing or journalism.

Professional organisations actually have people dedicated to such nit-picking tasks, called sub-editors.

I would suggest software development has direct parallels. The compiler does the job of nit-picking. To select people on such irrelevancies suggests sub-standard software capabilties.

Must be a manager
Monday, May 19, 2003

On using modern tools as a crutch, or not finding missing semicolons:

I doubt I could develop an application of consequence without an IDE at hand, I am clearly a hack.

I often use intellisense to find a function and determine parameters, rather than memorising an entire API, therefore I cannot code.

I rely on the compiler to catch syntax errors, rather than proofreading every line I type, I must be lazy.

I've never used a crank to start a car, obviously I cannot drive.

an incompetent hack
Monday, May 19, 2003

There should be only one criteria used for hiring - what can this person do for me. Not what they've done in the past, not what they think they know. Unfortunately it doesn't pan out this way all the time, but I think that's the way you should approach it from the hiring side.

Now the question you have to ask yourself is whether experience is a good guide to this. I'd say somewhat, but probably not to the extent you'd think. Hiring experienced people is still a crapshot.

You'd think experienced people would be better than non experienced people simply because they'd worked for longer and so must be good to keep on getting work. I find this to be untrue. There are plenty of totally worthless people in this industry who have been working for decades. Likewise, there are very good people who have decided to get out - since people who are good at programming tend to be skilled enough to apply their talent to other areas as well.

So is experience valuable for experience's sake? I tend to say no to this as well. It can be, but in most cases it isn't. Things vary between job to job too much to take experience from one and directly apply it to another in most cases. I don't think programming ability is significantly improved by practice - I think some people have it, and others dont. Many would disagree with me on that point though, and so I think that's where the debate about graduates vs experience comes in.

It probably doesn't matter what the truth is anyway, if you're coming from the perspective of someone looking for work. All you need to know is that the hiring process, particuarly when you get recruiters and HR people in there, is dehumanising and demeaning, and in no way, shape or form fair. The only way to cope is to realise they're the dickheads, not you, and not let it get you down when they reject you (yet again).

If your resume is going to pass through the hands of a recruiter, you have to assume that the person can't even program their VCR, let alone know anything about the field you're seeking employment in. They're just glorified bullshit bingo players, looking for buzzwords. So give them what they want.

Once you get to actually talking to the employers, it's a complete crapshot anyway in my experience. Either you'll impress them with your interview or you wont. I think it's a personality thing at this stage more than a competence thing - and basically, I don't think you can make people like you if you're not going to get along. So if it doesn't work out, just sigh and go back to the recruiting goons and hope for a better roll of the dice next time.

And the horse you rode in on
Monday, May 19, 2003

Right, my comments weren't directed at the original poster, nor at anyone looking for work such as the troller with the unpronounceable name who has a different set of issues.

The test was a single page of code and he was just asking you to find 12 obvious errors. How long could it take to fill out? 5 minutes?

What that test is is a reality check. I am always surprised to hear of candidates who look fantastic until they are given a basic competancy test. We sort of wish it was otherwise, but the reality of life is that there are BS-ers out there who talk a great game.  Reality checks can be really useful for getting to the bottom of these guys. If they are really good at the talk and persuasion, maybe go ahead and hire them for sales instead of development!

If you asked me about the test once upon a time I would have told you it was a pointless waste of resources because anyone who had gotten that far along in the recruitment process would certainly get 10, 11, or all 12 of the answers right and therefore the test gave no useful information. But when you come to the shocking realization that a good number of otherwise good looking candidates can't pass it, you realize that it isn't worthless, it does give you good information.

I have sympathy for discussions of whether mastery of technical trivia or seldom used API details, or very difficult coding challenges done on the spot are effective interview tools -- but as far as basic skills goes I say, no, there's no question about that.

Look at the teacher situation. When you see teachers complaining about the worthlessness of literacy tests -- you have got to wonder about those teachers. Can they pass it or not? If it's a piece of cake for them, why don't the just take the test? We are not talking about really hard test about college level stuff they have long since forgotten that does not affect their ability to teach.

Again if you told be they'd be firing 14,000 teachers in New York because they couldn't read and write or didn't have basic knowledge of the courses they were teaching I wouldn't have believed you. I'd have said giving such test was a waste of time and money since certainly not a single teacher would fail them and nothing would have been gained through the process. I was wrong. I'm now glad that they are requiring basic competancy tests. I suppose it's about time!

--

Regarding the disabilities red herring: Sure, folks with special needs just need to make them clear to the interviewer so accomodations can be made. That's a different situation! We don't say that exams in school are worthless just because the small number of  kids with dyslexia need extra consideration.

Dennis Atkins
Monday, May 19, 2003

"I don't think programming ability is significantly improved by practice - I think some people have it, and others dont."

I partially disagree ... I think programming ability IS significantly improved by practice, AND some just have it while others don't.

I know I definitely am better than I was 5-10 years ago.  Even top-level people get better with time.  Definitely John Carmack is better than he was when he first did Doom, and Linus Torvalds is better than when he released the first version of Linux.

Programmer X who now has 5 years experience is almost definitely better than he/she was 5 years ago, and 5 years in the future will be even better than today.  But when comparing programmer X with programmer Y, the years of experience doesn't do much to tell you who is better.

Programming is more like sports (except for the sharp decline that occurs beyond a certain age).  Any particular athlete will usually be better after 5 years of pro experience than they were at 1 year, but comparing years of experience across two different athletes is almost meaningless for determining who is better.

Like sports, programming ability does improve with training and experience, AND some just got it and some don't.

That said, there are some people who reach a low level and stagnate there ... you know, the type who will claim 10 years of experience but it was really the same 1 year repeated 10 times.

T. Norman
Tuesday, May 20, 2003

Dennis, have you never had those moments when you swore a section of code was perfect, yet when you compiled it was full of errors?  Have you never read a sentence that contained "the the" and completely missed the fact?  Missing such details does not indicate if you know how to code or structure a sentence correctly.

Tests based on such "tricks" are flawed.  It might make you feel cosy and competent as the employer, but it doesn't tell you a damn thing about the candidate.

nametag
Tuesday, May 20, 2003

Dennis Atkins,

All your syntax test seems capable of doing is determining whether or not someone really does know the syntax of whatever programming language the test was written in.

Pretend I just passed your technical competency test with flying colors. What comes next?

IMO, there are many people who can pass a syntax test with flying colors, yet they still need to be told what to do on a daily basis.

I am not saying there is anything wrong with asking someone to take a syntax test. What I am saying is that many employers who are looking for a coder would probably be better off hiring a recent college graduate rather than an experienced pro. Of course, if I had a lot of commercial software development experience (rather than customized business software development experience) my opinion would be different.  ;-)

One Programmer's Opinion
Tuesday, May 20, 2003

T. Norman,

In my world, the only sporting event that comes close to what I do for a living would be the decathlon.

If I could find an employer who paid what I consider to be a decent wage and only wanted me to write what they considered to be decent code and nothing else, I would definitely take such a position if it was offered to me. My catch 22 right now is that many employers seem to be interested in hiring newbies for those type of jobs.  :-(

One Programmer's Opinion
Tuesday, May 20, 2003

"Pay them or treat them well and they'll stay. They quit for a reason and you should know what that reason is. --Tom Vu"

It may not just be as simple as that. Really good people need challenges.

Friend of mine has just taken a more than 50% pay cut to go work elsewhere because the money isn't the driving factor; he wants to go where the interesting work is.

I was (until a couple of months ago) willing to take a pay cut to leave here because I was bored. Suddenly things have got interesting[1]; and I want to stick around and see where all this goes.

I've been trying to explain this to a couple of the directors round here; retention is more than just money. Good people can just leave and get work pretty much anywhere. Even in this market they choose employers, not the other way round. Yes, if everyone's being dull, the money decides, but there is a point where not being bored starts being worth quite a lot of money.


[1] possibly in the chinese "interesting times" sense.

Katie Lucas
Tuesday, May 20, 2003

OK, to give people a better picture of the tests I gave our candidates, here's a summary...

1. Firstly, we gave them an A4 page of code. It had one function, with 12 errors. They had ten minutes to spot all the errors. We had, a missing semicolon, an open ended comment, an undefined variable, a semicolon after an if (these were all meant to be easy marks to get you started). Then we had incorrect reference counting on a COM interface, potential overrun of array bounds, failure to open a HANDLE before use, failure to close a HANDLE, an algorithm which did something then didn't use the result and some other stuff I can't remember. The pass mark was 6.

2. Then we gave them a more significant algorithm writing test. We gave them a spec detailing how particular type of data encoding worked, and then asked them to come up with some pseudo code (or flow diagram - whatever) for taking an array and encoding it. They had 30 minutes to read the spec, then I came back, gave them some pointers, then a further 20 minutes to come up with something. It was deliberately not enough time to get the job done. We wanted to see how they approached the problem, not how good their solution was.

3. We gave them a number of verbal questions regard code, things like "What is a deadlock?" and "Can you explain the COM threading model (STAs MTAs etc.)?"


Daniel
Tuesday, May 20, 2003

If your passing grade was 6, would you not rather have the guy that spotted the 5 most significant errors than the one that got the semicolons, the open comment and 3 other simpelton thinghies?
I am not against putting in some "calm the nerves" type of things, just do not take them into account in the eval. or you will seriously blur the results.

Just me (Sir to you)
Tuesday, May 20, 2003

Had someone of only got the five most obscure problems and missed all the ones that a complier would have picked up, I'm sure we would have passed them. However, that didn't happen.

Daniel
Tuesday, May 20, 2003

That's a whole lotta stuff to expect them to find in ten minutes.

Unless the logic errors like the "potential overrun of array bounds" and the "incorrect reference counting" are blatant and obvious, you're going to be rejecting a lot of good people.

How many of your own employees could pass that test?

T. Norman
Tuesday, May 20, 2003

Sorry Daniel, but that's a BS test AFAIAC. If you want something that processes code to check for syntax errors buy a compiler. If you want something that processes code to check for other possible errors buy a static code checked like lint. If you want someone to solve real problems, employ a human being.


Tuesday, May 20, 2003

On an 70 line page, with nice neat formatting, you'll only get about 30 lines of actual code on there. That means there's one error for every two or three lines of code. That also means that you get about 20 seconds to figure out whether each line of code has an error on it. Plus you only have to spot 50% of the errors to pass. I don't think that's unreasonable.

I scored 8. The guy we hired scored 10. I don't know about anyone else.

Daniel
Tuesday, May 20, 2003

What I meant was to give the test to your existing employees and see how many would pass.  If a significant percentage of them don't pass (unless their work involves different languages), it shows that the test isn't indicative of their ability to work at your company.  Unless they're still around even though they stink at their jobs, which means you have bigger problems.

T. Norman
Tuesday, May 20, 2003

Hey Danster, if you regard the white space after MTAs & STAs as etcetera-fill, then I think you should know, in your own mind at least, what you are looking for.  What is it, exactly?

John Aitken
Tuesday, May 20, 2003

All developers had to pass the test to get the job, but I didn't personally interview them so while I don't know their scores, I assume they all passed.

John, are you trying to suggest I don't know how COM's apartment threading model works?

Daniel
Tuesday, May 20, 2003

What I meant BTW is that no other threading (or execution context, or whatever)  model has actually been implemented (to my knowledge), although there was once some thought of doing so.  The concept is slippery because the non-vapour-ware to support it is non-existant.  How about treating the prospective employee as a human being, both for good and ill?

John Aitken
Tuesday, May 20, 2003

I guess I'm talking over boldly.  STAs and MTAs are all I've ever met.  I know there was some talk about RTAs, I don't think they ever happened; I might be wrong.

John Aitken
Tuesday, May 20, 2003

I think a lot of people are making the mistake of assuming that my technical interview process is designed to replace the job of spotting a good developer. It is not.

All of the tests and questions (including the inter-personal interview) are tools that recruiters use to discern whether the person underneath will be any good at producing software. It's not an exact science and the results I get back off any one candidate are only indicative of how good they are at taking my technical interview.

What I'm trying to do, is give the candidate an opportunity to show me what they know. If they can't show me what they know, then I'm not going to hire them. Even if that means I've just rejected a genius who was having an bad day.

When I started out developing software, I would get really annoyed with the systems and processes that my managers would use, most because I could spot flaws in them, but my managers didn't care. What if this happens? Having you thought of such and such? I protested. But they weren't interested. Why? Because they were real people in real situations, and unlike dealing with a compiler, they could afford to fob me off with "that doesn't usually happen". My point is that, so long as people are concerned, there's no such thing as the perfect system and there never will be. Rest assured, I know that my interview strategy is not perfect and I do not use it to completely substitute my job of rooting out talent when I see it. I'm in the business of employing human beings you can never fully measure or categorise a person. Having said that, I'm not going to apologise for make people do tests, and answer questions, if someone knows their stuff, then it’s a chance for them to impress me, if they don’t then the test has done its job. And if they want to work for me, then they'll just have to deal with it.

Daniel
Tuesday, May 20, 2003

>> "It may not just be as simple as that. Really good people need challenges.

Friend of mine has just taken a more than 50% pay cut to go work elsewhere because the money isn't the driving factor; he wants to go where the interesting work is.

I was (until a couple of months ago) willing to take a pay cut to leave here because I was bored. Suddenly things have got interesting[1]; and I want to stick around and see where all this goes.

I've been trying to explain this to a couple of the directors round here; retention is more than just money. Good people can just leave and get work pretty much anywhere. Even in this market they choose employers, not the other way round. Yes, if everyone's being dull, the money decides, but there is a point where not being bored starts being worth quite a lot of money."

The problem is that the term "good" is not defined.  You judge yourself to be "good". "Good" people can't just leave and get work anywhere.  They have to apply just like the rest of us. What defines "good" people anyway?  Experience?  Can't a person out of college be "good"?  Is a person with 10 years of experience "good"?  I think this whole, "If you're good you can get a job anywhere." attitude is pure BS and is mostly displayed by envious, arrogant people.

BFU
Tuesday, May 20, 2003

What defines "good" people anyway?

For us, "good" means that the person provides significantly more output than they require input. 

If I need to create a detailed spec and define absolutely every step necessary to complete the spec, and then answer numerous questions about that spec at every step, then it would have been faster for me to have simply done the work myself.  The person requiring me to do that is not "good". 

A variation on this theme is the person who asks no questions, but "spins their wheels" for several days before admitting they didn't actually understand the task given.  If I need to check what someone is doing more than once a day to ensure that they are a) actually accomplishing something and b) the accomplishment is what I had in mind, then they are not "good".

OTH, if I can say: "the high level spec requires the following feature, the business logic required is x, and we have a set of coding and UI standards - Go!" and then the person comes back a little bit later with something that works and looks good (ideally faster than I would have, but minimally within 130% of the time I would have taken) - that person is "good".

We're a small company and we don't have the cash flow or time to babysit.  Sometimes we do it anyway through free co-op placements (We feel the trade-off in our time is more than sufficient payment).

Can a person out of college be "good"?  Sure.  However, most people straight out of college tend to require some degree of babysitting for whatever reason.  Perhaps they have zero relevant domain knowledge (something you can get before you graduate by doing research, by talking to people in the field, by observation and by volunteer work).  Perhaps they have little or no programming experience outside of the obligatory course work. (Someone in a different thread whined that they couldn't be expected to write an entire application in their spare time.  I would suggest that either becoming involved in an open source application or writing an entire application would be an excellent way to get some experience).

Incidentally, a person straight out of college with no experience would tend to be a flag for me.  I was somewhat unusual in that I started working rather early and managed to accumulate twelve years worth of work experience by the time I graduated, 70% of which was actually in my field, and 50% of which was full-time.  I don't expect a new grad to have the same level of experience I did, but having no experience at all suggests a lack of preparation to me.

Phibian
Tuesday, May 20, 2003

You expect graduates to have just some kind of work experience, or to have experience in the computer field?

A programming or sysadmin job is not something that is commonly available to undergraduates.

T. Norman
Tuesday, May 20, 2003

> If I need to create a detailed spec and define absolutely
> every step necessary to complete the spec, and then
> answer numerous questions about that spec at every
> step, then it would have been faster for me to have
> simply done the work myself.  The person requiring me to
> do that is not "good".

I once had a technical manager as the interface between me and the customer. He talked to the customer, and then came to us and told us what the customer wanted. And we did it, according to his specs.

Then, we went to the customer, for a presentation. And, then, the customer said "That's not what I had in mind".

Some more rounds of talk between our tech manager and the customer, and some more development. And another presentation.

Some more rounds of talk between our tech manager and the customer, and some more development. And yet another presentation.

And then I quit.

My point? If I deliver a half-baked spec to a dev team, I shouldn't be too surprised if their "vision" is somewhat different from mine or from the customer's. I always do my best to do a detailed spec, and define absolutely every step necessary, and then answer questions about it, and incorporate any changes into the spec. This is what is required for me to be good at what I do.

Am I good at what I do? I really don't know. Whenever I think "I've done a good job", something comes along and teaches me a lesson in humility :)
--

"Suravye ninto manshima taishite (Peace favor your sword)" (Shienaran salute)
"Life is a dream from which we all must wake before we can dream again" (Amys, Aiel Wise One)

Paulo Caetano
Tuesday, May 20, 2003

Daniel:

>> I think a lot of people are making the mistake of assuming that my technical interview process is designed to replace the job of spotting a good developer. It is not.
...
>>What I'm trying to do, is give the candidate an opportunity to show me what they know. If they can't show me what they know, then I'm not going to hire them. Even if that means I've just rejected a genius who was having an bad day.

I got your meaning and intent (stated in the first paragraph above) when I read your description of the test.

All you appear to be saying is that you have constructed a VERY rough 'sieve' that disqualifies people who are beyond hopeless. For the people who can find 5 or 6 out of 12 obvious syntax and mechanical errors in source code, you will more intensively examine their abilities. The rest aren't worth interviewing. I agree with your logic. It's excellent.

I think what's really interesting about this sub discussion on your test is the amount of indignation you have aroused by stating that you have an objective "reality check" standard that is fairly impartial.

For one thing, I have seen far, far worse internally created "employment tests" for programmers. One client of mine has a paper 'programming' test that his FTEs must past, that a respected friend of mine walked out on as being demeaning. The point is, many companies have employment screening standards for programmers and techies that are the irrelevancy equivalent of standing on your head, whistling dixie, and juggling poodles. Your test is a paradigm of purpose and intent.

Secondly - it amuses me no end how many programmers proclaim their "professionalism" but who refuse to have *ANY* standard, even a very loose standard, applied to their ability to perform, and who will not even listen to the reason why the standard is in place. A professional ought to be able to perform a nominal task "on demand." Anyone who can't is not in the game. Anyone who won't is probably too uncooperative to be useful to you.

You are SO correct in this standard. It is profound in its simplicity.

I mean, what's your test going to take? 5 minutes? Less? I have had FAR MORE TIME wasted by egotistical local prima donna assholes picking over  minutiae in my background with stupid trick questions who would not even consider what I had achieved or could do for them.

Bored Bystander
Tuesday, May 20, 2003

"You expect graduates to have just some kind of work experience, or to have experience in the computer field?"

Personally, I expect both but the work experience does not have to be in the computer field.  So, the person should have had *a* job sometime recently, if only during the summer doing tree planting. 

In addition, the person should have *some* experience in the computer field.  How to get?  Many undergraduates do not use the resources provided by their university.  Check your local career center before giving up and saying "there are no jobs for undergraduates" (which may or may not be true - the point is you can't know until you've tried...) Another approach is volunteering in the sector you have some interest (http://www.techmentor.ca/ in Canada, http://www.compumentor.org in the US are not bad places to start), getting involved in an open source project, or creating your own project.  You could also try going to career fairs, business shows, entrepreneurship centers, and other networking events to get some ideas about how to get started. These are all perfectly accessible to anyone - undergraduate or not. We're actually pretty lucky in our industry in that it is not that hard to get experience without any input from the cruel, unfair world outside :)

I should emphasize that my requirement for both work and field experience is only a requirement if I am hiring the person.  Depending on how crazy it is around here, we don't expect anything at all from our free co-ops (more than the most basic of computer skills) - it's the compromise I'm willing to make.
---------------
Re: the "that's not what I had in mind" circles - nailing down the basic feature and the business logic in a spec should really fix that (unless you have an indecisive client, in which case the only fixes are patience and draining the client's budget).

Here's an example of a feature that we implemented recently:

Rationale and description:
Certain users are not completing the create work order process for whatever reason.  They are leaving the process before they receive the finalize button.  Client would like us to disable the application menus during the create work order process and provide an explicit cancellation notification.

Logic:

Create new work order
Menu disabled and is replaced with "cancel this work order".

If user selects "cancel this work order", provide "Are you sure?" screen.

Yes - return to create work order screen, reenable menu.
No - return to work order details screen with menu disabled.

A "good" candidate would take this information and add the feature.  At this point I haven't done any extra work that is going to be duplicated by whoever implements the feature.

A "bad" candidate would require me to add:
You should add your code to disable the menu in function x.
The code should use approach abc.

"Cancel this work order" should be a button on the menu and adding this code should be done in function y, using approach xyz.

In order to reenable the menu you will need to do x.  You might need to add column b to the user interface database in order to keep track.  You can access the work order details page at the correct state by using the same code as function z which takes parameters as follows: 1, 2, 3.

Phibian
Tuesday, May 20, 2003

I wonder how many people that are against licensing are in favor of employment tests.  Not that the two are equivalent, I'm just saying I think it'd be an interesting stat.

   
Tuesday, May 20, 2003

One thing licencing would do is to get rid of these ridiculous tests. If there was some known minimum standard that people had satisfied, they wouldn't suffer silly little tests when they went for jobs.

Imagine a lawyer going for a job and being asked to spell-check a document. That's what these code tests are equivalent to.

.
Wednesday, May 21, 2003

Its frequently true that organisations develop the systems and methods of recruiting that give similar  people to those that are already in the organisation.  This isn't necessarily a bad thing and it kind of sounds like that's what Daniel's method (or his company's) provides.  If this gives the right employees in the end then it is right for them.

On the whole, and I've been lucky by and large, I've tended to employ as much on the basis of the individual as on whatever their technical experience.  That colours the way I interview. 

Simon Lucy
Wednesday, May 21, 2003

joe here, I found a company while surfing the net that
lets people create their owen 3d action games,
have you ever thought about making a game of
your owen and selling it ?
It sounds like a good ideal to me,
their located in New York,,,pie in the sky software.
pieskysoft.com
wish you luck,,

joe tungate
Wednesday, June 04, 2003

*  Recent Topics

*  Fog Creek Home