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的下载文件, ...
随机推荐
- mysql5.7.12直接解压zip包,安装过程
MySQL-5.7.12-winx64.zip解压安装方式 1.解压文件到你想要安装的位置. 本人是直接解压到E盘. 2.配置环境变量,在path中放入:E:\mysql-5.7.12-win ...
- DOM系列---DOM操作表格
DOM在操作生成HTML上,还是比较简明的.不过,由于浏览器总是存在兼容和陷阱,导致最终的操作就不是那么简单方便了.本篇章主要了解一下DOM操作表格. 一.操作表格 <table>标签是H ...
- AngularJS开发指南9:AngularJS作用域的详解
AngularJS作用域是一个指向应用模型的对象.它是表达式的执行环境.作用域有层次结构,这个层次和相应的DOM几乎是一样的.作用域能监控表达式和传递事件. 作用域的特点 作用域提供APIs($wat ...
- AngularJS开发指南4:指令的详解
指令是我们用来扩展浏览器能力的技术之一.在DOM编译期间,和HTML元素关联着的指令会被检测到,并且被执行.这使得指令可以为DOM指定行为,或者改变它. AngularJS有一套完整的.可扩展的.用来 ...
- Mysql-日期转换
一.字符串转日期 下面将讲述如何在MYSQL中把一个字符串转换成日期: 背景:rq字段信息为:20100901 1.无需转换的: SELECT * FROM tairlist_day WHERE rq ...
- Statement,PreparedStatement和CallableStatement的联系和区别
联系: CallableStatement继承自PreparedSatement,PreparedStatement继承自Statement. 区别: 1:Statement 每次执行sql语句,数据 ...
- BZOJ-1800 飞行棋 数学+乱搞
这道题感觉就是乱搞,O(n^4)都毫无问题 1800: [Ahoi2009]fly 飞行棋 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1172 So ...
- codevs1064 虫食算
题目描述 Description 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 + 8468#6 ...
- codeforces 720A:Closing ceremony
Description The closing ceremony of Squanch Code Cup is held in the big hall with n × m seats, arran ...
- Xcode 6以上版本如何创建一个空的工程(Empty Application)
Xcode 6 正式版里面没有Empty Application这个模板,这对于习惯了纯代码编写UI界面的程序员来说很不习惯. 有高手给出了一个解决方法是,把Xcode 6 beta版里面的模板复制过 ...