Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Coding Forever?


CareersSpring99: Coding Forever?

Think twice about how you want to spend the rest of your life

John is the author of Visual C++ MFC Programming by Example (R&D Books, 1999). He can be contacted at jeswanke @yahoo.com.


Where Not to Consult


You've just spent four or five years studying everything from reliable data structures to advanced operating systems, from Pascal to Java. The job market is so hot you've had six or seven offers to design and code software for suites of applications. You've already written some great experimental stuff but you're anxious to write something people will pay money for. But before you actually nail your first project or live your first weekend at work, ask yourself -- what was it you really wanted to do with your life?

Did you really plan to make coding your life-long career? Or, if you've even thought that far ahead, did you really envision yourself someday smoking large cigars at board meetings, or sitting on a yacht in Pago Pago, or teaching Pascal to a new generation of challenged students such as yourself.

Let's look at the options.

A Life Spent Coding: Software Takes its Toll

As exciting as a career in coding can be, its demands don't generally suit someone approaching their golden years. In other words, do you really see yourself living on candy and Jolt until the cleaning crew goes home at the respectable age of 57?

Yes, with added years comes experience and you gradually don't need as much time or effort to complete a project. And yes, you also tend to switch to yogurt and herbal teas. There is still one hurdle that some software engineers can't make year after year.

In this profession -- perhaps more than in any other -- you are expected to retrain yourself continually. You can forget Pascal and Fortran the minute you walk off campus. C usage is only important because C++ and Java borrow heavily from it. ANSI C++ has only been around for eight years and Java has already outdated it. What language will be next?

Then there are the operating systems: VMS, DOS, UNIX, Windows 3.1, Windows NT, Linux. As soon as you've mastered one, it's suddenly not fit to run Solitaire on compared to the next greatest system. Then there are the development environments and libraries and other alphabets that make up this profession: HTML, XML, Perl, UML, ODBC, MFC, COM, TAPI, SNMP, TCP/IP, STL, RISC, and OOP, all of which came out in the last 10 years and all of which may go the way of character editors, RSX-11M, 8080s, CodeView, and spaghetti code in another 10 years. Can you keep up?

Another consideration to a life in coding is that most employers haven't made provisions for it. While they have a system in place to promote managers all the way to the top, there's usually no similar technical path. Meaning if you stay in technology you will hit a promotion plateau. Particularly bright individuals might find themselves achieving their company's highest job title, typically lead engineer or "King of the Geeks" (just kidding), at the age of 28. Unless you then go into management, you're stuck with the prospect of having the same title and so-so raises until retirement. You can keep up with what the market is paying programmers by changing jobs every three to four years, but you'll typically never get a better title or a window office.

And even if you believe you can reinvent yourself every 10 years or so, not many companies will share that belief when you go to change jobs toward your fifties. Even your own company, if it lasts that long, will be leery about keeping you through its yearly economic "corrections."

So what are the other prospects?

Be the Boss

There are many positives to being the boss. Not only do you tend not to lay yourself off, but your prospects have no limits. Even if you don't rise to the top, you typically get the window office and $20K to $30K more per year than you would as a programmer. (Incidentally, all the statistics presented here are courtesy of a 1996 Department of Labor survey, which you can find at http://www.bls.gov/ oeshome.htm.)

You still need to keep current with technology, but at a much more abstract level. You can go to exciting conferences and come up with great ideas and leave the stress of learning and coping with the boring details to your minion. As one of my former bosses told me, he discovered that as a programmer he could handle only one aspect of a problem, but as a manager he could orchestrate the entire solution. The window office probably didn't hurt.

Most of all, the demands of management do suit someone approaching their golden years. Patience, experience, and a parental presence are all qualities you expect from a boss. In other words, you could see yourself smoking cigars at a boardroom meeting right up to retirement age.

Once you cross the line, however, you do give up any marketability you had as a programmer. Not only does technology move on, but you tend to forget even the stuff you used to know. I discovered that the same boss who found fulfillment as an orchestrator of programmers couldn't even explain his own code to me two years later. There are cases of managers who try to keep a foot in it, but their attempt never lasts. They either forget it all, or give up on management, or make lousy bosses.

Of course, those that give up on management may also not have had the skills for that job. You need to play the game. You have to deal with people at their worst. You have to endure long, materially empty meetings, and phrasing everything in the positive (Yes: "We've decided to push the schedule back six months to add new features." No: "I hear it's got more bugs than a bee hive.") There will be times when you'll feel like you're in a row boat in a hurricane without paddles: Your upper boss needs the schedule immediately but your people say it's impossible, and you can't help because you've forgotten how to code.

