Recently I read an article called Don't Call Yourself A Programmer. I have to admit that the article makes some very valid points and also tells some very hard truths. It is supposed to be read by junior developers but i found myself learning and realizing lots. For example the article mentions that most of the software that is being written is for internal business consumption, as something bespoke that helps a small number of users to improve a workflow. It's useful for new people in the industry to know that chances are you won't be working to the next big social media or even to anything that will be used from more than a couple of hundred users. It also reminds its readers that the point is to add business value and save money for the business. After working for almost 6 years in the industry i now know those things but having someone to remind you is somehow depressing.
It is depressing not because i don't want to add value, quite the contrary i love adding value to a user/business/cause. The problem that I'm having is that in order to add value, with the minimum possible cost, you need to take all sorts of shortcuts in quality and follow many debatable practices (call me Agile) in order to get there. The result is that there is little, if any, space for creativity and personal ambition and fulfillment. Micromanagement becomes the norm, technical debt is industry standard and quality is a luxury we can't afford. I see daily young talented developers getting disappointed and senior developers losing their spark. All that to add business value.
There is always a solution for the above. If you want innovation, bleeding edge technologies and fast moving companies you can always join a start-up. If that's not your thing and you are looking to cash out your experience then Investment Banking might be something to consider. The problem here, as mentioned by the article as well, is that both startups and investment banking require a lifestyle that is not made for everybody. Both require, in most cases, long hours and sacrificing work/life balance and that's something that not everyone can afford to lose. People have families, personal lives and everything in between that they care about. One ex-colleague of mine wanted, for example, to travel about 2-3 months/year in order to take photos and write books about his experiences. That's not abnormal but at the same time it leaves little space for choice. His only realistic choice is contracting (with all the uncertainty and disengagement that that road implies - in most cases).
But all of the above are not completely unknown things. You know about more or less and most of us took our decisions and have our plans for the future. The most curious, and at the same time true, thing of the article is that it advices the reader to stop calling themselves programmers. According to the writer you are underselling yourself this way, people look at you as just another tool and as a result you are capping yourself in terms of income and opportunities. Instead the advice is to call yourself something different, the same way Quants (Quantitative Analyst, aka the banker developer) are not calling themselves developers and as a result their paycheck is several times higher that a developers paycheck. Part of the advice is true, people don't understand what a developer can do, so if you manage to give yourself a title that better describes how you add value then you win. In essence though you get to tell a lie. You are not an "Input/Output operator and security specialist in a music hall" you are a "Bouncer" and that's fine. What I'm trying to tell is that i like being called a programmer and i wish people understood what I can do for them.
Finally the article also informs about several other things that i agree. Things like the fact that the technology stack is not everything (in most cases it's a trend that will go away in a year or two), that money is not the number one thing to look at a new job (it's probably #2) and that what are you going to work on is the most important thing (i had to learn that the hard way). All and all it's a glorious article and i wish I've read some years back. I would be more prepared.
After all that should you get dishearten? is everything pointless? should you abandon all hope? Hell NO! If you are a developer you are in a great position. The sky is the limit. All you need to do is get prepared, feed your creativity constantly and learn how to present yourself better. Here is my advice:
- Get on GitHub and post some of your code. Make it look nice, ask a friend/teacher/colleague to review it.
- Get yourself a website, with a proper domain name, and please make it look nice. Write about who you are, what you do and how people can get in touch with you. You don't have to be a designer to design a good looking website, just look around what other people do and pick and match. Remember that beauty is in the eye of the beholder.
- Register an email address from the above website. It's always better to have email@example.com as an email rather than firstname.lastname@example.org.
- Print some business cards, go to events and exchange it with people to keep in touch (in moderation, don't be annoying)
- Try to have a pet project or two out there (webApps, iOS/Android apps, open source projects). It makes all the difference in the world.
- I know some people don't like LinkedIn but unless you're a superstar already you'll need it for people to find you. Go there, upload a recent professional photo of yours (no, your beach picture from last year isn't professional, this isn't facebook), put all your degrees, work experience and projects and keep it updated. Recruiters will find you.
- Most of all though do that: Try to keep a work life balance, come home early, take care of yourself and do things that make you feel creative and fulfilled. And maybe one day you will be lucky and get to one of those places that value creativity and innovation, or even better create your own creative/innovative place.
Until then keep smiling.