The Joel on Software Discussion Group (CLOSED)

A place to discuss Joel on Software. Now closed.

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
Fog Creek Copilot

The Old Forum

Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Programming is a young man's game, so don’t stay too long

As a programmer you reach your end level in about four years.
After about four years you are at your top in a specific development environment.
(See also references on this site who point this out)
When you have 20 years experience as a programmer,
you are no super experienced top gun, you are just an old farth.
Your problem solving capacities are not bigger then after 5 years experience.
You will not grow anymore. In most organisations your salary will not grow either.
None of the programmers I’ve met had a career plan.

So why would it be attractive to become a programmer when the top is reached
within a few years?
Oh, you do have a career path because you are going to be a software architect?
When you want to be an architect just start spitting out architect documents, skip the programming.
When you want to be director of a construction company there is no added value
in laying bricks for five years. No, you don't have to be a formule I champion to
be the team leader.
The only reason I can think of why someone wants to be a programmer is fun.
You don’t have a plan, you just love what you are doing.

When you are a doctor, member of the board, surgeon, plumber, that's all ok.
But how do we see a 50-year-old visual basic programmer?
I think most readers here on JOS are just fantasising about 25 year old Einstein’s
who think they might get as rich as Bill Gates and do only cool stuff.
They have a nice room with a door that closes in the oh so cool, cool city of NY.

At this moment you are surfing the web probably because you have
a moment of boredom, frustration or both.
If you're job is so cool why are you browsing this site instead of getting things done?
Face it, 1% of us are top-guns and the rest are not ploughing in shitty jobs to get the bills payed.
But even then when you are a super woman, aren’t  you wasting your time on programming or is it really part of a plan?

90 percent of the coding is maintenance. The sex appeal of debugging code from someone
else’s distorted thoughts is minus 20. And that someone else did not execute his own idea
but the idea of some other guy. How low can you get maintaining this crap.

Most programmers have no control over their work. They are told what to do,
which tools they are allowed to use where they have to sit.

Most projects take months to complete. Have you ever been under a tight schedule for
more than a month? Did you feel your stomach?

You will not get rich. Have a nice dream, you are the new Bill Gates.
So stop before your environment wheels that dinosaur out of the office.
In other jobs knowledge becomes obsolete also quite fast but IT is number one I think.

I realise the story is the same for a lot of other professions. But IMHO most programmers are quite intelligent and they do have a lot of options. Best consider programming as a temporary job.

kind regards
Jan from Rotterdam
John Fisher Send private email
Tuesday, September 27, 2005
If you aren't getting better it's your own fault. There's no profession that offers more opportunity for variety and excellence than programming.

To you programming is just a job. So pick another job.
son of parnas
Tuesday, September 27, 2005
Is this meant to be read like poetry? What's with the linefeed for every sentence?
Dennis Forbes Send private email
Tuesday, September 27, 2005
Is Jan from Rotterdam the same person as John Fisher? If not, who's John Fisher?
John Topley Send private email
Tuesday, September 27, 2005
I agree with the essence of the posting. After about 8 or 10 years of development experience, you better have your own shop, be in a specialized field, or plan some other career. Beyond a point, more experience becomes a liability, rather than an asset. IT is becoming rapidly commoditized, you've got to bring more than just programming skills to the table. I think this trend will get increasingly prevalent in the future.
Tuesday, September 27, 2005
Gottit. It's the lyrics from the latest "Architects of Disaster" disc, right?
revert my buffer
Tuesday, September 27, 2005
all is explained ... he did SAP and then Java ...
revert my buffer
Tuesday, September 27, 2005
It all depends what you actually want. If you want to get rich, well yes maybe programming is not the way to go. If you want to do something you like, and that happens to be programming, then by all means stick with it. A 50 year old VB programmer is probably an understatement. If you're at that age and doing VB, I would hardly imagine that's all you've done.

I think in the long run, what matters is not age or experience, but value and flexibility. If your work is worth your salary and remain up-to-date with the industry, I don't see why someone wouldn't have a succesful career.
Tuesday, September 27, 2005
"As a programmer you reach your end level in about four years."

It takes four years to get to beginner-level.
It takes ten years to become a reasonably good allround developer (only when you have talent and work hard).

