If you write code for a living I feel bad for you. Being a developer is not about writing code. If your job is to write code based off a spec all day long then you’re not a developer. You’re a code monkey. There’s a huge difference between writing code and being a developer, an idea I’m going to explore today.
Who are these people who actually write code?
Some people write code for a living and others solve problems using code for a living. Who are these people who are just writing code? These code monkeys. Are they happy? Is this what they wanted from a career in web development?
The Junior Developer
When you start your first development job you’ll have a nice little honeymoon period where someone mentors you and you get to contribute to some core code – that mission critical stuff. After that you will likely get assigned some odd jobs that no one else wants. The tedious things. The stuff that could, just maybe, be automated but no one wants to take the time to do it because they have more interesting problems to solve. Welcome to your new career, Junior Developer. It’s not pretty but it comes with a full keg of hipster local beer and your choice of Adult Benefits (401k, health/vision/dental insurance, and a yearly bonus) or Startup Benefits (unlimited vacation, remote work, a ping pong table, and stock options that could be worth a trillion dollars or not depending on if/when/who you the board sells out to).
My first full time role as a developer not working for myself was at a company that was a hybrid of the two. We got 401k (with no matching), good health insurance, “unlimited” vacation, a keg (which was always broken), and that damn ping pong table everyone seems to love so much. I was a Junior developer assigned to be the sole tech person for a small B2B marketing team within the company. My job at the time, in a nutshell, was to take Photoshop mockups of emails and landing pages, code them, hook up the lead-gen forms to a CRM then publish and send them out.
It was always the same old variations of the same emails and landing pages every single day. I was a tool. I was being used by people to produce a product that I had no say in creating and they had no idea how to turn into a reality.
The CMS maintainer
A lot of small businesses owners write code but aren’t developers. They got themselves a Wordpress.com domain or they’re using Squarespace, Wix, or Weebly and they’re on their way to doubling business by harnessing the power of the Internet. Or at least that’s the plan.
After a while they’ll decide that their website is too generic. They want some scrolling text somewhere and a
<blink> tag and they want to get hardcore! They want a custom website. So they learn what 13 year old girls once learned to customize their MySpace profiles and now they think they’re developers. “That wasn’t so hard”, they think. They’ll have seen the tip of the iceberg and begin believing that professional programmers are overpaid – especially those hipster web dev types.
So after a while the CMS maintainers decide they want to focus on their business instead of toying with code. They’re going to hire someone like you to take over where they left off (read: got stuck) and now you’re in the terrible position of having to explain any number of things to these people like
- Why are you charging me so much?
- How come you can’t make my proprietary website builder do stuff it was never designed to do?
- How come you can’t make the logo bigger and make the proprietary website builder do something the creator specifically disallows?
- How come I’m not in the first spot on Google for every search term?
- Why won’t you give me everything I ever ask for in exchange for $200 total?
Coding is a means to an end
I don’t think anyone enjoys writing code, including programmers themselves. Coding is a means to an end but not the goal. What developers are looking for is a problem to solve. Sometimes that problem has a spec sheet but some of the most creative work comes from having to work within constraints so there’s no reason to complain when you’re handed that spec sheet.
Writing code is a hard, frustrating, infuriating process. For a skill based so much in logic and reason I think it’s interesting it takes a true artist to craft solutions to huge problems using the powerful but still limiting set of tools we have at our disposal. The best of us are MacGyver’s, tying together front-ends, back-ends, APIs, and libraries using nothing but some loose twine and bubble gum. The worst of us are computer science majors. (That’s a half joke).
In the end though, writing code isn’t about code. It’s about people. We solve their problems, make life easier for them, and sometimes we just entertain them. We’re digital handymen and clowns. What we aren’t is coders. Because programming isn’t about writing code. It’s about solving problems.