Fog Creek Software
Discussion Board




Experience

How important is experience for coding? How much better is 10 years than 2 years, 20 years than 10 years? Does it just depend on the person?
There are 2 old programmers where I work who must have a lot of experience, in terms of years, but who are not respected. One isn't any good (I've heard) and the other hasn't learned anything new since the 60s.
I have about 8 years of experience now and I think I'm much better than I was at 2 years or at 5 years. I feel that I constantly improve. But maybe that's just an illusion. On the other hand I don't have quite the level of enthusiasm I had at the beginning. But it's made up for, I think, by being better organized and just knowing a lot more.

The Real PC
Tuesday, April 22, 2003

It really depends on the person.

There are people with 10 years of experience.

And there are people with 1 year of experience 10 times.

I've met both. It's fairly easy in this business to just get in a run and do the same thing, the same way, over and over, and failing the same way, over and over, and just not caring.

Chris Tavares
Tuesday, April 22, 2003

Unfortunately, experience is often an "HR filter", like degree, that does not clearly or accurately relate to how well the person can do the job at hand.

Brad Wilson (dotnetguy.techieswithcats.com)
Tuesday, April 22, 2003

Dave, the best of luck. People like you deserve to be doing well and I hope you do.

I think the future for enterprising programmers now will be to create your own useful things and market them directly, skipping the period of working for other companies.

That seems to be one effect of the changes we've seen.


Tuesday, April 22, 2003

The Real PC wrote, "How important is experience for coding?"

Depends on what you mean by coding. Are you talking about coding where you are given the solution (possibly a high level spec) and you simply have to come up with a low-level computer version of the solution. Are you talking about coding where someone asks you to solve a problem and you have to come up with the proper design and code the solution as well. Are you referring to coding and design work that is typically done by:
* A commercial software developer?
* An Open Source Software developer?
* An embedded software developer?
* A web developer?
* A client/server developer?
* A desktop developer?
* A mainframe programmer?
* Blah, blah, blah.

During an job interview, if I wrote some source code for you to examine and you thought it was readable and supportable would that be enough for you to recommend to your employer that they should hire me? If so, why? What if I don't know:

* How to design and implement a database
* How to write a requirements document
* How to create what you consider to be a decent Graphical User Interface
* Anything about design patterns
* And the list goes on and on and on....


The Real PC wrote, "How much better is 10 years than 2 years, 20 years than 10 years?"

Typically the more years you have under your belt the more cynical you tend to be about what you do for a living beyond that I would need to read your definition of better. 

In the early 1990s, I was able to cut new code and patch old code that was written in PL/I (a mainframe programming language) after two days of intensive study because to me the syntax looked a lot like C/C++ -- something that I had prior experience with. Note: it has been many years since I wrote a big iron application. I doubt that I would be capable of writing a decent COBOL business application today without someone handing me a very detailed spec and giving me lots of time to complete it. Why? Because in the intervening years, I have had to make room in my head for OOA/OOD/OOP concepts along with many many many other things.

Question: if the two "old programmers" you mentioned in your post are NOT considered to be any good/useful by most of your co-workers then why does your employer keep them around?


Chris Tavares wrote, "And there are people with 1 year of experience 10 times."

I have to say that I haven't run into too many people with this type of experience lately. I have run into quite a few people who only know how to write a certain type of business application (desktop, web-based, etc.) and/or only know how to write source code using a particular programming language.


Chris Tavares wrote, "It's fairly easy in this business to just get in a run and do the same thing, the same way, over and over, and failing the same way, over and over, and just not caring."

Where can I find one of those jobs? I would like to be able to put in my eight hours each day and not have to worry about getting the boot. I think that type of job would be great since it would allow me to spend more time enjoying other aspects of my life.  :-)

One Programmer's Opinion
Tuesday, April 22, 2003

"Where can I find one of those jobs?"

at a University.

choppy
Tuesday, April 22, 2003

Most incompetent people are kept around because it's not the done thing to point out to management exactly how useless one of your co-workers is.

At least that's my experience.

And the horse you rode in on
Wednesday, April 23, 2003

'Question: if the two "old programmers" you mentioned in your post are NOT considered to be any good/useful by most of your co-workers then why does your employer keep them around?'

Legacy applications.  Sometimes they are the only people around who understand the mainframe or DOS application that was developed in-house 15 years ago. However, they often do get canned once the company moves off the mainframe (or other legacy platform) totally.

It's not that they can just do the same thing year after year and not worry about "getting the boot."  They often do get the boot, but they don't care about learning anything new to prevent it.  But there are many of them still hanging around because the company still needs them for the moment.

That describes those who are competent in just one thing - but there still are those who are totally incompetent.  They hang around because management really doesn't know who is good or bad.  The good programmers end up cleaning up the mess that was made by the bad programmers on their team, and the project is successful and management gets the credit and they don't realize or don't care why it was successful and why it so easily could have failed miserably.