From there onwards, you start learning the "extra's" that make you valuable in a specific field. After about twenty years, if you have talent and worked hard, you have become a kind of wizard-brainsurgeoun who can "perform miracles" a company that recognizes this, will pay the appropriate salary.

Nowadays, many of those older programmers start their own company on the side, simply because they have reached the level of expertise where it became possible for them to do so.

Four years is perhaps the time needed to become a database-weenie, but we don't live in the COBOL era any more. Developers which are at their peak four years after they started don't take the profession seriously. It takes four years just to become really proficient at OOP, four years is just enough to get from clueless to beginner.

Perhaps you have a high opinion of yourself as a programmer, thinking that you know everything after a mere four years, or maybe you are of the pointy-haired persuasion and think that software development is a piece of cake and can be fully mastered in a handfull of years - well, you're wrong.
Frank de Groot Send private email
Tuesday, September 27, 2005
There aren't many professions where you can fairly easily earn $60k/yr to $120k/year with no formal training and no certificates.  You just need to actually be GOOD at it.  An it's easily demonstrable with your own project.

There are few other professions so focused on actual merit, other than perhaps certain aspecs of marketing, or the arts (painting, graphics, music --in some cases) or if you work for yourself.  And I can't think of an easier way to build a product than software.  (I specifically chose software over hardware for that reason).

Now, the sw industry isn't perfect. When I first applied for jobs they all wanted 3 years DB experience, etc.  And you have to contend with the buzzword filters from HR.
Mr. Analogy {Shrinkwrap ISV} Send private email
Tuesday, September 27, 2005
I agree with Frank, that one can continually improve one's software development skills for 20 years.

However, from a career perspective, that is immaterial if companies/management don't care about the additional skills gained in those last 15 years or so. I have had many interviews where the hiring manager says, "I don't care about the elegance of the code, I just care that it works." Well, I can sympathize with that perspective, but in many cases the crappiness of the code doesn't manifest itself for years down the road. Or maybe, on the other hand, it never manifests itself!

Hence to these managers, a 4-year guy is as valuable as a 20-year guy. And I think that sometimes, in some cases, they have a point. And even when they don't have a point, the negative consequences of hiring a cheap guy don't manifest themselves for a long time, whereas the positive consequences manifest themselves immediately on the bottom line.
Impatient Send private email
Tuesday, September 27, 2005
"Impatient" - You have a point.

However, the great thing about the Internet is that nowadays, a developer that has spent 20 years honing his or her skills, has an alternative: µISV-dom.

If you /really/ are so good after those twenty years, then go ahead and fill a niche. Especially those developers that are confronted with management that doesn't recognize their abilities should invest some spare time in a product that they can market through their own website.
Frank de Groot Send private email
Tuesday, September 27, 2005
Programming is nothing more than a tool to get something done. If you are a programmer or while you are programming, then you function as that tool.

If all you do is program for 20 years, basically you have one year of experience repeated 20 times. Your value doesn't increase but mostly decreases over time because you get salary increases. This can be mitigated to a degree, in the short run, with domain experience.

Making lots of money has nothing to do with IT, it's all about business. And business uses tools to make that buck.
Stacy Murray Send private email
Tuesday, September 27, 2005
"If all you do is program for 20 years, basically you have one year of experience repeated 20 times."


If you program the same stuff for 20 years, yes. Who does? Would you?
Frank de Groot Send private email
Tuesday, September 27, 2005
"Your value doesn't increase but mostly decreases over time because you get salary increases. This can be mitigated to a degree, in the short run, with domain experience."

You are forgetting that older programmers:

1. Produce much less bugs per LOC,

2. Write more efficient software,

3. Are better at debugging,

4. Communicate better with customers, management and colleagues,

5. Have a larger personal codebase to draw upon,

6. Generally have learned to document their code well (out of neccessity - older coders sometimes have to fix ten year old bugs)

7. Are much better in planning, refactoring discipline and avoiding the "coolness factor" (solving mundane problems with the vogue of the day, thereby often introducing a maintenance nightmare)

etc. etc.

All this is extremely valuable. An older coder is often several TIMES more productive than a younger coder, making him/her, even on double the salary, a bargain.
Frank de Groot Send private email
Tuesday, September 27, 2005

