by Andrew C. Oliver

10 steps to becoming the developer everyone wants

feature
Mar 14, 20138 mins
Core JavaJakarta EEJava ME

There's more to career advancement than solving tough programming challenges

You thought it was all about programming skills. But you were wrong! Great code is fine, yet commanding better work and a higher salary depends on ensuring more people know who you are. In other words, you need to market yourself. Hereโ€™s what seems to succeed.

More about programming careers

Get career tips from developers in the field, with JavaWorldโ€™s Java careers interview series:

  • On passion, determination, and playing at work (William Weiss, Zappos.com, July 2012)
  • On old and new approaches to Java programming (Carlus Henry, Software Consultant, September 2012)
  • Coding server-side Java for Quickbooks (Jim Showalter, Intuit, January 2013)

Want more Java enterprise news? Get the Enterprise Java newsletter delivered to your inbox.

Developer tip No. 1: Blog

Set up a blog, and post more than once a month. Do real research and make sure you donโ€™t sound stupid. Seriously, learn to write. Do the stuff your grade-school English teacher taught you: Create an outline, draw a narrative, check the grammar and spelling. Then, with great sadness, simplify it and shorten it to the point enough where someone scanning it will have an idea of what itโ€™s about. The Internet does not tolerate nuance (nor does my editor).

Developer tip No. 2: Go open source

Donโ€™t believe the lies about open source. The younger among you may not remember the days where a developer could actually be unemployed, but even during the darkest stretches of the dot-bomb recession, all of the developers of the open source project I started were quickly back at work. Just make sure the open source code you produce reflects the kind of job you want. I wanted to solve hard problems with the simplest solutions possible, but Iโ€™ve interviewed developers who, as was clear from their open source code, wanted to complicate simple problems. Believe it or not, thereโ€™s a market for that, but make sure your code reflects the market youโ€™re in.

Developer tip No. 3: Not six months, not 10 years

Donโ€™t switch jobs every six months. Seriously, the end of 100 percent developer employment will come again. When that time arrives, nothing will haunt you more than job-hopping. On the other hand, donโ€™t stay at the same place doing the same thing for 10 years. Youโ€™ll become insulated and institutionalized. To stay valuable, you have to be familiar with more than how to code IBMโ€™s stack while at IBM in the IBM way. I havenโ€™t hired anyone who was at IBM or a similar organization for more than a year or two. They usually impress me in the interview but fail the programming test.

Developer tip No. 4: Eye on the new stuff, hands on the practical

Exceptionally young developers have a tendency to work on the shiny. Ruby is probably my favorite programming language, but it doesnโ€™t pay (on average) as much as Java, and the market is smaller. This may not always be true. Scala looks like itโ€™s coming on strong, but donโ€™t kid yourself about the market size โ€” it isnโ€™t here yet. On the other hand, donโ€™t stay still so long that you are the future equivalent of a COBOL or PowerBuilder developer either.

Developer tip No. 5: Write your own documentation

I canโ€™t tell you how many times Iโ€™ve worked on a project, only to be pulled into an executive meeting because I wrote a document or presentation they saw and understood. I always begin with an executive overview โ€” that is, the page you really have to read โ€” while the rest boils down to details in case you donโ€™t believe me. The question is: What does a very busy person have to know about the topic if itโ€™s not the only thing theyโ€™re working on? What most managers want to know: Who can drive this to completion and wonโ€™t BS me about how itโ€™s going? Write that way.

Developer tip No. 6: Brevity is the soul

One thing you learn about management right away is that the people who know what theyโ€™re talking about tend to give shorter, more concise answers. When the responses grow long and complicated, it often means they donโ€™t know or wonโ€™t commit. You also learn that tone is often inversely proportional to the importance of the topic. When really bad news hits, someone comes in the office, shuts the door, and whispers. When something is not inherently important but bothers someone anyhow, they will try and raise its prominence with an inflammatory tone.