Not everyone is called to the job. Openings may be scarce. The line of succession may be filled with people who aren't going anywhere unless there's a layoff, in which case middle managers usually get whacked. Yet another downside to managing.

So what are the other options?

Hire Yourself Part I: Self Publishing

If you are really good at coding and you come up with a great idea (off the company meter of course), you can try self publishing. There's no age discrimination. You're automatically hired and never fired. You can decide what to write and any applications you create belong to you and not some corporation. You can make your own hours and the potential is there to make millions.

The downside? You're not just coding anymore. Now you have to be concerned with marketing and sales, bookkeeping and, yes, even hiring. Not only do you need other employees to help keep up with the technology, but to stay competitive, your applications need the quantity of features that you can only get from the work of several programmers.

You also follow a narrow path: If your applications are too successful you face extinction by a large company entering your market. (For example, Microsoft suddenly realizes that your application, organizing stamp collections, is an integral part of any operating system.) If your application has too little success, you face extinction by bank book. Eighty percent of all new businesses fail in the first five years.

And in any event, you again become the boss, but this time of a very small company. If for any of the reasons presented you don't like the idea of being a boss, but you still have a great idea, you could reach an agreement with another software company to publish it. However, don't expect much more than 10 percent of net profits for your effort. There's also shareware, where everyone's on their honor to send in $20, but rarely does an application make enough for authors to pay more than their Internet bill.

Hire Yourself Part II: Consulting

Another possibility for self employment is consulting. Again, you make your own hours, and the potential is there to make between $40 and $300 per hour. Of course, what you write is no longer yours, but you also don't have to come up with any great ideas; your prospective customers will do that for you.

Although as a consultant you make more, the rewards may average out when you're sick or between jobs. You sometimes find yourself with plenty of time to catch up on Oprah and Jerry Springer. You will find yourself continually interviewing for jobs, becoming more of a sales person than programmer, sometimes committing yourself to jobs you have no idea how to handle. Contacts are sometimes hard to come by (see the text box "Where Not to Consult").

To avoid the job search you might consider a job shop instead, which finds you jobs in exchange for a cut of your billing. Job shops range from large companies to individual consultants who have the contacts but see more money and security in procuring those jobs for others than doing it themselves. You can even run your own job shop, but again you become the boss of a mutinous bunch.

Otherwise, consulting has all the other pitfalls of a permanent position: Keeping up and age discrimination.

So what else is there?

Go Into Sales

For those of you whose eyes lit up when I used the phrase "more of a sales person than programmer," you might eventually consider a job in sales. There are older sales people, you get to travel a lot, you get to live the exciting life and lies of cutting-edge technology without worrying about follow-through, you get to meet people and show off your bravado. In short, a job in sales has all the trappings that average programmers were trying to escape when they took up programming.

Tech Writing

If you find yourself eventually hating the fact that your software is only read by machines, and would like your spouse to be able to read what you do, you might try writing about this subject. There are life-long tech writers who get to summarize the misery that someone else went through to make an application work. On the other hand, the average tech writer doesn't make much more than $40K to $50K a year. And you need writing skills, which is something you might not possess. As a programmer, your ability to spell has been hopelessly destroyed.

But if you can write and understand the technology, you are in short supply. Most tech writers I know have an English background and they make what you write grammatically correct, but they have no idea what it all means and the result is sometimes unintelligible.

Other Opportunities

Along the same lines as a tech writer, you might consider a job as a code tester. There is less stress and about the same compensation as a tech writer.

A couple of other possibilities require going back to school. As an example, you could go to law school and become a copyright or patent lawyer. As a lawyer, the older you get the more trustworthy you'll seem. You will also command more prestige (or is it fear?) than a programmer and with your specialty you'll make even more than the industry average of $80K.

You could also get your doctorate in software. As with lawyers, professors command more respect, and are more prized as they get older. You also stay in coding and on the cutting edge. You don't even need people skills, as you've probably already found out.

But as long as you're going back to school, why not pick a profession unrelated to software? One that is more sedate.

Coding Forever

But if you really love to code and you want to devote your career to it, two possibilities come to mind. The first is to get a job in government where there are unions to protect you and anti-age discrimination is more strongly enforced.

Another possibility is to gravitate to your company's legacy department -- that domain where older clients require older systems to be maintained and your DOS experience is actually an asset.

You might also want to weed out your job offers now to see if one of them provides a technical path so that you can rise above the title of lead engineer and possibly retire there.

See -- there was some reason to start planning now so that you can code forever.

DDJ


Copyright © 1999, Dr. Dobb's Journal

Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.