After four years there is no relation between experience and being more or less productive. Joel somewhere linked to an investigation telling this.
We saw that the summer interns from JOS delivered a working product good enough to ship and sell.
When you want to start your own company you don't need to have all the nuts and bolts experience yourself. Much more important are your selling/social capacities. Reading a few good books is enough to get started as a wannebee manager. What am I going to do with the detailed knowledge of programming. Take the short cut, you don't need it. This is something else then being clueless about software development. For a real developer who considers development a religion :) a manager without a lot of programming experience is probably a nono.

Mr Analogy,
I agree, there are lot of chances without formal education. But how's that when you have a 'track record of success' and excellent results on a top rank university?
In that case you have all the options you can think of.
I think you better choose an other profession then joining the crowd of over-intelligent, frustrated, underpayed, stressed, unappreciated people who develop software and rant about their boss being an incompetent dombo :)
John Fisher Send private email
Tuesday, September 27, 2005

I agree there is an experience factor here that increases a programmer's value over time. However, at the same time, I feel that's mostly a short run factor. After 20 years of "just" doing programming, the business value of that person would have increased substantially if that programmer learned other areas of the company like, tech support, marketing, operations, etc. Without substantial broadening beyond just programming, those people can be easily replaced at a lower cost to the company.
Stacy Murray Send private email
Tuesday, September 27, 2005
Yeah, sure, I know just as much as I did 30 years ago, no more, no less.

I apologize for my existence.
Tuesday, September 27, 2005
Doing the death mark on someone else's project is a young (and possibly naive) man's game.  If you repeat that mistake over and over, then yes, at 20 years experience you won't be worth more than a 4 year guy, mostly because you are jaded, angry and a general pain to work with. 

Everyone should have a career plan.  That plan should set you up for retirement.  You have choices.  You can work for someone else, pay your 401K and retire when you are 67 (or later depending on what congress does with social security).  You can start your own business and make money that way (either through product sales, consulting, or some combination along with the possibility of selling the business if you construct it properly).  In either case, you should have a plan.  It should have an exit strategy.  My plan is to constantly improve (year over year) my financial position so that I can retire as quickly as is humanly possible.  Improvement is the key stone.  If you aren't improving, if you are moving forward, then you are dead in the water.  That is when you aren't worth  more than someone who is improving but has 15 years less experience.
Joshua Volz Send private email
Tuesday, September 27, 2005
In general, it may be true that comparing random programmer X who has 4 years experience with programmer Y who has 10 years experience won't show much of a difference.

However, comparing programmer X with 4 years experience vs. programmer X with 10 years experience (i.e. the same programmer 6 years later) almost always will show a big improvement.  Even the klutziest programmer is significantly better than he/she was 5-10 years ago (usually, but not always).

It's like pro sports.  An 18-year-old rookie can be better than many of the 7-year veterans, but the same 7-year veterans are better today than they used to be as rookies.

Moral: Programmers do continue to improve after 10 or 20 years, but they are improving over their younger selves, not necessarily becoming better than *other* programmers with less experience.
Tuesday, September 27, 2005
Bah, plenty of older programmers are happy and make meaningful contributions.

There are a lot of morons out there passing themsleves off as a programmers. These are the guys that make no effort to improve their skills and then wonder why they can't find a job with their oh-so-uber VB 3.0 and Access programming skills.

I've seen plenty of young dolts who are horrible programmers who will certainly wind up being an older programmer who can't find a job.

I've also seen many older programmers who have a passion for what they do and the experience and skills to go with it. I personally don't know a single one who isn't in demand today. It's true that some companies hire developers soley on age, but those aren't the companies experienced programmers want to work for anyway because they are almost always a cluster** of an operation.

Bottom line: People that suck at programming and/or are lazy will certainly end up with limited career options eventually.
Mark Hoffman Send private email
Tuesday, September 27, 2005

I do have a BS in Electrical Engineering with a speciality in Telecom engineering, from a college very well respected for telecom engineering.

I made far more money as a programmer/tech support person at my second job, and even more (finally,now) with my own ISV. Which just proves that even EE's can be under paid, right?

I do agree that you need more than just PROGRAMMING to increase your value. But the it's the company's responsibility to fill each position with the "cheapest person that will work". Unless you're a CEO. Or the head of FEMA. (Well, maybe FEMA DID pick the cheapest person.)