Donโ€™t be that guy. Know what youโ€™re talking about, figure out how to summarize it, and have the details, but donโ€™t load every sentence with minutiae and donโ€™t build up the hype โ€” the sky probably isnโ€™t falling (but maybe someone should take a look at Jenkins because we havenโ€™t had a good build in a while). When all else fails, lead with the money. Make sure your numbers are well thought out, plug them into charts, and clearly demonstrate that one point is superior to another in dollars and cents.

Developer tip No. 7: Wow the crowd

Figure out how to give presentations and learn how to speak in public. Research a topic and make yourself at least an expert, if not the expert. Presentations to the public are generally better if they are in part entertaining. It takes a lot of embarrassing mishaps to develop this skill, but an engineer who can explain the matter in plain English to management and give an expert talk on a topic will almost always command a higher salary than one who doesnโ€™t.

Developer tip No. 8: Be realistic

Sure you like Erlang, but the market for Erlang isnโ€™t big. You should know more than one language, as well as โ€œnewโ€ or newly hyped topics, but avoid such immature statements as โ€œI wonโ€™t code unless itโ€™s in Erlangโ€ unless youโ€™ve truly considered the business issues. It can pay to be a narrowly focused expert, but even that has a cost โ€” youโ€™ll be typecast according to your specialization, which may leave you high and dry when itโ€™s out of fashion. Sure, NoSQL is a better fit for your little project, but the company wonโ€™t invest in it for a small one-off system. The RDBMS will work fine for this one.

Developer tip No. 9: Solve the hard stuff, know the tools

Put in the time to learn a few tools other people donโ€™t commonly know. What tools do you have that few know/use/understand and make you more effective than the people next to you?

For example, Aspect4j is not for everyone, but it sure as heck is for me. I use it for things that are wrong โ€” very wrong. Iโ€™ve rewritten .class file operations to make them run in Tomcat instead of WebSphere, though the original source was missing. Iโ€™ve fixed memory leaks in proprietary software. Iโ€™ve implemented a poor manโ€™s Wily Introscope. At each point, I looked like some kind of supergenius because I had a tool that few people had grokked yet โ€” and bothered to keep going when others decided to wait for the vendor. I live/breathed eclipse.org/mat so that I could not only fix leaks but tell you what struts action and parameters caused your OOME. There are others, but these simple tools for complex problems put a shine on a developer.

Developer tip No. 10: Practice humility

This is the least common skill among developers. Sometimes it means you get your hands dirtier than you want. Other times it means you donโ€™t let it go to your head when you pack a room. Geek fame comes and goes, but remember, itโ€™s what you did recently that brings them in. Next week, it could all be gone. In the words of Tyler Durden, โ€œYou are not special.โ€ Yes, trolls, Iโ€™m fully aware of the irony.

How do you know youโ€™re sought after?

Look left, look right: Is there a row of people doing basically what youโ€™re doing? Then youโ€™re not there yet.

Here are some signs that youโ€™ve arrived: Youโ€™re sitting in a row of people and theyโ€™re all looking at you. People take their picture with you and youโ€™re not an American traveling in Japan. Your speaking engagements fill the house, and people tell you about how much they not only enjoyed your talk but also the last two you gave. The sales and marketing people actually value your opinion. Does that sound like you? Congratulations, youโ€™ve made it.

That said, fame and success are fleeting, and you have to keep it interesting. Ironically, as you become a more sought-after developer, you code less and less. It becomes more economically efficient to communicate to and motivate others, as well as to delegate your โ€œtend toโ€ stuff. That may or may not be what you signed up for.

There will be times in your future when, once again, not every software developer who wants a job can get one. Particularly when the atmosphere becomes Darwinian, effective self-promoters do better than quiet toilers.

This article, โ€œ10 steps to becoming the developer everyone wants,โ€ was originally published at InfoWorld.com. Keep up on the latest developments in application development and read more of Andrew Oliverโ€™s Strategic Developer blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.