10 steps to becoming the developer everyone wants
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的更多相关文章
- 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 ...
- 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 ...
- 10 Steps To be a senior programmer
What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师. Why 得到更多的报酬!因为你的薪水会随着你水平的提高而 ...
- [Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集
Erlang Resources 小站 2013年7月~12月资讯合集,方便检索. 附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集 小站地 ...
- 关于 ReactNative 环境搭建之 error: invalid developer directory '/Library/Developer/CommandLineTools' - RN
简要说明,此次尝试安装 ReactNative 时当前 MacPro 版本为 10.13.6.Xcode 版本为 Version 9.4.1 (9F2000),按照官方的完整原生环境搭建流程一步步执行 ...
- 利用CSS3 中steps()制用动画
.monster { width: 190px; height: 240px; margin: 2% auto; background: url('http://treehouse-code-samp ...
- [转]Advanced Oracle SQL Developer Features
本文转自:http://www.oracle.com/technetwork/cn/server-storage/linux/sqldev-adv-otn-092384.html Advanced O ...
- 10个优秀的Objective-C和iOS开发在线视频教程
如果你自己开发iOS应用,你肯定会发现网上有很多资源.学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写.我们从海量视频和学习网站中整理出了我 如果你自己开发iOS应用 ...
- plsql developer 11 + Oracle 11g 开发环境setup
这是一个很水的博客, 介绍搭建plsql developer 11+ Oracle 11g 开发环境. 1. 本机上安装Oracle 11g express 对于开发足够了, 300MB的下载文件, ...
随机推荐
- ultraEdit32 /uedit32 自定义快捷键/自定义注释快捷键
编辑器一直用vim,但同事写VHDL 用的是utraledit32 ,为了更好的沟通,我也下载了最新破解版本:http://pan.baidu.com/s/1qWCYP2W 刚开始用找不到注释的快捷键 ...
- 实践:VIM深入研究(20135301 && 20135337)
目录 一.基本知识 1.vim模式介绍 2.三种常用模式的切换 二.Vim文档编辑 1.vim重复命令 2.游标的快速跳转 3.复制粘贴和剪切 4.删除文本 5.字符的替换及撤销(Undo操作) 6. ...
- 【iOS功能实现】之利用UIDocumentInteractionController打开和预览文档
iOS提供了使用其他app预览文件的支持,这就是Document Interaction Controller.此外,iOS也支持文件关联,允许其他程序调用你的app打开某种文件.而且,从4.2开始, ...
- Oracle备份数据库
1.前言 工作中数据库备份是一个很重要的事情,难免有时候一个不小心就会误操作,造成无法挽回的措施.在昨天的工作中,我们的一个产品经理在操作定制端的时候一个误操作,清空了几张表的数据同时还删除了几张系统 ...
- 浅析Java异常
1.什么是异常 结构不佳的代码不能运行,这是Java的基本理念. 发现错误的理想时机是在编译期.然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决.这就需要错误能通过某种方式,把适当的 ...
- [软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如 ...
- mysql使用基础 sql语句(一)
csdn博文地址:mysql使用基础 sql语句(一) 点击进入 命令行输入mysql -u root -p,回车再输入密码,进入mysql. 终端命令以分号作为一条语句的结束,可分为多行输入,只需 ...
- 学习之路三十二:VS调试的简单技巧
这段时间园子里讲了一些关于VS的快捷键以及一些配置技巧,挺好的,大家一起学习,一起进步. 这段时间重点看了一下关于VS调试技巧方面的书,在此记录一下学习的内容吧,主要还是一些比较浅显的知识. 1. 调 ...
- 每天一个linux命令(51):rcp命令
rcp代表“remote file copy”(远程文件拷贝).该命令用于在计算机之间拷贝文件.rcp命令有两种格式.第一种格式用于文件到文件的拷贝:第二种格式用于把文件或目录拷贝到另一个目录中. 1 ...
- 读代码之htmlParser
在以前使用HtmlParser时,并未考虑过遇到org.htmlparser.tags之外的Tag怎么处理.直到碰到这样的一个标签,如果不加处理,HtmlParser无法对其进行处理.查阅自定义标签之 ...