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.

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 anexpert, 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. Youshould 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.

10 steps to becoming the developer everyone wants的更多相关文章

  1. Top 10 steps to optimize data access in SQL Server

    2009年04月28日 Top 10 steps to optimize data access in SQL Server: Part I (use indexing) 2009年06月01日 To ...

  2. 10 steps to get Ruby on Rails running on Windows with IIS FastCGI- 摘自网络

    Since the original tech preview release of FastCGI last year, we've been seeing a lot of requests fo ...

  3. 10 Steps To be a senior programmer

    What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师. Why 得到更多的报酬!因为你的薪水会随着你水平的提高而 ...

  4. [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集

    Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地 ...

  5. 关于 ReactNative 环境搭建之 error: invalid developer directory '/Library/Developer/CommandLineTools' - RN

    简要说明,此次尝试安装 ReactNative 时当前 MacPro 版本为 10.13.6.Xcode 版本为 Version 9.4.1 (9F2000),按照官方的完整原生环境搭建流程一步步执行 ...

  6. 利用CSS3 中steps()制用动画

    .monster { width: 190px; height: 240px; margin: 2% auto; background: url('http://treehouse-code-samp ...

  7. [转]Advanced Oracle SQL Developer Features

    本文转自:http://www.oracle.com/technetwork/cn/server-storage/linux/sqldev-adv-otn-092384.html Advanced O ...

  8. 10个优秀的Objective-C和iOS开发在线视频教程

    如果你自己开发iOS应用,你肯定会发现网上有很多资源.学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写.我们从海量视频和学习网站中整理出了我 如果你自己开发iOS应用 ...

  9. plsql developer 11 + Oracle 11g 开发环境setup

    这是一个很水的博客, 介绍搭建plsql developer 11+ Oracle 11g 开发环境. 1. 本机上安装Oracle 11g express 对于开发足够了, 300MB的下载文件, ...

随机推荐

  1. [CareerCup] 7.1 Basketball Shooting Game 投篮游戏

    7.1 You have a basketball hoop and someone says that you can play one of two games. Game 1: You get ...

  2. Opencv step by step - 图像融合

    两个图像的融合就是像素的融合了,其实手动操作即可,用函数操作更方便了. 下面代码的作用是融合阿狸和doctor,很和谐有木有! #include <cv.h> #include <h ...

  3. Git & Github 一页简明笔记

    由于小组工程需要使用git&github的版本控制来协作,但我对其使用并不熟悉,特此写篇一页的笔记放在手边,备随时查阅. 相信这种一页的简明笔记,对大家也是有帮助的.我的笔记总结自廖雪峰的Gi ...

  4. split 方法的正确使用姿势

    本文同步自我的个人博客:http://www.52cik.com/2015/11/02/split-skill.html 通过js获取 QueryString (location.search部分) ...

  5. 『片段』C# DateTime 时间相减 和 时区的关系

    本文只是基础代码片段,直接先写 结论: C# DateTime 时间相减 —— 和 时区无关,只和时间值有关. 运行结果: 测试代码: using System; using System.Colle ...

  6. LinuxMint下Apache Http源码安装过程

    1. 源码包下载 Apache Http安装要求必须安装APR.APR-Util.PCRE等包. Apache Http包下载地址:http://httpd.apache.org/download.c ...

  7. [USACO]6.1.3 cow xor(二进制+Trie)

    题意:给你一个序列(n<=100000),求出一个连续的子序列[i,j]使得ai xor ai+1 xor…… xor aj最大,求出这个最大值(其中每个数<=2^21) 分析:题目和求一 ...

  8. Bootstrap3.0学习第二十轮(JavaScript插件——滚动监听)

    详情请查看 http://aehyok.com/Blog/Detail/26.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:h ...

  9. linq和EF查询的用法和区分

    我们做项目时,难免会遇到用的不知道是啥,及把linq和EF搞混了 今天我带领大家梳理下思路: 首先说linq查询,然后介绍EF查询 1.linq查询 当我们使用linq查询时,转到定义会调到Query ...

  10. 完美实现开机启动虚拟WIFI,顺便实现目前的WP8系统使用VPN(7.1修)

    众所周知,windows7系统的机器若带有无线网卡(台式机可以买一个USB无线网卡,京东目前39元,TP-Link的),可以虚拟出wifi,供手机等移动设备使用. 虚拟的WIFI的命了和软件在网上都找 ...