Many white collar middle managers are finding they're overqualified.

If you have demonstrable extra value that you can quantiify in dollars and your boss cares about dollars, or one of these premises is false.  (I have known of bosses who didn't care about dollars, BTW).

(BTW, if it's that your boss just refuses to believe, time to PROVE them wrong. Start your own ISV, or become a consultant).

Success is the best revenge. That reminds me, I need to mail out some postcards to some old employers ;-)
Mr. Analogy {Shrinkwrap ISV} Send private email
Tuesday, September 27, 2005
>> comparing programmer X with 4 years experience vs. programmer X with 10 years experience (i.e. the same programmer 6 years later) almost always will show a big improvement <<

The sad reality is that corporations are no longer very willing to pay a premium for that "improvement". As a friend of mine working at a top consulting company recently remarked - It doesn't have to be good anymore, it just has to be good enough!
Tuesday, September 27, 2005
"As a programmer you reach your end level in about four years."

Someone should tell all these companies requiremeing 10-15 years programming experience they're wasting their money.

Who gave this guy an Internet connection?
Peter Ritchie Send private email
Tuesday, September 27, 2005
"Most programmers have no control over their work. They are told what to do,
which tools they are allowed to use where they have to sit."

I agree.

I also agree with some other posts that after 8-10 years, you should be specialized. The alternative is going the consulting route and whatever your throw at me I can solve, regardless of the environment.

I wouldn't tell people not to do it. Just realize what you're getting into.

Software Development certainly is not what I thought it would be! The majority of my experience have been maintenance, not creating apps from scratch. But, it pays the bills.

Have I thought about a change? Yeah! I figure in 2 years I should either (a) be in a Team Lead Role (b) be a consultant (c) be headed to a career switch to become a CFP.
Patrick Send private email
Tuesday, September 27, 2005
This will probably sound dramatic and self-agrandizing, but I prefer to look at it not that I program, but rather that I solve problems using technology and usually involving some kind of programming language.

If that is a fair perspective, then more years means a wider range of problems solved, and a greater number of successes with which to add weight to your opinions and instincts.

It feels natural to me to see the intangible talents like problem solving, requirements analysis, and inter-personal communication as the differentiating factors between a *good* programmer (in the sense of someone you want to employ) and a mediocre one.
Clay Whipkey Send private email
Tuesday, September 27, 2005
This thread is a great example of how programmers' own attitudes work to diminish our status.

Do you know of any other occupation (except maybe platform diving) where most of the practitioners are glad to say they have no future work.

That's what saying after N years, or X.YZ years in floating point, we don't get any better, or you better find a new job by the time you hit 30.
Getting annoyed now
Tuesday, September 27, 2005
The original poster has the right idea.

I'm a software engineer ("senior" is in my official title), just turned 30, make over 6 figures, and am completely, and utterly depressed by my job.  Why?  Because there is no career path, and it feels like a dead end.  I move from one poorly managed, frustrating project to another.  I'm hardly learning anything new.  (Anything new that I learn is mostly on my own time.)

My problem solving capabilities are way better than any of the older guys. They all come to ME for help.  Most of them are in their late 40's and totally burnt out.  That's not how I want to be.

(On the positive side, I am saving thousands of dollars each month and am eventually going to open my own firm.)
Tuesday, September 27, 2005
The career paths at the large companies (CSC, Lockheed, etc) are well defined, and after "Senior Software Engineer" and equivalent, you can either take the management or sales engineer track, or stay in engineering and algorithm development up through Sr. Scientist.
Tuesday, September 27, 2005
Then comes a "10000 jobs cut" and you are gone.

How often do you "sell" yourself? I hope it's pretty often, so you can achieve "heaven". :-)
Tuesday, September 27, 2005
Stacy, you sound like you don't know much about software development.

If you're a dumb accountant or maybe an "IT Professional," then you might think that fiddling with Excel macros constitutes programming, and that expertise won't increase beyond the first year.

In the real world, though, where smart developers write software, the learning curve is intense for the first seven years or so, and then never stops. 

So before you start talking about software development, do yourself a favour and talk to some experts.

To the OP, I'm not sure what your point is. Are you advising smart people to avoid programming because of poor rewards? If so, there's some merit to that view. However in that sense programming is no different from all the other professions out there.

But I think programming is actually better than that, and offers exciting prospects for enough people to be worth pursuing.
Tuesday, September 27, 2005
Just turned 45. Just hitting my stride. Just realizing how little I know. If you don't love what you do then yeah, get out regrdless of age. If you love, I mean LOVE it, stay as long as you like, there's plenty of opportunities for folks like you. If this is not your reality, then I would assume that you'd really rather be doing something else.
Wednesday, September 28, 2005
There's something fundamentally wrong in this thread. It's the "career" thing. Get your priorities straight. What is important in life? What do you strive for? Is it worth it?

So what if you manage to build a so-called career. Who cares? You're going to die anyway, maybe today, maybe tomorrow, maybe when you're a hundred years old. So what if you're a hundred years old, and you still haven't lost all of your memory, you look back and think "yes, I had a career". SO WHAT? What difference did it make? Was it worth it? You're STILL going to die. Then what?
Half full name
Wednesday, September 28, 2005
Hey! Watch who you are calling an old farth.
Sheldon Lavine
Wednesday, September 28, 2005
Frank de Groot is bang on. I'm doing stuff now that I don't think I'd have even got near when my career was 4 years old, and I don't think I've met many that could.

The only frustration that does coem up is that just about everything is possible, bur few employers understand the timescales involved in doing things well. That includes the time it takes to understand a complex system to the point where you can attack just about any bug on it.

Wednesday, September 28, 2005
I think the catch is that with programming professional growth doesn't easily translate to career growth. This is real problem with unpleasant practical consequences, regardles of whether you a're careerist or not.
Wednesday, September 28, 2005
I know guys who have been working in the same project for 7+ years. They are completely bored and demoralized, because they know that nothing new or interesting lies around the corner.
Wednesday, September 28, 2005
There's nothing stopping a programmer continuing to hone his or her talents throughout a normal working life. However, what I see is that although a genuinely self-motivated programmer that would do that is rare, the companies and positions that value that sort of person are even rarer. If you can't move into management/architecture or general consulting then you aren't going to see any increase in pay that reflects 10+ years of experience in most jobs, simply because there is no perceived value to the business from that experience.

 Bearing in mind that management culture is commonly poisonous to the sort of person who makes a good developer, that consulting success is often dependent on the sort of nudge and wink dealing that we're famously poor at and that becoming an architect will generally result in you being ostracised from the hacker clan, the general cynicism of the OP is probably justified, even if the specifics of the argument are obscure and/or wrong.
Wednesday, September 28, 2005

I've been developing software since 1971 as a young aerospace engineer predicting aerodynamics of space vehicles. We used punched cards back then :). I'm programming in c# today. However, my views reflect far more the business side of things than that of a programmer with a job.

I personally experience the learning curve you speak of but still depreciate the same, in an appropriate way, when faced with business decisions. I see software as a tool "only" to meet business objectives and not an end unto itself. The person doing the programming needs to expand beyond that job function to grow with the "company." Although there may be intense personal growth in the programming space, and that's good, that function could be supplanted with a lower cost alternative in the future.

You see, programmers (P) compete with other programmers (P). Tech support folks (TS) compete with other TS folks. Sales folks (S) compete with other S folks. So as soon as a cheaper alternative come around, they may be out the door. Now, the position programmers need to be in so this does not happen to them, is to become a combined (P)(TS)(S) employee whenever you can. It makes you unique and without competition to be replaced. In other words, you need to grow outside your silo. Note that mature companies like to prevent you from doing this while emerging companies depend on this. I say this as a pseudo-logic but I think you will get my point.
Stacy Murray Send private email
Wednesday, September 28, 2005
I turned 40 this year and have been programming at a major corporation for 15 years. Currently, I'm using Java EJB with Weblogic, etc. but I started in 1990 as a COBOL programmer. After so many years of programming I realize the best way to add value is to develop skills as a project leader. I've worked with many very smart programmers, but they couldn't lead a project from start to finish. They could code anything you wanted but ask them to create a project schedule, track progress, present a status report, and they can't or won't do it. Think of it this way: I can get any reasonable person to hammer a nail into a piece of wood, but I can't get just anybody to be an architect.

P.S. Big coporations have a way of taking the fun out of programming with bureaucracy, politics, etc. Work for a small or medium sized companies as long as possible.
Wednesday, September 28, 2005
At thirty I think life is just beginning. In grade school I studied all the science I could dig up. I was exempt from 3 college science classes due to my high school load. I got bored. College science was just the same as high school but with more in depth sample problems like those mentioned in another recent thread. I studied Art and Psychology. Pottery doesn't exactly pay the bills so I got into communication design. I had no prior interest in programming or software engineering. I learned some HTML. Then JavaScript. Then Java. Then some other languages. I also learned Piano and Guitar. While I might have mastered algorithms and OOP, It will be a long time before I've mastered the appropriate use of computer science and technology in any given situation and I believe it’s essential to balance that with a broader view. It's fascinating and I love it. I don't regret not learning a computer language when I was young. I'm glad programming and engineering is not the only thing I do. I whole heartedly agree with the OP.
Thursday, September 29, 2005
If you're getting paid anywhere above min. wage plus a couple pennies for coding - get in line early and get ready to move to India or meet your replacement and try to understand him/her. :)
matt Send private email
Sunday, October 02, 2005
Frank -

I've been a database developer/architect for sometime now. I am curious how many years I need to become a Principal database-weenie. ;)
David Rydzewski Send private email
Monday, October 03, 2005

I wonder how many of these individuals with such a negative attitude about their careers are facing unemployment for one reason or another (#1: attitude?)

I currently am facing that situation and am currently looking at getting another job right away. I love what I do and even though I may move from job to job, I still love what I do and I try to do the best I can at that job.

When I was sitting at a friend's Radio Shack store and working on a TRS-80 doing BASIC (very basic) stuff, I fell in love with making a computer do things. I then went into the army as an MP. I had dreams of being a cop when I got out. I found out that I hated it. (I do espect the men of the badge though and understand where some of the negative press comes from) I went into social work for about 8 years. I hated it. (I love the people I worked with though...) I went into programming... (full circle) I love it.

The point I guess I'm trying to make is this: If you don't like it don't do it. Nobody is twisting your arm to stay in a career or job you don't like. Just do us all a favor: stop pushing your negative clap-trap on everyone trying to drag others down your spiralling pit of despair with you.


Now I may be wrong on all of the above, maybe someone is trying to push others out of the IT industry so he/she can get a job they DO love... ;)

As far as being useless after 10 years, why am I getting a lot of interviews and I turn jobs down? Hmm? (The silence is deafening...)
I am constantly learning something new everyday. I WANT to learn something new everyday. Even if it isn't related to programming, I STILL LEARN SOMETHING EVERYDAY!

If you think you can't learn anything after 4 years, you must have suffered some type of brain damage that limits your capacity to retain data. Reminds me of the Dilbert cartoon...


Wally: In this weeks Wally Report, I'll discuss my serious threat to productivity. By Tuesday my brain was so full that I had to forget things to make room for new things.

Pointy-haired Boss: Wally, I have some information for you.

Wally: Great. I'll just forget the fifth grade.

John M. Baughman
Wednesday, October 05, 2005
There is a conflict here that every one is missing.  It is the the conflict between 2 career expectations.

Many people have the kind of ambition that makes them want to be constantly promoted.  They want more responsibility, more authority, more power.  And they want the money that comes with it.

Others simply love what they do and want to keep doing it as long as possible.  Many programmers fall into this group.

The first group sees programming as a dead end, because you are limited in your salary range if you stay in a techincal role.

Programmers  don't see it as a dead-end job, because they are not motivated by a possible promotion.  They are motivated by having interesting problems to solve, learning new programming tools, playing with new technology.

Unfortunately, the first group often manages the second group, and doesn't understand their motivations.

I am a programmer.  I have been with my company 15 years.  I do not want to be a manager or a team leader.  I am perfectly aware that this limits my salary range, and I am fine with it.

If you want to move up in a corporation, and make more money, learn skills outside programming.  HOWEVER, if you dont want to do this, management should understand it and allow you to stay where you are, as long as you are cost effective.
Scott Messinger Send private email
Monday, October 10, 2005

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz