You are Responsible for your Own Career

Bob Martin recently ranted

YOU, and NO ONE ELSE, is responsible for your career. Your employer is not responsible for it. You should not depend on your employer to advance your career. You should not depend on your employer to buy you books… If they won’t buy them, YOU buy them! It’s not your employers responsibility to teach you a new language. It’s great if they send you to a training course, but if they don’t YOU teach the language to your self!

Uncle Bob’s rant was provoked by folks complaining about Michael Feathers’ list of papers every software developer should read. Feathers had the audacity to actually link to articles hosted at a (gasp!) paid site.

I feel roughly the same way about developers who maybe vaguely wish they had a better career, but do approximately nothing about it. Hope may be a good campaign slogan, but it is not a strategy. You’re the only one who actually cares about your own career.

Here are a handful of ideas on how to take charge of your career:

If you believe a given tool will make you more effective at your current job, buy your own tools. There are a few cases where this is not possible (e.g., expensive testing or modelling tools), but seriously, how much is a copy of Visual Studio, IntelliJ, or MyEclipse? Need a better machine, more memory, another monitor? Unless you have a very restrictive IS department, I bet you can get away with it.

Uncle Bob mentions purchasing books. Most of the good programming books run about $40. Even if you read one every other month, that’s less than $300 for the entire year. If we actually take the time to read them well and learn, these books will be invaluable at advancing our careers.

You should learn a new language or framework each year. Get on the job search websites and figure out which ones are hot, then get busy learning. Most of the languages, tools, frameworks, etc., are either free or very inexpensive.

Even better than going it alone, you could start a discussion group at your company. If you’re unemployed right now, you can probably find plenty of other unemployed developers who are interested in the same things as you. Pick a book and read through it together in a couple of months. Learn a framework or language together.

There are enough user groups in the DFW metroplex that I could probably go to 1-2 per week if I wanted to. Many of these groups are free; some have minimal costs or meet for lunch or happy hour. If you tried hard, you might spend $20 or so each month. For that trivial price, you get both education and networking.

With slightly more effort, you could probably become a speaker at one of these groups. But why stop there? You could surely put together a 30 minute talk on something useful you know. At that point it’s just a matter of finding places that will let you talk to them. Practice at your own company. Then call your friends at other companies and see if you can come do a “lunch and learn” for a team. If it helps, offer to bring the lunch. You can feed a team of 10-12 for less than $100. For that price, you gain credibility and expand your network. Quite an ROI, isn’t it?

Start a project that matters to you. You surely have a hobby, or belong to an organization, or care about a charity, that would provide an opportunity to develop something. Use a language or framework that you want to learn. Practice the development skills you’ve been learning from all the great books you’re reading. Build the entire application with BDD and TDD. Work iteratively. Get some of the friends you’ve made through the user groups you’re attending to help you out.

If you don’t have any good ideas for projects to start, then you can always freelance/moonlight or contribute to an open source project. Freelancing/moonlighting has the nice benefit of getting paid, as well as building up a network and client base that could turn into a lucrative career going solo. Working on open source software helps build your reputation, as well as hone your development and collaboration skills.

Your career can be something that happens to you, or something you take charge of. Which will it be? What can you start doing right now to take charge?