T. Norman
Wednesday, April 23, 2003

' "Where can I find one of those jobs?" '

"at a University. '"

I second that; I work at one.  This is a good place if you want flexible deadlines, job security, and freedom to experiment with new technologies.  Along with this comes low pay, though, so you have to pick your priorities.

Kyralessa
Wednesday, April 23, 2003

Me too.
It can be great, if you don't mind seeing some peoplle doing nothing and others doing everything. The ones who do everything get paid more than the ones who do nothing, but the difference is probably less than it should be.

The Real PC
Wednesday, April 23, 2003

I think that it's useful to make a distinction between experience with a particular language/product/environment and general experience as a software developer.

For experience with particular languages/products/environments (e.g. C, Oracle DB, Windows, etc, etc) I think that experience does "max out" at some point. We can argue about exactly where, but I'd say somewhere between two and five years. So a person with ten years of, say, C++ programming experience isn't going to be any better than someone with five years of C++ programming experience, *at the details of the C++ lanugage*.

But, as some of the other posters have pointed out, there is a separate, vaguely defined body of knowledge about software development in general. That includes things like how to gather requirements and express them, how to approach problems, how to deal with idiot managers, etc.

In this second, general area of experience as a software developer, I think that this should increase throughout a developer's career; so someone with more experience should be better. But with one big caveat: only so long as the developer remains open to learning and growing.

Bill Tomlinson
Wednesday, April 23, 2003

According to some psychology research. no one becomes an expert at anything until they have about 10 years of experience. This is supposed to be true whether the task is simple or complex. Factory workers were studied, and also the lives of geniuses. The geniuses seemed to reach some new level every 10 years.
According to that theory, a person who did nothing but C++ coding, for example, would keep on getting better and faster, and this would not start to level out before 10 years.
A person with a more complex job, including design, etc., might reach new stages of expertise every 10 years, maybe involving innovative approaches.
I have no idea if this theory is true in general, but I suspect there is truth in it.

The Real PC
Wednesday, April 23, 2003

2 years is better than 10 years. You'll generally get way too much baggage with the 10 year person.

pb
Wednesday, April 23, 2003

[You'll generally get way too much baggage with the 10 year person. ]

Yeah, they'll demand that you treat them like a person instead of like a slave and we can't have that. I'd rather have the wet behind the ears newbie writing my mission critical application because those with experience have their own opinions.

trollbooth
Wednesday, April 23, 2003

"at a University. '"

" I second that;...Along with this comes low pay..."


Unless you choose a private University with a huge endowment.

choppy
Wednesday, April 23, 2003

...but she told me size didn't matter...

Philo

Philo
Wednesday, April 23, 2003

I've got about 1000 spams in my spambox that tell me otherwise... ;-)

choppy
Wednesday, April 23, 2003

There's plenty of wet behind the ears 10 year "veterans" too.

That assumption that everyone who does something for a long time has learnt from it displays far too much faith in humanity for my liking.

And the horse you rode in on
Thursday, April 24, 2003

I'd agree with what's been said about about "experience" being just an HR filter. It's too vague to give any real meaning.

A better indicator of how good you are is how many projects you've worked on and what your contribution was. Even if they weren't successful, that's still okay, as long as long as you've learned from your mistakes and don't make the same one again.

Better than being unemployed...
Thursday, April 24, 2003

Doesn't the # of projects worked on correlate with # of years?
There is no perfect measure of ability, and I'm not even suggesting experience is one. But experience, degrees, # of projects, # of skills, etc. should all add up, typically, to give some vague estimate of a person's ability.
There are other important factors like personality type, natural creativity and intelligence, etc.

The Real PC
Thursday, April 24, 2003

[That assumption that everyone who does something for a long time has learnt from it displays far too much faith in humanity for my liking. ]

No hiring decision happens in a blackbox with candidates hired simply on their experience alone.

But I'll take my chances and bet on experience. It's not about faith in humanity, it's about the probability that the candidate with experience will be better in this industry than someone without. I don't think this needs to be proven as the history and evidence sustaining the value of experience is too large to refute. Whole social and economic structures are based on such assumptions. There will be exceptions of course, all assumptions have exceptions, but empirical evidence proves the value of experience in a job situation.

When you go to a doctor would you rather have a doctor with 10+ years of experience or 2? How about a mechanic? A lawyer? Architect? Given no other qualities to determine one over the other which one would you have more confidence in?

Ian Stallings
Thursday, April 24, 2003

That's right. No professional with only 2 years experience would be trusted doing anything important without supervision.

The Real PC
Thursday, April 24, 2003

*  Recent Topics

*  Fog Creek Home