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.


