A career as web developer or programmer: my advice after 10+ years on the job
Ah, how the times have changed. Back in the 90s and early 00s it was NOT cool to be an IT guy. Mentioning what you did for a living could most definitely see you end up in her bedroom... only you'd be plucking viruses from her desktop computer while she went out for a hot date with some lumberjack instead.
These days things are very different. While you can still not expect anyone to get what it actually is you do all day being a software developer, a systems analyst or a database administrator, at least these are now respected professions. Not to mention well paid...
Don't do it for the money...
Still, the money might be attractive but that is not the reason why you are reading this article. If it is, let me save you some time: put it our of your mind. There are much easier ways to make money. Besides, you will not last in this business, there is absolutely no way you can just wing it. Let alone longer term. If you are not intrinsically motivated, look elsewhere.
... do it for the passion of programming!
Now, programming is really "your thing", isn't it? You seem to have a knack for it. It is your hobby, your passion. And now you want to take it to the next level, make a career out of it. I mean, how cool is that? You would do it for free because you love doing it, but this time around someone is paying you handsomely to do it for them!
I know just how you feel. I have written this article for you. I'd like to give you a few pointers from someone who has been there, done that. I hope you will find it useful. You will probably ignore my advice though, but don't say I didn't warn you :)
The 100 Best Jobs (US News)
Computer Systems Analyst
Information Security Analyst
It is lonely at the top
I happened to catch an article titled "The 100 Best Jobs". US News selected the 100 best jobs based on the number of expected openings, advancement opportunities, career fulfillment and salary expectations.
Guess which is the #1 job? Software Developer. Yup. The most coveted job of them all, software developer. Computer Systems Analyst is on its heals at #2. Rounding out the top 10 is Web Developer, closely followed by Information Security Analyst and Database Administrator.
EDIT: the list has been updated since I wrote this hub. IT jobs have dropped a few places, but still very high up on the list.
All of these job have high demand, few people to fill the available positions, excellent salaries and most importantly (I think), a high job satisfaction rate. Heck, probably some status too! How the times have changed...
A little bit of background
I have been a developer for almost 10 years now. A decade, that word makes it sound even more impressive. Jeez I'm old.
My early days
I became interested in computers early on, back in the days of good old DOS. Formatting my dad's hard drive with no backups on hand while I had intended to format just my floppy, 'earned' me my own computer. And a ban of ever touching my dad's computer again... until of course I became that pesky little computer kid everyone knows how to find when there is something wrong with their computer (increasingly, stuff not actually my fault to begin with).
Anyway, one thing lead to the other. After building & rebuilding, tweaking & tinkering with computers came programming. I started out with BASIC, later Visual Basic. Then the 90s came and the phenomenon we now take completely for granted: the internet. I learned HTML and how to build static websites when Netscape & Altavista still ruled the world. Look them up on Wikipedia.
I fully intended to hold on to my hobby as just that, a hobby. I studied management & economics instead of IT at university. Yet somehow I still ended up in a programmer's job.
I started out as a junior PHP/MySQL web developer, building websites and increasingly more complicated web applications. I worked myself up to medior, adding some skills in iOS & Android app development along the way. I had a stint as senior with some management & consulting thrown in. And nowadays I spent my time working in mission-critical (buzzword alert!) web applications, APIs (double buzzword alert) and doing all kinds of amazing stuff with big data (buzzword jackpot detected!).
In other words, I have been around. And I loved it. Okay, not so much now. But more on that later.
The majority of programmers I have met have been on a completely different life's journey and ended up in their jobs somewhat by accident.
Having a former cook for example as your co-worker is not bad, not bad at all.
Your passion has a tendency to bring you where you need to go.
You'll love this job...
There are many reasons why this job is pretty sweet. Here's just a few.
... for the chance to prove yourself
This might sound a bit negative, but it is not intended as such: employers cannot afford to be too picky hiring programmers. They are more willing to take a chance. This means that things like no or very few job experience, your educational background (or lack thereof) and the various silly reasons that would make applying for most jobs a gruelling experience, they just don't apply. It is not a mission impossible to land a programming job. Provided of course that you have something to show for yourself: you can prove you have some skills, a lot of potential and the willingness to go for it 200%.
There are no proper IT educations that really match up with the job of a programmer. It helps, but it is not enough. You can't learn programming from going to school. And the majority of programmers I have met have in fact been on a completely different life's journey and ended up in their jobs somewhat by accident. Your passion has a tendency to bring you where you need to go. And having a former cook for example as your co-worker is not bad, not bad at all.
... for the thrill & the challenge
There is nothing quite like it, the high from using your gray matter properly. Solving problems that seem absolutely insurmountable at first. In fact, when I get nowhere explaining someone what it is I do for a living, that's what I say I do:
"My job is to subdivide huge problems into more manageable ones by thinking outside the box and fixing them."
Very few jobs can offer the same kind of thrill when things start falling into place. You did it! You created!
Of course, you will have to deal with routine and the boring stuff that just needs to get done too (testing, anyone?). Just like everyone else. And if your company doesn't quite get the value of the skill set the programmer brings to the table (and their scarcity) you might be in for a rude awakening staring at computer screens all day, filling out useless forms and listening to eight different bosses drone on about about mission statements. But just mentioning your discontent will lead to 10 job offers in your first week, so no worries!
Hollywood got it all wrong with their big glassed, anti-social, awkward with women, nerdy Bill Gates-lookalike hacker-characters.
Okay, maybe not the awkward with women part.
... for the interesting characters
Hollywood got it all wrong with their big glassed, anti-social, awkward with women, nerdy Bill Gates-lookalike hacker-characters. Okay, maybe not the awkward with women part.
Anyway, the many programmers I have come across in my career are few of the more colourful, inspiring & outspoken people I have had the privilege of meeting. And despite the sometimes bizarre range of hobbies and interests, at the end of the day we all love to talk code & tech. How cool is that?
The only drawback? Men only. Women are fabled to be employed in this business as well, but I have yet to verify that as a fact. Treat it as a myth until proven otherwise. Perhaps they are disguised to wart off unwanted testosteron? That makes a lot of sense, really.
... for the money
Having just gone on about how you shouldn't be doing it for the money, it might seem odd to see it included as a reason here. But let's be honest, provided it is not the main reason, obviously it is a very welcome bonus. If you grow, have & keep the skills you can earn a very nice living programming.
So what's the catch?
Hopefully, at the beginning of your career, you will absolutely love your job. And even if not so much yet, odds are you will love your prospects in the very near future. You can count yourself lucky: most people hate or at least dislike their job and can't wait to get home again. You on the other hand wonder how on Earth the day flew by so fast, stay a little longer at the office, and on your way home your mind drifts towards the exciting new coding experiments you are going to do when you get home.
Consider your exit strategy
Your exit strategy? Am I freaking nuts? Nope. In fact, if you read my entire article and were to remember only one of my points, I would like it to be this one. Seriously.
I am really sorry to be the bearer of bad news, but all that bliss & happiness... it won't last. Ever heard of the seven year itch? The idea is that whatever it is (but mostly used in the context of relationships or jobs) you tend to get bored of it in about 7 years. It is not a scientific fact, but most people will silently nod in agreement. Granted, you might be able to push it back a couple of years. But here's the catch: you really don't want to. Miss the signs and you miss the opportunity to take matters into your own hands. You will be pushed. That's also IT for you.
Always changing, highly competitive
This business is always changing and highly competitive. You are expected to keep up with the latest developments, in your spare time. In fact, merely keeping up means remaining stationary. You need to out-do your co-workers to rise in the pecking order. And more so than in almost any other job, if you don't keep up with the latest developments you will quickly find yourself falling by the wayside.
Don't think it won't happen to you. Perhaps family & raising children, once a far-fetched idea, takes center stage. And it should, it's awesome. You can't linger at the office as long as you want to. It takes a lot more planning to get some "hacking away" spare time in. Your "fresh out of school" co-workers think you act and look a bit like a dinosaur. Your code sucks, man! Go home!
Or how about this: your many years of experience lands you a longer term assignment for a high-profile client. The catch? You are expected to work with an existing, somewhat outdated code base to work with. No problem, you know this stuff inside and out. While you are making something awesome given the tools at your disposal, the young guns back at the office are excitedly discussing how they are going to use cool new technique X, tool Y and programming language Z to completely rewrite the code framework used for all new projects. Ouch. Didn't keep up, did you? Best of luck, perhaps you can change that title of yours to "Senior Developer of Obsolete Code"?
I don't intend to be mean, I am just being realistic and trying to look out for you. My point is that due to circumstances not completely in your control, more so than in most jobs, you might find that in 7-10 years doubts about your future start to prop up. It is not enough that a cool new techique is cool & new: is it actually better than something you have deployed successfully for several years? Why is everyone so excited, buzzwords galore? Where are you going to find the time to learn & experiment with it? These young punks... don't they have families, responsibilities? And when did this job become merely a job and stop being a hobby?
The rise and fall of a programmer
Most programmers tend to rise from junior to medior in 3 years or so, become really good at what they do. They hone their skills and build up a lot of experience being a medior. The next step is senior with a bit of management thrown in, if you are into that. You start doing less programming yourself. You manage others doing the main programming, you make sure they don't stuff up and remind them of the basics of debugging when panic blinds them with a deadline looming and shit hits the fan. Slowely but surely you fall out of touch with the details of the actual code base itself.
If you were not into management at all and made a conscious decision to stick with becoming the best damn medior developer in the world, you too will find that you cannot keep up with all the exciting new developments. Your many years of experience made you somewhat set in your ways in terms of how stuff gets done. Who needs all that fancy redressing of basic concepts? And the other things in your life prevent you from tinkering with code 24/7, like the youngsters. You fall out of touch too.
YOUR FUTURE, RE-INVENTED
Now, things start to become a little bit uncomfortable. Now what? Perhaps you started out loving computers, not people. Perhaps this has changed over the years. Your people & social skills are something to be reckoned with now and you definitely hold an edge here over your younger colleagues. You can save everyone so much time & frustration sitting between the client and the programmers, making sure to capture not what the client says he wants... but what it actually is he needs but can't quite express or understand. Be his saviour. Allow the programmers to do what they do best: program. You take care of everything else. And ensure YOUR continued added value to the company. Or start your own. Why not?
The next step is consultancy or management. And you know what? There's even more money to be made here. More importantly, you get to play an invaluable part into getting something awesome from concept to reality. The only difference is that you aren't building essential car parts. Instead, you help design & oversaw the construction of the entire car AND getting it to the market! And who knows? At some point you actually realise that you can do this anywhere, in any field, not just in IT. Think of the possibilities...
I'm curious. Are you a...
You will love being a programmer, really. It is the best job in the world. If programming is your passion, go for it. Right now! But...
I am that guy I just wrote about, working on re-inventing his future. Unfortunately, I was also a deer in headlights, totally unprepared for a time where the pure joy of programming was starting to slip away. I wrote this article because deers belong in the woods. Don't miss that window like I did. And something something about windows, trees and deers. You get the idea.
Don't choose programming over life itself. You'll know what I mean when it happens. Actively take time to nurture and develop your other passions & interests simultaneously. Options! That is what you really want. Think about where you'd like to go in a few years. Reached the status of numero uno medior programmer? Cool, congrats! Just remember... it won't last forever.
Don't ignore your itch... Take control. Jump.